AnyChest supports Shulker Boxes, silent makes sound but doesn't animate.
I'm done for the day, got a lot of stuff to do tomorrow. Hopefully I'll iron out all of the wrinkles by the end of the day.
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
package com.lishid.openinv.internal;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public interface IAnySilentContainer extends IAnySilentChest {
|
||||
|
||||
/**
|
||||
* Checks if the given Block is a container which can be unblocked or silenced.
|
||||
* Checks if the given block is a container which can be unblocked or silenced.
|
||||
*
|
||||
* @param block the Block
|
||||
* @param block the BlockState
|
||||
* @return true if the Block is a supported container
|
||||
*/
|
||||
public boolean isAnySilentContainer(Block block);
|
||||
public boolean isAnySilentContainer(BlockState block);
|
||||
|
||||
/**
|
||||
* Opens the container at the given coordinates for the Player.
|
||||
|
@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_10_R1;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -40,7 +41,7 @@ import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,13 @@ package com.lishid.openinv.internal.v1_10_R1;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_10_R1.IInventory;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class InventoryAccess implements IInventoryAccess {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private IInventory grabInventory(Inventory inventory) {
|
||||
if(inventory instanceof CraftInventory) {
|
||||
return ((CraftInventory) inventory).getInventory();
|
||||
|
@@ -33,6 +33,7 @@ import net.minecraft.server.v1_11_R1.Entity;
|
||||
import net.minecraft.server.v1_11_R1.EntityOcelot;
|
||||
import net.minecraft.server.v1_11_R1.EntityPlayer;
|
||||
import net.minecraft.server.v1_11_R1.EnumDirection;
|
||||
import net.minecraft.server.v1_11_R1.IBlockData;
|
||||
import net.minecraft.server.v1_11_R1.IInventory;
|
||||
import net.minecraft.server.v1_11_R1.ITileInventory;
|
||||
import net.minecraft.server.v1_11_R1.InventoryLargeChest;
|
||||
@@ -40,6 +41,7 @@ import net.minecraft.server.v1_11_R1.PacketPlayOutOpenWindow;
|
||||
import net.minecraft.server.v1_11_R1.StatisticList;
|
||||
import net.minecraft.server.v1_11_R1.TileEntity;
|
||||
import net.minecraft.server.v1_11_R1.TileEntityChest;
|
||||
import net.minecraft.server.v1_11_R1.TileEntityShulkerBox;
|
||||
import net.minecraft.server.v1_11_R1.World;
|
||||
|
||||
import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||
@@ -47,7 +49,7 @@ import org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(org.bukkit.block.BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest || block instanceof org.bukkit.block.ShulkerBox;
|
||||
}
|
||||
|
||||
@@ -69,8 +71,8 @@ public class AnySilentContainer implements IAnySilentContainer {
|
||||
if (block instanceof BlockChest) {
|
||||
BlockChest blockChest = (BlockChest) block;
|
||||
|
||||
for (EnumDirection localEnumDirection : EnumDirection.EnumDirectionLimit.HORIZONTAL) {
|
||||
BlockPosition localBlockPosition = blockPosition.shift(localEnumDirection);
|
||||
for (EnumDirection enumDirection : EnumDirection.EnumDirectionLimit.HORIZONTAL) {
|
||||
BlockPosition localBlockPosition = blockPosition.shift(enumDirection);
|
||||
Block localBlock = world.getType(localBlockPosition).getBlock();
|
||||
|
||||
if (localBlock != block) {
|
||||
@@ -86,7 +88,7 @@ public class AnySilentContainer implements IAnySilentContainer {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((localEnumDirection == EnumDirection.WEST) || (localEnumDirection == EnumDirection.NORTH)) {
|
||||
if ((enumDirection == EnumDirection.WEST) || (enumDirection == EnumDirection.NORTH)) {
|
||||
tile = new InventoryLargeChest("container.chestDouble",
|
||||
(TileEntityChest) localTileEntity, (ITileInventory) tile);
|
||||
} else {
|
||||
@@ -108,7 +110,16 @@ public class AnySilentContainer implements IAnySilentContainer {
|
||||
}
|
||||
|
||||
if (block instanceof BlockShulkerBox) {
|
||||
// TODO shulker
|
||||
if (!anychest && isBlockedShulkerBox(world, blockPosition, block)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
player.b(StatisticList.ae);
|
||||
|
||||
if (silentchest) {
|
||||
// TODO We need to go deeper: Box is not anumated, but sound plays.
|
||||
container = new SilentContainerShulkerBox(player.inventory, ((IInventory) tile), player);
|
||||
}
|
||||
}
|
||||
|
||||
boolean returnValue = false;
|
||||
@@ -142,10 +153,10 @@ public class AnySilentContainer implements IAnySilentContainer {
|
||||
Block block = world.getType(blockPosition).getBlock();
|
||||
|
||||
if (block instanceof BlockShulkerBox) {
|
||||
return isBlockedShulkerBox(world, x, y, z);
|
||||
return isBlockedShulkerBox(world, blockPosition, block);
|
||||
}
|
||||
|
||||
// FOR REFERENCE, LOOK AT net.minecraft.server.BlockChest
|
||||
// For reference, loot at net.minecraft.server.BlockChest
|
||||
// Check if chest is blocked or has an ocelot on top
|
||||
if (world.getType(new BlockPosition(x, y + 1, z)).m() || hasOcelotOnTop(world, blockPosition)) {
|
||||
return true;
|
||||
@@ -162,10 +173,27 @@ public class AnySilentContainer implements IAnySilentContainer {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isBlockedShulkerBox(World world, int x, int y, int z) {
|
||||
private boolean isBlockedShulkerBox(World world, BlockPosition blockPosition, Block block) {
|
||||
// For reference, look at net.minecraft.server.BlockShulkerBox
|
||||
// TODO
|
||||
return false;
|
||||
TileEntity tile = world.getTileEntity(blockPosition);
|
||||
|
||||
if (!(tile instanceof TileEntityShulkerBox)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
IBlockData iBlockData = block.getBlockData();
|
||||
|
||||
EnumDirection enumDirection = iBlockData.get(BlockShulkerBox.a);
|
||||
if (((TileEntityShulkerBox) tile).p() == TileEntityShulkerBox.AnimationPhase.CLOSED) {
|
||||
AxisAlignedBB axisAlignedBB = BlockShulkerBox.j.b(0.5F * enumDirection.getAdjacentX(),
|
||||
0.5F * enumDirection.getAdjacentY(), 0.5F * enumDirection.getAdjacentZ())
|
||||
.a(enumDirection.getAdjacentX(), enumDirection.getAdjacentY(),
|
||||
enumDirection.getAdjacentZ());
|
||||
|
||||
return !(world.b(axisAlignedBB.a(blockPosition.shift(enumDirection))));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean isBlockedChest(World world, Block block, BlockPosition blockPosition) {
|
||||
|
@@ -24,13 +24,12 @@ import net.minecraft.server.v1_11_R1.ItemStack;
|
||||
import net.minecraft.server.v1_11_R1.PlayerInventory;
|
||||
|
||||
public class SilentContainerChest extends ContainerChest {
|
||||
public IInventory inv;
|
||||
|
||||
public SilentContainerChest(IInventory i1, IInventory i2, EntityHuman e1) {
|
||||
super(i1, i2, e1);
|
||||
inv = i2;
|
||||
public SilentContainerChest(PlayerInventory playerInventory, IInventory iInventory,
|
||||
EntityHuman entityHuman) {
|
||||
super(playerInventory, iInventory, entityHuman);
|
||||
// close signal
|
||||
inv.closeContainer(e1);
|
||||
iInventory.closeContainer(entityHuman);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -0,0 +1,28 @@
|
||||
package com.lishid.openinv.internal.v1_11_R1;
|
||||
|
||||
import net.minecraft.server.v1_11_R1.ContainerShulkerBox;
|
||||
import net.minecraft.server.v1_11_R1.EntityHuman;
|
||||
import net.minecraft.server.v1_11_R1.IInventory;
|
||||
import net.minecraft.server.v1_11_R1.ItemStack;
|
||||
import net.minecraft.server.v1_11_R1.PlayerInventory;
|
||||
|
||||
public class SilentContainerShulkerBox extends ContainerShulkerBox {
|
||||
|
||||
public SilentContainerShulkerBox(PlayerInventory playerInventory, IInventory iInventory,
|
||||
EntityHuman entityHuman) {
|
||||
super(playerInventory, iInventory, entityHuman);
|
||||
iInventory.closeContainer(entityHuman);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void b(EntityHuman entityHuman) {
|
||||
// Don't send close signal twice, might screw up
|
||||
PlayerInventory playerinventory = entityHuman.inventory;
|
||||
|
||||
if (!playerinventory.getCarried().isEmpty()) {
|
||||
entityHuman.drop(playerinventory.getCarried(), false);
|
||||
playerinventory.setCarried(ItemStack.a);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_4_5.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_4_6.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -23,9 +23,9 @@ import com.lishid.openinv.OpenInv;
|
||||
import com.lishid.openinv.Permissions;
|
||||
import com.lishid.openinv.internal.IInventoryAccess;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_4_6.IInventory;
|
||||
|
||||
// Volatile
|
||||
import org.bukkit.craftbukkit.v1_4_6.inventory.CraftInventory;
|
||||
|
||||
public class InventoryAccess implements IInventoryAccess {
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,16 +16,16 @@
|
||||
|
||||
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;
|
||||
|
||||
import net.minecraft.server.v1_4_R1.IInventory;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_4_R1.IInventory;
|
||||
|
||||
import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventory;
|
||||
|
||||
public class InventoryAccess implements IInventoryAccess {
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -38,7 +39,7 @@ import org.bukkit.craftbukkit.v1_5_R2.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_5_R2.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Volatile
|
||||
@@ -38,7 +39,7 @@ import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_5_R3.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -38,7 +39,7 @@ import org.bukkit.craftbukkit.v1_6_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_6_R1.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -38,7 +39,7 @@ import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_6_R2.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -38,7 +39,7 @@ import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_6_R3.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_7_R1.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_7_R2.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -16,13 +16,13 @@
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_7_R3.IInventory;
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import java.lang.reflect.Field;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,13 @@ package com.lishid.openinv.internal.v1_7_R4;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_7_R4.IInventory;
|
||||
|
||||
|
@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_8_R1;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,16 +18,16 @@ package com.lishid.openinv.internal.v1_8_R1;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import net.minecraft.server.v1_8_R1.IInventory;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_8_R1.IInventory;
|
||||
|
||||
import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftInventory;
|
||||
|
||||
public class InventoryAccess implements IInventoryAccess {
|
||||
|
@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_8_R2;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,13 @@ package com.lishid.openinv.internal.v1_8_R2;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_8_R2.IInventory;
|
||||
|
||||
|
@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_8_R3;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Volatile
|
||||
@@ -39,7 +40,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,13 @@ package com.lishid.openinv.internal.v1_8_R3;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_8_R3.IInventory;
|
||||
|
||||
|
@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_9_R1;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -40,7 +41,7 @@ import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,13 @@ package com.lishid.openinv.internal.v1_9_R1;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_9_R1.IInventory;
|
||||
|
||||
|
@@ -19,6 +19,7 @@ package com.lishid.openinv.internal.v1_9_R2;
|
||||
import com.lishid.openinv.internal.IAnySilentContainer;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
// Volatile
|
||||
@@ -40,7 +41,7 @@ import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer;
|
||||
public class AnySilentContainer implements IAnySilentContainer {
|
||||
|
||||
@Override
|
||||
public boolean isAnySilentContainer(org.bukkit.block.Block block) {
|
||||
public boolean isAnySilentContainer(BlockState block) {
|
||||
return block instanceof org.bukkit.block.Chest;
|
||||
}
|
||||
|
||||
|
@@ -18,13 +18,13 @@ package com.lishid.openinv.internal.v1_9_R2;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
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;
|
||||
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
|
||||
// Volatile
|
||||
import net.minecraft.server.v1_9_R2.IInventory;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class InventoryAccess implements IInventoryAccess {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private IInventory grabInventory(Inventory inventory) {
|
||||
if(inventory instanceof CraftInventory) {
|
||||
return ((CraftInventory) inventory).getInventory();
|
||||
|
@@ -107,7 +107,7 @@ public class OpenInv extends JavaPlugin {
|
||||
accessor = new InternalAccessor(this);
|
||||
// Version check
|
||||
if (!accessor.initialize(getServer())) {
|
||||
getLogger().info("Your version of CraftBukkit is not supported.");
|
||||
getLogger().info("Your version of CraftBukkit (" + accessor.getVersion() + ")is not supported.");
|
||||
getLogger().info("Please look for an updated version of OpenInv.");
|
||||
pm.disablePlugin(this);
|
||||
return;
|
||||
|
@@ -56,13 +56,14 @@ public class OpenInvPlayerListener implements Listener {
|
||||
if (event.getClickedBlock().getType() == org.bukkit.Material.ENDER_CHEST) {
|
||||
if (OpenInv.hasPermission(player, Permissions.PERM_SILENT)
|
||||
&& plugin.getPlayerSilentChestStatus(player)) {
|
||||
// TODO: Bypasses blocks on top, anychest also does not work
|
||||
event.setCancelled(true);
|
||||
player.openInventory(player.getEnderChest());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (plugin.getAnySilentContainer().isAnySilentContainer(event.getClickedBlock())) {
|
||||
if (plugin.getAnySilentContainer().isAnySilentContainer(event.getClickedBlock().getState())) {
|
||||
|
||||
boolean silentchest = OpenInv.hasPermission(player, Permissions.PERM_SILENT) && plugin.getPlayerSilentChestStatus(player);
|
||||
boolean anychest = OpenInv.hasPermission(player, Permissions.PERM_ANYCHEST) && plugin.getPlayerAnyChestStatus(player);
|
||||
@@ -79,6 +80,7 @@ public class OpenInvPlayerListener implements Listener {
|
||||
} else if (silentchest && plugin.notifySilentChest()) {
|
||||
player.sendMessage("You are opening a chest silently.");
|
||||
} else if (anychest && plugin.notifyAnyChest()) {
|
||||
// TODO fix anychest always claiming chest is blocked
|
||||
player.sendMessage("You are opening a blocked chest.");
|
||||
}
|
||||
event.setCancelled(true);
|
||||
|
@@ -43,7 +43,7 @@ public class InternalAccessor {
|
||||
version = packageName.substring(packageName.lastIndexOf('.') + 1);
|
||||
|
||||
try {
|
||||
Class.forName("com.lishid.openinv.internal." + version + ".AnySilentChest");
|
||||
Class.forName("com.lishid.openinv.internal." + version + ".AnySilentContainer");
|
||||
return true;
|
||||
}
|
||||
catch (Exception e) {
|
||||
@@ -51,6 +51,10 @@ public class InternalAccessor {
|
||||
}
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return this.version != null ? this.version : "null";
|
||||
}
|
||||
|
||||
private void printErrorMessage() {
|
||||
plugin.getLogger().warning("OpenInv encountered an error with the CraftBukkit version \"" + version + "\". Please look for an updated version of OpenInv.");
|
||||
}
|
||||
|
6
pom.xml
6
pom.xml
@@ -27,6 +27,8 @@
|
||||
</property>
|
||||
</activation>
|
||||
<modules>
|
||||
<module>OpenInvCore</module>
|
||||
<module>OpenInvPlugin</module>
|
||||
<module>OpenInvCraftbukkit1_11_R1</module>
|
||||
</modules>
|
||||
</profile>
|
||||
@@ -40,6 +42,8 @@
|
||||
</property>
|
||||
</activation>
|
||||
<modules>
|
||||
<module>OpenInvCore</module>
|
||||
<module>OpenInvPlugin</module>
|
||||
<module>OpenInvCraftbukkit1_7_R4</module>
|
||||
<module>OpenInvCraftbukkit1_8_R1</module>
|
||||
<module>OpenInvCraftbukkit1_8_R2</module>
|
||||
@@ -57,6 +61,8 @@
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<modules>
|
||||
<module>OpenInvCore</module>
|
||||
<module>OpenInvPlugin</module>
|
||||
<module>OpenInvCraftbukkit1_4_5</module>
|
||||
<module>OpenInvCraftbukkit1_4_6</module>
|
||||
<module>OpenInvCraftbukkit1_4_R1</module>
|
||||
|
Reference in New Issue
Block a user