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:
Jikoo
2016-11-18 01:51:11 -05:00
parent ff683d65d1
commit 9501d1c571
43 changed files with 178 additions and 93 deletions

View File

@@ -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.

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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) {

View File

@@ -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

View File

@@ -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);
}
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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();

View File

@@ -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;

View File

@@ -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);

View File

@@ -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.");
}

View File

@@ -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>