Compare commits

..

4 Commits
2.2.6 ... 2.2.8

Author SHA1 Message Date
Jikoo
c0f513177a Removed additional async lookup notification, current is pretty fast. 2015-05-19 08:11:53 -04:00
Jikoo
b3a3947b03 1.8.4
The easiest NMS update ever.
2015-05-19 08:10:39 -04:00
Jikoo
c7bab7d451 Whoops, didn't make sure my autoformatter's settings matched the style. 2015-03-12 16:42:00 -04:00
Jikoo
4058463f7f OpenInv 2.2.7
Updated for Spigot 1.8.3
Dropped support for all other versions
Fixed lookup not working for players on first login/incomplete names
2015-03-11 16:48:21 -04:00
9 changed files with 84 additions and 37 deletions

View File

@@ -17,6 +17,7 @@
package com.lishid.openinv.commands; package com.lishid.openinv.commands;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -41,6 +42,7 @@ public class OpenEnderPluginCommand implements CommandExecutor {
this.plugin = plugin; this.plugin = plugin;
} }
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "You can't use this from the console."); sender.sendMessage(ChatColor.RED + "You can't use this from the console.");
@@ -77,11 +79,15 @@ public class OpenEnderPluginCommand implements CommandExecutor {
name = args[0]; name = args[0];
} }
sender.sendMessage(ChatColor.GREEN + "Starting inventory lookup.");
final UUID senderID = player.getUniqueId(); final UUID senderID = player.getUniqueId();
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
List<Player> matches = Bukkit.matchPlayer(name);
if (!matches.isEmpty()) {
openInventory(player, matches.get(0).getUniqueId());
return;
}
final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name);
if (Bukkit.getPlayer(senderID) == null) { if (Bukkit.getPlayer(senderID) == null) {
return; return;

View File

@@ -17,6 +17,7 @@
package com.lishid.openinv.commands; package com.lishid.openinv.commands;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -41,6 +42,7 @@ public class OpenInvPluginCommand implements CommandExecutor {
this.plugin = plugin; this.plugin = plugin;
} }
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) { if (!(sender instanceof Player)) {
sender.sendMessage(ChatColor.RED + "You can't use this from the console."); sender.sendMessage(ChatColor.RED + "You can't use this from the console.");
@@ -76,11 +78,15 @@ public class OpenInvPluginCommand implements CommandExecutor {
name = args[0]; name = args[0];
} }
sender.sendMessage(ChatColor.GREEN + "Starting inventory lookup.");
final UUID senderID = player.getUniqueId(); final UUID senderID = player.getUniqueId();
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
List<Player> matches = Bukkit.matchPlayer(name);
if (!matches.isEmpty()) {
openInventory(player, matches.get(0).getUniqueId());
return;
}
final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); final OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name);
if (Bukkit.getPlayer(senderID) == null) { if (Bukkit.getPlayer(senderID) == null) {
return; return;

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R3;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -22,17 +22,21 @@ import org.bukkit.entity.Player;
import com.lishid.openinv.OpenInv; import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.IAnySilentChest; import com.lishid.openinv.internal.IAnySilentChest;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_8_R1.entity.*; import net.minecraft.server.v1_8_R3.Block;
import net.minecraft.server.v1_8_R3.BlockPosition;
import net.minecraft.server.v1_8_R3.EntityPlayer;
import net.minecraft.server.v1_8_R3.IInventory;
import net.minecraft.server.v1_8_R3.ITileInventory;
import net.minecraft.server.v1_8_R3.InventoryLargeChest;
import net.minecraft.server.v1_8_R3.PacketPlayOutOpenWindow;
import net.minecraft.server.v1_8_R3.TileEntityChest;
import net.minecraft.server.v1_8_R3.World;
public class AnySilentChest implements IAnySilentChest { public class AnySilentChest implements IAnySilentChest {
@Override
public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { public boolean IsAnyChestNeeded(Player p, int x, int y, int z) {
// FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest
EntityPlayer player = ((CraftPlayer) p).getHandle(); EntityPlayer player = ((CraftPlayer) p).getHandle();
@@ -56,10 +60,11 @@ public class AnySilentChest implements IAnySilentChest {
return false; return false;
} }
@Override
public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) {
EntityPlayer player = ((CraftPlayer) p).getHandle(); EntityPlayer player = ((CraftPlayer) p).getHandle();
World world = player.world; World world = player.world;
Object chest = (TileEntityChest) world.getTileEntity(new BlockPosition(x, y, z)); Object chest = world.getTileEntity(new BlockPosition(x, y, z));
if (chest == null) if (chest == null)
return true; return true;

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R3;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@@ -26,10 +26,12 @@ import com.lishid.openinv.Permissions;
import com.lishid.openinv.internal.IInventoryAccess; import com.lishid.openinv.internal.IInventoryAccess;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
import net.minecraft.server.v1_8_R3.IInventory;
public class InventoryAccess implements IInventoryAccess { public class InventoryAccess implements IInventoryAccess {
@Override
public boolean check(Inventory inventory, HumanEntity player) { public boolean check(Inventory inventory, HumanEntity player) {
IInventory inv = grabInventory(inventory); IInventory inv = grabInventory(inventory);

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R3;
import java.io.File; import java.io.File;
import java.util.UUID; import java.util.UUID;
@@ -28,11 +28,14 @@ import com.lishid.openinv.internal.IPlayerDataManager;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R3.CraftServer;
import org.bukkit.craftbukkit.v1_8_R1.*; import net.minecraft.server.v1_8_R3.EntityPlayer;
import net.minecraft.server.v1_8_R3.MinecraftServer;
import net.minecraft.server.v1_8_R3.PlayerInteractManager;
public class PlayerDataManager implements IPlayerDataManager { public class PlayerDataManager implements IPlayerDataManager {
@Override
public Player loadPlayer(String name) { public Player loadPlayer(String name) {
try { try {
UUID uuid = matchUser(name); UUID uuid = matchUser(name);
@@ -107,7 +110,7 @@ public class PlayerDataManager implements IPlayerDataManager {
*/ */
@Override @Override
public Player loadPlayer(UUID uuid) { public Player loadPlayer(UUID uuid) {
OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); OfflinePlayer player = Bukkit.getOfflinePlayer(uuid);
if (player == null || !player.hasPlayedBefore()) { if (player == null || !player.hasPlayedBefore()) {
return null; return null;
} }

View File

@@ -14,10 +14,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R3;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import net.minecraft.server.v1_8_R3.ContainerChest;
import net.minecraft.server.v1_8_R3.EntityHuman;
import net.minecraft.server.v1_8_R3.IInventory;
public class SilentContainerChest extends ContainerChest { public class SilentContainerChest extends ContainerChest {
public IInventory inv; public IInventory inv;

View File

@@ -14,32 +14,38 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R3;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialEnderChest;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.InventoryHolder;
import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialEnderChest;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.v1_8_R1.entity.*; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory;
import net.minecraft.server.v1_8_R3.EntityHuman;
import net.minecraft.server.v1_8_R3.IInventory;
import net.minecraft.server.v1_8_R3.InventoryEnderChest;
import net.minecraft.server.v1_8_R3.InventorySubcontainer;
import net.minecraft.server.v1_8_R3.ItemStack;
public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest {
public List<HumanEntity> transaction = new ArrayList<HumanEntity>(); public List<HumanEntity> transaction = new ArrayList<HumanEntity>();
public boolean playerOnline = false; public boolean playerOnline = false;
private CraftPlayer owner; private final CraftPlayer owner;
private InventoryEnderChest enderChest; private final InventoryEnderChest enderChest;
private int maxStack = MAX_STACK; private int maxStack = MAX_STACK;
private CraftInventory inventory = new CraftInventory(this); private final CraftInventory inventory = new CraftInventory(this);
public SpecialEnderChest(Player p, Boolean online) { public SpecialEnderChest(Player p, Boolean online) {
super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize());
@@ -50,10 +56,12 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
OpenInv.enderChests.put(owner.getName().toLowerCase(), this); OpenInv.enderChests.put(owner.getName().toLowerCase(), this);
} }
@Override
public Inventory getBukkitInventory() { public Inventory getBukkitInventory() {
return inventory; return inventory;
} }
@Override
public void InventoryRemovalCheck() { public void InventoryRemovalCheck() {
owner.saveData(); owner.saveData();
if (transaction.isEmpty() && !playerOnline) { if (transaction.isEmpty() && !playerOnline) {
@@ -61,6 +69,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
} }
} }
@Override
public void PlayerGoOnline(Player p) { public void PlayerGoOnline(Player p) {
if (!playerOnline) { if (!playerOnline) {
try { try {
@@ -75,39 +84,48 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
} }
} }
@Override
public void PlayerGoOffline() { public void PlayerGoOffline() {
playerOnline = false; playerOnline = false;
} }
@Override
public ItemStack[] getContents() { public ItemStack[] getContents() {
return this.items; return this.items;
} }
@Override
public void onOpen(CraftHumanEntity who) { public void onOpen(CraftHumanEntity who) {
transaction.add(who); transaction.add(who);
} }
@Override
public void onClose(CraftHumanEntity who) { public void onClose(CraftHumanEntity who) {
transaction.remove(who); transaction.remove(who);
this.InventoryRemovalCheck(); this.InventoryRemovalCheck();
} }
@Override
public List<HumanEntity> getViewers() { public List<HumanEntity> getViewers() {
return transaction; return transaction;
} }
@Override
public InventoryHolder getOwner() { public InventoryHolder getOwner() {
return this.owner; return this.owner;
} }
@Override
public void setMaxStackSize(int size) { public void setMaxStackSize(int size) {
maxStack = size; maxStack = size;
} }
@Override
public int getMaxStackSize() { public int getMaxStackSize() {
return maxStack; return maxStack;
} }
@Override
public boolean a(EntityHuman entityhuman) { public boolean a(EntityHuman entityhuman) {
return true; return true;
} }
@@ -120,6 +138,7 @@ public class SpecialEnderChest extends InventorySubcontainer implements IInvento
} }
@Override
public void update() { public void update() {
enderChest.update(); enderChest.update();
} }

View File

@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package com.lishid.openinv.internal.v1_8_R1; package com.lishid.openinv.internal.v1_8_R3;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
@@ -23,15 +23,19 @@ import com.lishid.openinv.OpenInv;
import com.lishid.openinv.internal.ISpecialPlayerInventory; import com.lishid.openinv.internal.ISpecialPlayerInventory;
//Volatile //Volatile
import net.minecraft.server.v1_8_R1.*; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.v1_8_R1.entity.*; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_8_R1.inventory.*; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftInventory;
import net.minecraft.server.v1_8_R3.EntityHuman;
import net.minecraft.server.v1_8_R3.ItemStack;
import net.minecraft.server.v1_8_R3.PlayerInventory;
public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory {
CraftPlayer owner; CraftPlayer owner;
public boolean playerOnline = false; public boolean playerOnline = false;
private ItemStack[] extra = new ItemStack[5]; private final ItemStack[] extra = new ItemStack[5];
private CraftInventory inventory = new CraftInventory(this); private final CraftInventory inventory = new CraftInventory(this);
public SpecialPlayerInventory(Player p, Boolean online) { public SpecialPlayerInventory(Player p, Boolean online) {
super(((CraftPlayer) p).getHandle()); super(((CraftPlayer) p).getHandle());

View File

@@ -1,6 +1,6 @@
name: OpenInv name: OpenInv
main: com.lishid.openinv.OpenInv main: com.lishid.openinv.OpenInv
version: 2.2.6 version: 2.2.8
author: lishid author: lishid
description: > description: >
This plugin allows you to open a player's inventory as a chest and interact with it in real time. This plugin allows you to open a player's inventory as a chest and interact with it in real time.