diff --git a/src/com/lishid/openinv/internal/craftbukkit/AnySilentChest.java b/src/com/lishid/openinv/internal/craftbukkit/AnySilentChest.java deleted file mode 100644 index df0b089d..00000000 --- a/src/com/lishid/openinv/internal/craftbukkit/AnySilentChest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.craftbukkit; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.*; - -import org.bukkit.craftbukkit.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.s(x, y + 1, z)) - return true; - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - if (!anychest) { - if (world.s(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int id = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - id = windowID.getInt(player); - id = id % 100 + 1; - windowID.setInt(player, id); - } - catch (NoSuchFieldException e) {} - - player.netServerHandler.sendPacket(new Packet100OpenWindow(id, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize())); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = id; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/craftbukkit/InventoryAccess.java b/src/com/lishid/openinv/internal/craftbukkit/InventoryAccess.java deleted file mode 100644 index 3ac33529..00000000 --- a/src/com/lishid/openinv/internal/craftbukkit/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.craftbukkit; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.*; -import org.bukkit.craftbukkit.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/craftbukkit/PlayerDataManager.java b/src/com/lishid/openinv/internal/craftbukkit/PlayerDataManager.java deleted file mode 100644 index 6a67c372..00000000 --- a/src/com/lishid/openinv/internal/craftbukkit/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.craftbukkit; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.*; -import org.bukkit.craftbukkit.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new ItemInWorldManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/craftbukkit/SilentContainerChest.java b/src/com/lishid/openinv/internal/craftbukkit/SilentContainerChest.java deleted file mode 100644 index a5128f02..00000000 --- a/src/com/lishid/openinv/internal/craftbukkit/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.craftbukkit; - -//Volatile -import net.minecraft.server.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.f(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/craftbukkit/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/craftbukkit/SpecialPlayerInventory.java deleted file mode 100644 index 280cce27..00000000 --- a/src/com/lishid/openinv/internal/craftbukkit/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.craftbukkit; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.*; -import org.bukkit.craftbukkit.entity.*; -import org.bukkit.craftbukkit.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.name.length() > 16) { - return player.name.substring(0, 16); - } - return player.name; - } - - @Override - public boolean a_(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_4_5/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_4_5/AnySilentChest.java deleted file mode 100644 index 50d6921b..00000000 --- a/src/com/lishid/openinv/internal/v1_4_5/AnySilentChest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_5; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_4_5.*; - -import org.bukkit.craftbukkit.v1_4_5.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.s(x, y + 1, z)) - return true; - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - if (!anychest) { - if (world.s(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int id = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - id = windowID.getInt(player); - id = id % 100 + 1; - windowID.setInt(player, id); - } - catch (NoSuchFieldException e) {} - - player.netServerHandler.sendPacket(new Packet100OpenWindow(id, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize())); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = id; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java deleted file mode 100644 index b4f6d7e9..00000000 --- a/src/com/lishid/openinv/internal/v1_4_5/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_5; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_4_5.*; -import org.bukkit.craftbukkit.v1_4_5.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java deleted file mode 100644 index 9138717a..00000000 --- a/src/com/lishid/openinv/internal/v1_4_5/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_5; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_4_5.*; -import org.bukkit.craftbukkit.v1_4_5.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new ItemInWorldManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java deleted file mode 100644 index 96630967..00000000 --- a/src/com/lishid/openinv/internal/v1_4_5/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_5; - -//Volatile -import net.minecraft.server.v1_4_5.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.f(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java deleted file mode 100644 index 81637bb0..00000000 --- a/src/com/lishid/openinv/internal/v1_4_5/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_5; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_4_5.*; -import org.bukkit.craftbukkit.v1_4_5.entity.*; -import org.bukkit.craftbukkit.v1_4_5.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java deleted file mode 100644 index 912f8dc6..00000000 --- a/src/com/lishid/openinv/internal/v1_4_5/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_5; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_4_5.*; -import org.bukkit.craftbukkit.v1_4_5.entity.*; -import org.bukkit.craftbukkit.v1_4_5.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.name.length() > 16) { - return player.name.substring(0, 16); - } - return player.name; - } - - @Override - public boolean a_(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_4_6/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_4_6/AnySilentChest.java deleted file mode 100644 index ea08779e..00000000 --- a/src/com/lishid/openinv/internal/v1_4_6/AnySilentChest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_6; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_4_6.*; - -import org.bukkit.craftbukkit.v1_4_6.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.s(x, y + 1, z)) - return true; - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - if (!anychest) { - if (world.s(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int id = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - id = windowID.getInt(player); - id = id % 100 + 1; - windowID.setInt(player, id); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(id, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize())); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = id; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java deleted file mode 100644 index b71024c1..00000000 --- a/src/com/lishid/openinv/internal/v1_4_6/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_6; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_4_6.*; -import org.bukkit.craftbukkit.v1_4_6.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java deleted file mode 100644 index 84b37ad5..00000000 --- a/src/com/lishid/openinv/internal/v1_4_6/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_6; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_4_6.*; -import org.bukkit.craftbukkit.v1_4_6.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java deleted file mode 100644 index 953e8d67..00000000 --- a/src/com/lishid/openinv/internal/v1_4_6/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_6; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_4_6.*; -import org.bukkit.craftbukkit.v1_4_6.entity.*; -import org.bukkit.craftbukkit.v1_4_6.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java deleted file mode 100644 index e5299f1a..00000000 --- a/src/com/lishid/openinv/internal/v1_4_6/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_6; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_4_6.*; -import org.bukkit.craftbukkit.v1_4_6.entity.*; -import org.bukkit.craftbukkit.v1_4_6.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.name.length() > 16) { - return player.name.substring(0, 16); - } - return player.name; - } - - @Override - public boolean a_(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_4_R1/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_4_R1/AnySilentChest.java deleted file mode 100644 index aa210181..00000000 --- a/src/com/lishid/openinv/internal/v1_4_R1/AnySilentChest.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_R1; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_4_R1.*; - -import org.bukkit.craftbukkit.v1_4_R1.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.s(x, y + 1, z)) - return true; - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - if (!anychest) { - if (world.s(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == Block.CHEST.id) && (world.s(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == Block.CHEST.id) && (world.s(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == Block.CHEST.id) && (world.s(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == Block.CHEST.id) && (world.s(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == Block.CHEST.id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int id = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - id = windowID.getInt(player); - id = id % 100 + 1; - windowID.setInt(player, id); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(id, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize())); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = id; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java deleted file mode 100644 index 6ac96fea..00000000 --- a/src/com/lishid/openinv/internal/v1_4_R1/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_R1; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_4_R1.*; -import org.bukkit.craftbukkit.v1_4_R1.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java deleted file mode 100644 index 0f699366..00000000 --- a/src/com/lishid/openinv/internal/v1_4_R1/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_R1; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_4_R1.*; -import org.bukkit.craftbukkit.v1_4_R1.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java deleted file mode 100644 index 7364a38e..00000000 --- a/src/com/lishid/openinv/internal/v1_4_R1/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_R1; - -//Volatile -import net.minecraft.server.v1_4_R1.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.f(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java deleted file mode 100644 index 93e02c24..00000000 --- a/src/com/lishid/openinv/internal/v1_4_R1/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_R1; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_4_R1.*; -import org.bukkit.craftbukkit.v1_4_R1.entity.*; -import org.bukkit.craftbukkit.v1_4_R1.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java deleted file mode 100644 index fd6126ad..00000000 --- a/src/com/lishid/openinv/internal/v1_4_R1/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_R1; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_4_R1.*; -import org.bukkit.craftbukkit.v1_4_R1.entity.*; -import org.bukkit.craftbukkit.v1_4_R1.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.name.length() > 16) { - return player.name.substring(0, 16); - } - return player.name; - } - - @Override - public boolean a_(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_5_R2/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_5_R2/AnySilentChest.java deleted file mode 100644 index f91b90e2..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R2/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R2; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_5_R2.*; - -import org.bukkit.craftbukkit.v1_5_R2.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.t(x, y + 1, z)) - return true; - - int id = world.getTypeId(x, y, z); - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = world.getTypeId(x, y, z); - - if (!anychest) { - if (world.t(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(windowId, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java deleted file mode 100644 index 56bc4506..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R2/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R2; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_5_R2.*; -import org.bukkit.craftbukkit.v1_5_R2.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java deleted file mode 100644 index 6768a971..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R2/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R2; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_5_R2.*; -import org.bukkit.craftbukkit.v1_5_R2.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager((World) server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java deleted file mode 100644 index 4eb0ecb5..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R2/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R2; - -//Volatile -import net.minecraft.server.v1_5_R2.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.g(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java deleted file mode 100644 index add67673..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R2/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R2; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_5_R2.*; -import org.bukkit.craftbukkit.v1_5_R2.entity.*; -import org.bukkit.craftbukkit.v1_5_R2.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java deleted file mode 100644 index e4cee51c..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R2/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R2; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_5_R2.*; -import org.bukkit.craftbukkit.v1_5_R2.entity.*; -import org.bukkit.craftbukkit.v1_5_R2.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.name.length() > 16) { - return player.name.substring(0, 16); - } - return player.name; - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_5_R3/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_5_R3/AnySilentChest.java deleted file mode 100644 index 0f3805c1..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R3/AnySilentChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R3; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -import com.lishid.openinv.internal.v1_5_R3.SilentContainerChest; - -//Volatile -import net.minecraft.server.v1_5_R3.*; - -import org.bukkit.craftbukkit.v1_5_R3.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.t(x, y + 1, z)) - return true; - - int id = world.getTypeId(x, y, z); - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = world.getTypeId(x, y, z); - - if (!anychest) { - if (world.t(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(windowId, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java deleted file mode 100644 index 192619c5..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R3/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R3; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_5_R3.*; -import org.bukkit.craftbukkit.v1_5_R3.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java deleted file mode 100644 index 82e03fc5..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R3/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R3; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_5_R3.*; -import org.bukkit.craftbukkit.v1_5_R3.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager((World) server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java deleted file mode 100644 index 66615b1e..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R3/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R3; - -//Volatile -import net.minecraft.server.v1_5_R3.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.g(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java deleted file mode 100644 index f3010ec0..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R3/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R3; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_5_R3.*; -import org.bukkit.craftbukkit.v1_5_R3.entity.*; -import org.bukkit.craftbukkit.v1_5_R3.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java deleted file mode 100644 index 3afdec8d..00000000 --- a/src/com/lishid/openinv/internal/v1_5_R3/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_5_R3; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_5_R3.*; -import org.bukkit.craftbukkit.v1_5_R3.entity.*; -import org.bukkit.craftbukkit.v1_5_R3.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.name.length() > 16) { - return player.name.substring(0, 16); - } - return player.name; - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_6_R1/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_6_R1/AnySilentChest.java deleted file mode 100644 index b081942a..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R1/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R1; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_6_R1.*; - -import org.bukkit.craftbukkit.v1_6_R1.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.t(x, y + 1, z)) - return true; - - int id = world.getTypeId(x, y, z); - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = world.getTypeId(x, y, z); - - if (!anychest) { - if (world.t(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(windowId, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java deleted file mode 100644 index 15acaa70..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R1/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R1; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_6_R1.*; -import org.bukkit.craftbukkit.v1_6_R1.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java deleted file mode 100644 index 393eedf1..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R1/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R1; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_6_R1.*; -import org.bukkit.craftbukkit.v1_6_R1.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager((World) server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java deleted file mode 100644 index 1e63378c..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R1/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R1; - -//Volatile -import net.minecraft.server.v1_6_R1.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.g(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java deleted file mode 100644 index 1a30c97e..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R1/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R1; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_6_R1.*; -import org.bukkit.craftbukkit.v1_6_R1.entity.*; -import org.bukkit.craftbukkit.v1_6_R1.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java deleted file mode 100644 index 8aaa85ff..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R1/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R1; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_6_R1.*; -import org.bukkit.craftbukkit.v1_6_R1.entity.*; -import org.bukkit.craftbukkit.v1_6_R1.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.getName().length() > 16) { - return player.getName().substring(0, 16); - } - return player.getName(); - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_6_R2/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_6_R2/AnySilentChest.java deleted file mode 100644 index e516a714..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R2/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R2; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_6_R2.*; - -import org.bukkit.craftbukkit.v1_6_R2.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.t(x, y + 1, z)) - return true; - - int id = world.getTypeId(x, y, z); - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = world.getTypeId(x, y, z); - - if (!anychest) { - if (world.t(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(windowId, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java deleted file mode 100644 index 6325e807..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R2/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R2; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_6_R2.*; -import org.bukkit.craftbukkit.v1_6_R2.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java deleted file mode 100644 index 3143ab30..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R2/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R2; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_6_R2.*; -import org.bukkit.craftbukkit.v1_6_R2.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager((World) server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java deleted file mode 100644 index d014f351..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R2/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R2; - -//Volatile -import net.minecraft.server.v1_6_R2.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.g(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java deleted file mode 100644 index 9d25cbb5..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R2/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R2; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_6_R2.*; -import org.bukkit.craftbukkit.v1_6_R2.entity.*; -import org.bukkit.craftbukkit.v1_6_R2.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java deleted file mode 100644 index 3f59a7c9..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R2/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R2; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_6_R2.*; -import org.bukkit.craftbukkit.v1_6_R2.entity.*; -import org.bukkit.craftbukkit.v1_6_R2.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.getName().length() > 16) { - return player.getName().substring(0, 16); - } - return player.getName(); - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_6_R3/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_6_R3/AnySilentChest.java deleted file mode 100644 index e2a93e7e..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R3/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R3; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_6_R3.*; - -import org.bukkit.craftbukkit.v1_6_R3.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.t(x, y + 1, z)) - return true; - - int id = world.getTypeId(x, y, z); - - // If block next to chest is chest and has a block on top - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = world.getTypeId(x, y, z); - - if (!anychest) { - if (world.t(x, y + 1, z)) - return true; - if ((world.getTypeId(x - 1, y, z) == id) && (world.t(x - 1, y + 1, z))) - return true; - if ((world.getTypeId(x + 1, y, z) == id) && (world.t(x + 1, y + 1, z))) - return true; - if ((world.getTypeId(x, y, z - 1) == id) && (world.t(x, y + 1, z - 1))) - return true; - if ((world.getTypeId(x, y, z + 1) == id) && (world.t(x, y + 1, z + 1))) - return true; - } - - if (world.getTypeId(x - 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (world.getTypeId(x + 1, y, z) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (world.getTypeId(x, y, z - 1) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (world.getTypeId(x, y, z + 1) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new Packet100OpenWindow(windowId, 0, ((IInventory) chest).getName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java deleted file mode 100644 index ecf5740d..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R3/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R3; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_6_R3.*; -import org.bukkit.craftbukkit.v1_6_R3.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java deleted file mode 100644 index e87eb7a2..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R3/PlayerDataManager.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R3; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; - -//Volatile -import net.minecraft.server.v1_6_R3.*; -import org.bukkit.craftbukkit.v1_6_R3.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), playername, new PlayerInteractManager((World) server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java deleted file mode 100644 index 3a37b259..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R3/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R3; - -//Volatile -import net.minecraft.server.v1_6_R3.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.g(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java deleted file mode 100644 index f04726d0..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R3/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R3; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_6_R3.*; -import org.bukkit.craftbukkit.v1_6_R3.entity.*; -import org.bukkit.craftbukkit.v1_6_R3.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().c(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java deleted file mode 100644 index 485e98f3..00000000 --- a/src/com/lishid/openinv/internal/v1_6_R3/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_6_R3; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_6_R3.*; -import org.bukkit.craftbukkit.v1_6_R3.entity.*; -import org.bukkit.craftbukkit.v1_6_R3.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getName() { - if (player.getName().length() > 16) { - return player.getName().substring(0, 16); - } - return player.getName(); - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R1/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_7_R1/AnySilentChest.java deleted file mode 100644 index 92aa7ec8..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R1/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R1; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_7_R1.*; - -import org.bukkit.craftbukkit.v1_7_R1.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.getType(x, y + 1, z).c()) - return true; - - int id = Block.b(world.getType(x, y, z)); - - // If block next to chest is chest and has a block on top - if ((Block.b(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.b(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = Block.b(world.getType(x, y, z)); - - if (!anychest) { - if (world.getType(x, y + 1, z).c()) - return true; - if ((Block.b(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.b(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - } - - if (Block.b(world.getType(x - 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (Block.b(world.getType(x + 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (Block.b(world.getType(x, y, z - 1)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (Block.b(world.getType(x, y, z + 1)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId, 0, ((IInventory) chest).getInventoryName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java deleted file mode 100644 index 6121bcbd..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R1/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R1; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_7_R1.*; -import org.bukkit.craftbukkit.v1_7_R1.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java deleted file mode 100644 index 96423cee..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R1/PlayerDataManager.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R1; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; -import net.minecraft.util.com.mojang.authlib.GameProfile; - -//Volatile -import net.minecraft.server.v1_7_R1.*; -import org.bukkit.craftbukkit.v1_7_R1.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - GameProfile profile = new GameProfile(null, playername); - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), profile, new PlayerInteractManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java deleted file mode 100644 index eaf44e39..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R1/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R1; - -//Volatile -import net.minecraft.server.v1_7_R1.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.l_(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java deleted file mode 100644 index 24d3dc87..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R1/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R1; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_7_R1.*; -import org.bukkit.craftbukkit.v1_7_R1.entity.*; -import org.bukkit.craftbukkit.v1_7_R1.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java deleted file mode 100644 index 72294870..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R1/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R1; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_7_R1.*; -import org.bukkit.craftbukkit.v1_7_R1.entity.*; -import org.bukkit.craftbukkit.v1_7_R1.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack, true); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getInventoryName() { - if (player.getName().length() > 16) { - return player.getName().substring(0, 16); - } - return player.getName(); - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R2/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_7_R2/AnySilentChest.java deleted file mode 100644 index ef4e9321..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R2/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R2; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_7_R2.*; - -import org.bukkit.craftbukkit.v1_7_R2.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.getType(x, y + 1, z).c()) - return true; - - int id = Block.b(world.getType(x, y, z)); - - // If block next to chest is chest and has a block on top - if ((Block.b(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.b(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = Block.b(world.getType(x, y, z)); - - if (!anychest) { - if (world.getType(x, y + 1, z).c()) - return true; - if ((Block.b(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.b(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - } - - if (Block.b(world.getType(x - 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (Block.b(world.getType(x + 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (Block.b(world.getType(x, y, z - 1)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (Block.b(world.getType(x, y, z + 1)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId, 0, ((IInventory) chest).getInventoryName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java deleted file mode 100644 index 5d04cd32..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R2/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R2; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_7_R2.*; -import org.bukkit.craftbukkit.v1_7_R2.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java deleted file mode 100644 index 35ce5846..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R2/PlayerDataManager.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R2; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; -import net.minecraft.util.com.mojang.authlib.GameProfile; - -//Volatile -import net.minecraft.server.v1_7_R2.*; -import org.bukkit.craftbukkit.v1_7_R2.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "players"); - if (!playerfolder.exists()) { - return null; - } - - String playername = matchUser(Arrays.asList(playerfolder.listFiles()), name); - - if (playername == null) { - return null; - } - - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - - GameProfile profile = new GameProfile(null, playername); - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), profile, new PlayerInteractManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - /** - * @author Balor (aka Antoine Aflalo) - */ - private static String matchUser(final Collection container, final String search) { - String found = null; - if (search == null) { - return found; - } - final String lowerSearch = search.toLowerCase(); - int delta = Integer.MAX_VALUE; - for (final File file : container) { - final String filename = file.getName(); - final String str = filename.substring(0, filename.length() - 4); - if (!str.toLowerCase().startsWith(lowerSearch)) { - continue; - } - final int curDelta = str.length() - lowerSearch.length(); - if (curDelta < delta) { - found = str; - delta = curDelta; - } - if (curDelta == 0) { - break; - } - - } - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java deleted file mode 100644 index ef092cb8..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R2/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R2; - -//Volatile -import net.minecraft.server.v1_7_R2.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.l_(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java deleted file mode 100644 index a24f7b5d..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R2/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R2; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_7_R2.*; -import org.bukkit.craftbukkit.v1_7_R2.entity.*; -import org.bukkit.craftbukkit.v1_7_R2.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java deleted file mode 100644 index d3e0160a..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R2/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R2; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_7_R2.*; -import org.bukkit.craftbukkit.v1_7_R2.entity.*; -import org.bukkit.craftbukkit.v1_7_R2.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack, true); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getInventoryName() { - if (player.getName().length() > 16) { - return player.getName().substring(0, 16); - } - return player.getName(); - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R3/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_7_R3/AnySilentChest.java deleted file mode 100644 index 7eb95a58..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R3/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R3; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_7_R3.*; - -import org.bukkit.craftbukkit.v1_7_R3.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.getType(x, y + 1, z).c()) - return true; - - int id = Block.b(world.getType(x, y, z)); - - // If block next to chest is chest and has a block on top - if ((Block.b(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.b(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = Block.b(world.getType(x, y, z)); - - if (!anychest) { - if (world.getType(x, y + 1, z).c()) - return true; - if ((Block.b(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.b(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.b(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - } - - if (Block.b(world.getType(x - 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (Block.b(world.getType(x + 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (Block.b(world.getType(x, y, z - 1)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (Block.b(world.getType(x, y, z + 1)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId, 0, ((IInventory) chest).getInventoryName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java deleted file mode 100644 index 234fd2bc..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R3/InventoryAccess.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R3; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.Permissions; -import com.lishid.openinv.internal.IInventoryAccess; - -//Volatile -import net.minecraft.server.v1_7_R3.*; -import org.bukkit.craftbukkit.v1_7_R3.inventory.*; - -public class InventoryAccess implements IInventoryAccess { - public boolean check(Inventory inventory, HumanEntity player) { - IInventory inv = ((CraftInventory) inventory).getInventory(); - - if (inv instanceof SpecialPlayerInventory) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITINV)) { - return false; - } - } - - else if (inv instanceof SpecialEnderChest) { - if (!OpenInv.hasPermission(player, Permissions.PERM_EDITENDER)) { - return false; - } - } - - return true; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java deleted file mode 100644 index 2976b831..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R3/PlayerDataManager.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R3; - -import java.io.File; -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IPlayerDataManager; -import net.minecraft.util.com.mojang.authlib.GameProfile; - -//Volatile -import net.minecraft.server.v1_7_R3.*; - -import org.bukkit.craftbukkit.v1_7_R3.*; - -public class PlayerDataManager implements IPlayerDataManager { - public Player loadPlayer(String name) { - try { - UUID uuid = matchUser(name); - if (uuid == null) { - return null; - } - - // Default player folder - File playerfolder = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "playerdata"); - if (!playerfolder.exists()) { - return null; - } - - OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); - if (player == null) { - return null; - } - GameProfile profile = new GameProfile(uuid, player.getName()); - MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer(); - // Create an entity to load the player data - EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), profile, new PlayerInteractManager(server.getWorldServer(0))); - - // Get the bukkit entity - Player target = (entity == null) ? null : entity.getBukkitEntity(); - if (target != null) { - // Load data - target.loadData(); - // Return the entity - return target; - } - } - catch (Exception e) { - OpenInv.log(e); - } - - return null; - } - - private static UUID matchUser(String search) { - UUID found = null; - - String lowerSearch = search.toLowerCase(); - int delta = 2147483647; - - OfflinePlayer[] offlinePlayers = Bukkit.getOfflinePlayers(); - for (OfflinePlayer player : offlinePlayers) { - String name = player.getName(); - - if (name.equalsIgnoreCase(search)) - return player.getUniqueId(); - - if (name.toLowerCase().startsWith(lowerSearch)) { - int curDelta = name.length() - lowerSearch.length(); - if (curDelta < delta) { - found = player.getUniqueId(); - delta = curDelta; - } - if (curDelta == 0) { - break; - } - } - } - - return found; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java deleted file mode 100644 index 867e7143..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R3/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R3; - -//Volatile -import net.minecraft.server.v1_7_R3.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.l_(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java deleted file mode 100644 index 47a2235b..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R3/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R3; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_7_R3.*; -import org.bukkit.craftbukkit.v1_7_R3.entity.*; -import org.bukkit.craftbukkit.v1_7_R3.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R4/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_7_R4/AnySilentChest.java deleted file mode 100644 index 76efb80d..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R4/AnySilentChest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R4; - -import java.lang.reflect.Field; - -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.IAnySilentChest; - -//Volatile -import net.minecraft.server.v1_7_R4.*; - -import org.bukkit.craftbukkit.v1_7_R4.entity.*; - -public class AnySilentChest implements IAnySilentChest { - public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { - // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - // If block on top - if (world.getType(x, y + 1, z).c()) - return true; - - int id = Block.getId(world.getType(x, y, z)); - - // If block next to chest is chest and has a block on top - if ((Block.getId(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.getId(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.getId(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.getId(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - - return false; - } - - public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { - EntityPlayer player = ((CraftPlayer) p).getHandle(); - World world = player.world; - Object chest = (TileEntityChest) world.getTileEntity(x, y, z); - if (chest == null) - return true; - - int id = Block.getId(world.getType(x, y, z)); - - if (!anychest) { - if (world.getType(x, y + 1, z).c()) - return true; - if ((Block.getId(world.getType(x - 1, y, z)) == id) && (world.getType(x - 1, y + 1, z).c())) - return true; - if ((Block.getId(world.getType(x + 1, y, z)) == id) && (world.getType(x + 1, y + 1, z).c())) - return true; - if ((Block.getId(world.getType(x, y, z - 1)) == id) && (world.getType(x, y + 1, z - 1).c())) - return true; - if ((Block.getId(world.getType(x, y, z + 1)) == id) && (world.getType(x, y + 1, z + 1).c())) - return true; - } - - if (Block.getId(world.getType(x - 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x - 1, y, z), (IInventory) chest); - if (Block.getId(world.getType(x + 1, y, z)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x + 1, y, z)); - if (Block.getId(world.getType(x, y, z - 1)) == id) - chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(x, y, z - 1), (IInventory) chest); - if (Block.getId(world.getType(x, y, z + 1)) == id) - chest = new InventoryLargeChest("Large chest", (IInventory) chest, (TileEntityChest) world.getTileEntity(x, y, z + 1)); - - boolean returnValue = true; - if (!silentchest) { - player.openContainer((IInventory) chest); - } - else { - try { - int windowId = 0; - try { - Field windowID = player.getClass().getDeclaredField("containerCounter"); - windowID.setAccessible(true); - windowId = windowID.getInt(player); - windowId = windowId % 100 + 1; - windowID.setInt(player, windowId); - } - catch (NoSuchFieldException e) {} - - player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId, 0, ((IInventory) chest).getInventoryName(), ((IInventory) chest).getSize(), true)); - player.activeContainer = new SilentContainerChest(player.inventory, ((IInventory) chest)); - player.activeContainer.windowId = windowId; - player.activeContainer.addSlotListener(player); - if (OpenInv.NotifySilentChest()) { - p.sendMessage("You are opening a chest silently."); - } - returnValue = false; - } - catch (Exception e) { - e.printStackTrace(); - p.sendMessage(ChatColor.RED + "Error while sending silent chest."); - } - } - - if (anychest && OpenInv.NotifyAnyChest()) { - p.sendMessage("You are opening a blocked chest."); - } - - return returnValue; - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java deleted file mode 100644 index 0cbf2985..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R4/SilentContainerChest.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R4; - -//Volatile -import net.minecraft.server.v1_7_R4.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.closeContainer(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java deleted file mode 100644 index 8135307f..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R4/SpecialEnderChest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R4; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.v1_7_R4.*; -import org.bukkit.craftbukkit.v1_7_R4.entity.*; -import org.bukkit.craftbukkit.v1_7_R4.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getInventoryName(), ((CraftPlayer) p).getHandle().getEnderChest().k_(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} diff --git a/src/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java deleted file mode 100644 index b36388b7..00000000 --- a/src/com/lishid/openinv/internal/v1_7_R4/SpecialPlayerInventory.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_7_R4; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialPlayerInventory; - -//Volatile -import net.minecraft.server.v1_7_R4.*; -import org.bukkit.craftbukkit.v1_7_R4.entity.*; -import org.bukkit.craftbukkit.v1_7_R4.inventory.*; - -public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { - CraftPlayer owner; - public boolean playerOnline = false; - private ItemStack[] extra = new ItemStack[5]; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialPlayerInventory(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle()); - this.owner = ((CraftPlayer) p); - this.playerOnline = online; - this.items = player.inventory.items; - this.armor = player.inventory.armor; - OpenInv.inventories.put(owner.getName().toLowerCase(), this); - } - - @Override - public Inventory getBukkitInventory() { - return inventory; - } - - @Override - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.inventories.remove(owner.getName().toLowerCase()); - } - } - - @Override - public void PlayerGoOnline(Player player) { - if (!playerOnline) { - CraftPlayer p = (CraftPlayer) player; - p.getHandle().inventory.items = this.items; - p.getHandle().inventory.armor = this.armor; - p.saveData(); - playerOnline = true; - } - } - - @Override - public void PlayerGoOffline() { - playerOnline = false; - this.InventoryRemovalCheck(); - } - - @Override - public void onClose(CraftHumanEntity who) { - super.onClose(who); - this.InventoryRemovalCheck(); - } - - @Override - public ItemStack[] getContents() { - ItemStack[] C = new ItemStack[getSize()]; - System.arraycopy(items, 0, C, 0, items.length); - System.arraycopy(items, 0, C, items.length, armor.length); - return C; - } - - @Override - public int getSize() { - return super.getSize() + 5; - } - - @Override - public ItemStack getItem(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - return is[i]; - } - - @Override - public ItemStack splitStack(int i, int j) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack; - - if (is[i].count <= j) { - itemstack = is[i]; - is[i] = null; - return itemstack; - } - else { - itemstack = is[i].a(j); - if (is[i].count == 0) { - is[i] = null; - } - - return itemstack; - } - } - else { - return null; - } - } - - @Override - public ItemStack splitWithoutUpdate(int i) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - if (is[i] != null) { - ItemStack itemstack = is[i]; - - is[i] = null; - return itemstack; - } - else { - return null; - } - } - - @Override - public void setItem(int i, ItemStack itemstack) { - ItemStack[] is = this.items; - - if (i >= is.length) { - i -= is.length; - is = this.armor; - } - else { - i = getReversedItemSlotNum(i); - } - - if (i >= is.length) { - i -= is.length; - is = this.extra; - } - else if (is == this.armor) { - i = getReversedArmorSlotNum(i); - } - - // Effects - if (is == this.extra) { - owner.getHandle().drop(itemstack, true); - itemstack = null; - } - - is[i] = itemstack; - - owner.getHandle().defaultContainer.b(); - } - - private int getReversedItemSlotNum(int i) { - if (i >= 27) - return i - 27; - else - return i + 9; - } - - private int getReversedArmorSlotNum(int i) { - if (i == 0) - return 3; - if (i == 1) - return 2; - if (i == 2) - return 1; - if (i == 3) - return 0; - else - return i; - } - - @Override - public String getInventoryName() { - if (player.getName().length() > 16) { - return player.getName().substring(0, 16); - } - return player.getName(); - } - - @Override - public boolean a(EntityHuman entityhuman) { - return true; - } -} \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/v1_8_R1/AnySilentChest.java b/src/com/lishid/openinv/internal/v1_8_R1/AnySilentChest.java new file mode 100644 index 00000000..9ec68157 --- /dev/null +++ b/src/com/lishid/openinv/internal/v1_8_R1/AnySilentChest.java @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2011-2014 lishid. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.lishid.openinv.internal.v1_8_R1; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import com.lishid.openinv.OpenInv; +import com.lishid.openinv.internal.IAnySilentChest; + + + + + + +//Volatile +import net.minecraft.server.v1_8_R1.*; + +import org.bukkit.craftbukkit.v1_8_R1.entity.*; + +public class AnySilentChest implements IAnySilentChest { + public boolean IsAnyChestNeeded(Player p, int x, int y, int z) { + // FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest + EntityPlayer player = ((CraftPlayer) p).getHandle(); + World world = player.world; + // If block on top + if (world.getType(new BlockPosition(x, y + 1, z)).getBlock().c()) + return true; + + int id = Block.getId(world.getType(new BlockPosition(x, y, z)).getBlock()); + + // If block next to chest is chest and has a block on top + if ((Block.getId(world.getType(new BlockPosition(x - 1, y, z)).getBlock()) == id) && (world.getType(new BlockPosition(x - 1, y + 1, z)).getBlock().c())) + return true; + if ((Block.getId(world.getType(new BlockPosition(x + 1, y, z)).getBlock()) == id) && (world.getType(new BlockPosition(x + 1, y + 1, z)).getBlock().c())) + return true; + if ((Block.getId(world.getType(new BlockPosition(x, y, z - 1)).getBlock()) == id) && (world.getType(new BlockPosition(x, y + 1, z - 1)).getBlock().c())) + return true; + if ((Block.getId(world.getType(new BlockPosition(x, y, z + 1)).getBlock()) == id) && (world.getType(new BlockPosition(x, y + 1, z + 1)).getBlock().c())) + return true; + + return false; + } + + public boolean ActivateChest(Player p, boolean anychest, boolean silentchest, int x, int y, int z) { + EntityPlayer player = ((CraftPlayer) p).getHandle(); + World world = player.world; + Object chest = (TileEntityChest) world.getTileEntity(new BlockPosition(x, y, z)); + if (chest == null) + return true; + + int id = Block.getId(world.getType(new BlockPosition(x, y, z)).getBlock()); + + if (!anychest) { + if (world.getType(new BlockPosition(x, y + 1, z)).getBlock().c()) + return true; + if ((Block.getId(world.getType(new BlockPosition(x - 1, y, z)).getBlock()) == id) && (world.getType(new BlockPosition(x - 1, y + 1, z)).getBlock().c())) + return true; + if ((Block.getId(world.getType(new BlockPosition(x + 1, y, z)).getBlock()) == id) && (world.getType(new BlockPosition(x + 1, y + 1, z)).getBlock().c())) + return true; + if ((Block.getId(world.getType(new BlockPosition(x, y, z - 1)).getBlock()) == id) && (world.getType(new BlockPosition(x, y + 1, z - 1)).getBlock().c())) + return true; + if ((Block.getId(world.getType(new BlockPosition(x, y, z + 1)).getBlock()) == id) && (world.getType(new BlockPosition(x, y + 1, z + 1)).getBlock().c())) + return true; + } + + if (Block.getId(world.getType(new BlockPosition(x - 1, y, z)).getBlock()) == id) + chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(new BlockPosition(x - 1, y, z)), (ITileInventory) chest); + if (Block.getId(world.getType(new BlockPosition(x + 1, y, z)).getBlock()) == id) + chest = new InventoryLargeChest("Large chest", (ITileInventory) chest, (TileEntityChest) world.getTileEntity(new BlockPosition(x + 1, y, z))); + if (Block.getId(world.getType(new BlockPosition(x, y, z - 1)).getBlock()) == id) + chest = new InventoryLargeChest("Large chest", (TileEntityChest) world.getTileEntity(new BlockPosition(x, y, z - 1)), (ITileInventory) chest); + if (Block.getId(world.getType(new BlockPosition(x, y, z + 1)).getBlock()) == id) + chest = new InventoryLargeChest("Large chest", (ITileInventory) chest, (TileEntityChest) world.getTileEntity(new BlockPosition(x, y, z + 1))); + + boolean returnValue = true; + if (!silentchest) { + player.openContainer((IInventory) chest); + } + else { + try { + SilentContainerChest silentContainerChest = new SilentContainerChest(player.inventory, ((IInventory) chest), player); + int windowId = player.nextContainerCounter(); + player.playerConnection.sendPacket(new PacketPlayOutOpenWindow(windowId, "minecraft:chest", ((IInventory) chest).getScoreboardDisplayName(), ((IInventory) chest).getSize())); + player.activeContainer = silentContainerChest; + player.activeContainer.windowId = windowId; + player.activeContainer.addSlotListener(player); + if (OpenInv.NotifySilentChest()) { + p.sendMessage("You are opening a chest silently."); + } + returnValue = false; + } + catch (Exception e) { + e.printStackTrace(); + p.sendMessage(ChatColor.RED + "Error while sending silent chest."); + } + } + + if (anychest && OpenInv.NotifyAnyChest()) { + p.sendMessage("You are opening a blocked chest."); + } + + return returnValue; + } +} diff --git a/src/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java b/src/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java similarity index 94% rename from src/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java rename to src/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java index 8a3977d1..47238af0 100644 --- a/src/com/lishid/openinv/internal/v1_7_R4/InventoryAccess.java +++ b/src/com/lishid/openinv/internal/v1_8_R1/InventoryAccess.java @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -package com.lishid.openinv.internal.v1_7_R4; +package com.lishid.openinv.internal.v1_8_R1; import java.lang.reflect.Field; @@ -26,8 +26,8 @@ import com.lishid.openinv.internal.IInventoryAccess; //Volatile -import net.minecraft.server.v1_7_R4.*; -import org.bukkit.craftbukkit.v1_7_R4.inventory.*; +import net.minecraft.server.v1_8_R1.*; +import org.bukkit.craftbukkit.v1_8_R1.inventory.*; public class InventoryAccess implements IInventoryAccess { public boolean check(Inventory inventory, HumanEntity player) { diff --git a/src/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java b/src/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java similarity index 94% rename from src/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java rename to src/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java index 8cadf56c..589af46a 100644 --- a/src/com/lishid/openinv/internal/v1_7_R4/PlayerDataManager.java +++ b/src/com/lishid/openinv/internal/v1_8_R1/PlayerDataManager.java @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -package com.lishid.openinv.internal.v1_7_R4; +package com.lishid.openinv.internal.v1_8_R1; import java.io.File; import java.util.UUID; @@ -25,12 +25,12 @@ import com.lishid.openinv.OpenInv; import com.lishid.openinv.internal.IPlayerDataManager; -import net.minecraft.util.com.mojang.authlib.GameProfile; +import com.mojang.authlib.GameProfile; //Volatile -import net.minecraft.server.v1_7_R4.*; +import net.minecraft.server.v1_8_R1.*; -import org.bukkit.craftbukkit.v1_7_R4.*; +import org.bukkit.craftbukkit.v1_8_R1.*; public class PlayerDataManager implements IPlayerDataManager { public Player loadPlayer(String name) { diff --git a/src/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java b/src/com/lishid/openinv/internal/v1_8_R1/SilentContainerChest.java similarity index 80% rename from src/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java rename to src/com/lishid/openinv/internal/v1_8_R1/SilentContainerChest.java index e245206b..1cbf8953 100644 --- a/src/com/lishid/openinv/internal/v1_4_6/SilentContainerChest.java +++ b/src/com/lishid/openinv/internal/v1_8_R1/SilentContainerChest.java @@ -1,36 +1,36 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.v1_4_6; - -//Volatile -import net.minecraft.server.v1_4_6.*; - -public class SilentContainerChest extends ContainerChest { - public IInventory inv; - - public SilentContainerChest(IInventory i1, IInventory i2) { - super(i1, i2); - inv = i2; - // close signal - inv.f(); - } - - @Override - public void b(EntityHuman paramEntityHuman) { - // Don't send close signal twice, might screw up - } +/* + * Copyright (C) 2011-2014 lishid. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.lishid.openinv.internal.v1_8_R1; + +//Volatile +import net.minecraft.server.v1_8_R1.*; + +public class SilentContainerChest extends ContainerChest { + public IInventory inv; + + public SilentContainerChest(IInventory i1, IInventory i2, EntityHuman e1) { + super(i1, i2, e1); + inv = i2; + // close signal + inv.closeContainer(e1); + } + + @Override + public void b(EntityHuman paramEntityHuman) { + // Don't send close signal twice, might screw up + } } \ No newline at end of file diff --git a/src/com/lishid/openinv/internal/craftbukkit/SpecialEnderChest.java b/src/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java similarity index 90% rename from src/com/lishid/openinv/internal/craftbukkit/SpecialEnderChest.java rename to src/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java index 5b10faac..a580f157 100644 --- a/src/com/lishid/openinv/internal/craftbukkit/SpecialEnderChest.java +++ b/src/com/lishid/openinv/internal/v1_8_R1/SpecialEnderChest.java @@ -1,126 +1,126 @@ -/* - * Copyright (C) 2011-2014 lishid. All rights reserved. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.lishid.openinv.internal.craftbukkit; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.lishid.openinv.OpenInv; -import com.lishid.openinv.internal.ISpecialEnderChest; - -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; - -//Volatile -import net.minecraft.server.*; -import org.bukkit.craftbukkit.entity.*; -import org.bukkit.craftbukkit.inventory.*; - -public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { - public List transaction = new ArrayList(); - public boolean playerOnline = false; - private CraftPlayer owner; - private InventoryEnderChest enderChest; - private int maxStack = MAX_STACK; - private CraftInventory inventory = new CraftInventory(this); - - public SpecialEnderChest(Player p, Boolean online) { - super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); - CraftPlayer player = (CraftPlayer) p; - this.enderChest = player.getHandle().getEnderChest(); - this.owner = player; - this.items = enderChest.getContents(); - OpenInv.enderChests.put(owner.getName().toLowerCase(), this); - } - - public Inventory getBukkitInventory() { - return inventory; - } - - public void InventoryRemovalCheck() { - owner.saveData(); - if (transaction.isEmpty() && !playerOnline) { - OpenInv.enderChests.remove(owner.getName().toLowerCase()); - } - } - - public void PlayerGoOnline(Player p) { - if (!playerOnline) { - try { - InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); - Field field = playerEnderChest.getClass().getField("items"); - field.setAccessible(true); - field.set(playerEnderChest, this.items); - } - catch (Exception e) {} - p.saveData(); - playerOnline = true; - } - } - - public void PlayerGoOffline() { - playerOnline = false; - } - - public ItemStack[] getContents() { - return this.items; - } - - public void onOpen(CraftHumanEntity who) { - transaction.add(who); - } - - public void onClose(CraftHumanEntity who) { - transaction.remove(who); - this.InventoryRemovalCheck(); - } - - public List getViewers() { - return transaction; - } - - public InventoryHolder getOwner() { - return this.owner; - } - - public void setMaxStackSize(int size) { - maxStack = size; - } - - public int getMaxStackSize() { - return maxStack; - } - - public boolean a(EntityHuman entityhuman) { - return true; - } - - public void startOpen() { - - } - - public void f() { - - } - - public void update() { - enderChest.update(); - } -} +/* + * Copyright (C) 2011-2014 lishid. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.lishid.openinv.internal.v1_8_R1; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +import com.lishid.openinv.OpenInv; +import com.lishid.openinv.internal.ISpecialEnderChest; + +import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.InventoryHolder; + +//Volatile +import net.minecraft.server.v1_8_R1.*; +import org.bukkit.craftbukkit.v1_8_R1.entity.*; +import org.bukkit.craftbukkit.v1_8_R1.inventory.*; + +public class SpecialEnderChest extends InventorySubcontainer implements IInventory, ISpecialEnderChest { + public List transaction = new ArrayList(); + public boolean playerOnline = false; + private CraftPlayer owner; + private InventoryEnderChest enderChest; + private int maxStack = MAX_STACK; + private CraftInventory inventory = new CraftInventory(this); + + public SpecialEnderChest(Player p, Boolean online) { + super(((CraftPlayer) p).getHandle().getEnderChest().getName(), ((CraftPlayer) p).getHandle().getEnderChest().hasCustomName(), ((CraftPlayer) p).getHandle().getEnderChest().getSize()); + CraftPlayer player = (CraftPlayer) p; + this.enderChest = player.getHandle().getEnderChest(); + this.owner = player; + this.items = enderChest.getContents(); + OpenInv.enderChests.put(owner.getName().toLowerCase(), this); + } + + public Inventory getBukkitInventory() { + return inventory; + } + + public void InventoryRemovalCheck() { + owner.saveData(); + if (transaction.isEmpty() && !playerOnline) { + OpenInv.enderChests.remove(owner.getName().toLowerCase()); + } + } + + public void PlayerGoOnline(Player p) { + if (!playerOnline) { + try { + InventoryEnderChest playerEnderChest = ((CraftPlayer) p).getHandle().getEnderChest(); + Field field = playerEnderChest.getClass().getField("items"); + field.setAccessible(true); + field.set(playerEnderChest, this.items); + } + catch (Exception e) {} + p.saveData(); + playerOnline = true; + } + } + + public void PlayerGoOffline() { + playerOnline = false; + } + + public ItemStack[] getContents() { + return this.items; + } + + public void onOpen(CraftHumanEntity who) { + transaction.add(who); + } + + public void onClose(CraftHumanEntity who) { + transaction.remove(who); + this.InventoryRemovalCheck(); + } + + public List getViewers() { + return transaction; + } + + public InventoryHolder getOwner() { + return this.owner; + } + + public void setMaxStackSize(int size) { + maxStack = size; + } + + public int getMaxStackSize() { + return maxStack; + } + + public boolean a(EntityHuman entityhuman) { + return true; + } + + public void startOpen() { + + } + + public void f() { + + } + + public void update() { + enderChest.update(); + } +} diff --git a/src/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java b/src/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java similarity index 96% rename from src/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java rename to src/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java index 98a8cf1d..c162c93f 100644 --- a/src/com/lishid/openinv/internal/v1_7_R3/SpecialPlayerInventory.java +++ b/src/com/lishid/openinv/internal/v1_8_R1/SpecialPlayerInventory.java @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -package com.lishid.openinv.internal.v1_7_R3; +package com.lishid.openinv.internal.v1_8_R1; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -23,9 +23,9 @@ import com.lishid.openinv.internal.ISpecialPlayerInventory; //Volatile -import net.minecraft.server.v1_7_R3.*; -import org.bukkit.craftbukkit.v1_7_R3.entity.*; -import org.bukkit.craftbukkit.v1_7_R3.inventory.*; +import net.minecraft.server.v1_8_R1.*; +import org.bukkit.craftbukkit.v1_8_R1.entity.*; +import org.bukkit.craftbukkit.v1_8_R1.inventory.*; public class SpecialPlayerInventory extends PlayerInventory implements ISpecialPlayerInventory { CraftPlayer owner; @@ -239,7 +239,7 @@ private int getReversedArmorSlotNum(int i) { } @Override - public String getInventoryName() { + public String getName() { if (player.getName().length() > 16) { return player.getName().substring(0, 16); } diff --git a/src/plugin.yml b/src/plugin.yml index bf8edfc7..17f97a21 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: OpenInv main: com.lishid.openinv.OpenInv -version: 2.2.4 +version: 2.2.5 author: lishid description: > This plugin allows you to open a player's inventory as a chest and interact with it in real time.