Reintroduce full OpenInv #20
@@ -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.");
 | 
				
			||||||
@@ -82,6 +84,11 @@ public class OpenEnderPluginCommand implements CommandExecutor {
 | 
				
			|||||||
        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;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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_R2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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_R2.entity.CraftPlayer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.entity.*;
 | 
					import net.minecraft.server.v1_8_R2.Block;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.BlockPosition;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.EntityPlayer;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.IInventory;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.ITileInventory;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.InventoryLargeChest;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.PacketPlayOutOpenWindow;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.TileEntityChest;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -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_R2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.reflect.Field;
 | 
					import java.lang.reflect.Field;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -25,11 +25,13 @@ import com.lishid.openinv.OpenInv;
 | 
				
			|||||||
import com.lishid.openinv.Permissions;
 | 
					import com.lishid.openinv.Permissions;
 | 
				
			||||||
import com.lishid.openinv.internal.IInventoryAccess;
 | 
					import com.lishid.openinv.internal.IInventoryAccess;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Volatile
 | 
					//Volatile
 | 
				
			||||||
import net.minecraft.server.v1_8_R1.*;
 | 
					import net.minecraft.server.v1_8_R2.IInventory;
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
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);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
@@ -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_R2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.File;
 | 
					import java.io.File;
 | 
				
			||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
@@ -27,12 +27,15 @@ import com.lishid.openinv.OpenInv;
 | 
				
			|||||||
import com.lishid.openinv.internal.IPlayerDataManager;
 | 
					import com.lishid.openinv.internal.IPlayerDataManager;
 | 
				
			||||||
import com.mojang.authlib.GameProfile;
 | 
					import com.mojang.authlib.GameProfile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Volatile
 | 
					import org.bukkit.craftbukkit.v1_8_R2.CraftServer;
 | 
				
			||||||
import net.minecraft.server.v1_8_R1.*;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.*;
 | 
					import net.minecraft.server.v1_8_R2.EntityPlayer;
 | 
				
			||||||
 | 
					//Volatile
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.MinecraftServer;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.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);
 | 
				
			||||||
@@ -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_R2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Volatile
 | 
					//Volatile
 | 
				
			||||||
import net.minecraft.server.v1_8_R1.*;
 | 
					import net.minecraft.server.v1_8_R2.ContainerChest;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.EntityHuman;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.IInventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class SilentContainerChest extends ContainerChest {
 | 
					public class SilentContainerChest extends ContainerChest {
 | 
				
			||||||
    public IInventory inv;
 | 
					    public IInventory inv;
 | 
				
			||||||
@@ -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_R2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.craftbukkit.v1_8_R2.entity.CraftHumanEntity;
 | 
				
			||||||
 | 
					import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
 | 
				
			||||||
 | 
					import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Volatile
 | 
					//Volatile
 | 
				
			||||||
import net.minecraft.server.v1_8_R1.*;
 | 
					import net.minecraft.server.v1_8_R2.EntityHuman;
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.entity.*;
 | 
					import net.minecraft.server.v1_8_R2.IInventory;
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
 | 
					import net.minecraft.server.v1_8_R2.InventoryEnderChest;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.InventorySubcontainer;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.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();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -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_R2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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_R2.entity.CraftHumanEntity;
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.entity.*;
 | 
					import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
 | 
				
			||||||
import org.bukkit.craftbukkit.v1_8_R1.inventory.*;
 | 
					import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftInventory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.EntityHuman;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.ItemStack;
 | 
				
			||||||
 | 
					import net.minecraft.server.v1_8_R2.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());
 | 
				
			||||||
@@ -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.7
 | 
				
			||||||
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.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user