From a846ead72d1914e2ab5c8bf0d8d428631070cfc4 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 23 Jun 2019 17:01:26 -0500 Subject: [PATCH] Enderchest 6 rows (plus permissions) --- .../net/minecraft/server/BlockEnderChest.java | 21 +++++++++++++++++++ .../minecraft/server/InventoryEnderChest.java | 2 +- .../java/net/pl3x/purpur/PurpurConfig.java | 8 +++++++ .../craftbukkit/inventory/CraftContainer.java | 2 +- .../craftbukkit/inventory/CraftInventory.java | 2 +- .../permissions/CraftDefaultPermissions.java | 8 +++++++ 6 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/BlockEnderChest.java b/src/main/java/net/minecraft/server/BlockEnderChest.java index 0a892a5f1a..e7ef571dc5 100644 --- a/src/main/java/net/minecraft/server/BlockEnderChest.java +++ b/src/main/java/net/minecraft/server/BlockEnderChest.java @@ -48,6 +48,27 @@ public class BlockEnderChest extends BlockChestAbstract im inventoryenderchest.a(tileentityenderchest); entityhuman.openContainer(new TileInventory((i, playerinventory, entityhuman1) -> { + // Purpur start + if (net.pl3x.purpur.PurpurConfig.enderChestSixRows) { + if (net.pl3x.purpur.PurpurConfig.enderChestPermissionRows) { + org.bukkit.craftbukkit.entity.CraftHumanEntity player = entityhuman.getBukkitEntity(); + if (player.hasPermission("purpur.enderchest.rows.six")) { + return new ContainerChest(Containers.GENERIC_9X6, i, playerinventory, inventoryenderchest, 6); + } else if (player.hasPermission("purpur.enderchest.rows.five")) { + return new ContainerChest(Containers.GENERIC_9X5, i, playerinventory, inventoryenderchest, 5); + } else if (player.hasPermission("purpur.enderchest.rows.four")) { + return new ContainerChest(Containers.GENERIC_9X4, i, playerinventory, inventoryenderchest, 4); + } else if (player.hasPermission("purpur.enderchest.rows.three")) { + return new ContainerChest(Containers.GENERIC_9X3, i, playerinventory, inventoryenderchest, 3); + } else if (player.hasPermission("purpur.enderchest.rows.two")) { + return new ContainerChest(Containers.GENERIC_9X2, i, playerinventory, inventoryenderchest, 2); + } else if (player.hasPermission("purpur.enderchest.rows.one")) { + return new ContainerChest(Containers.GENERIC_9X1, i, playerinventory, inventoryenderchest, 1); + } + } + return new ContainerChest(Containers.GENERIC_9X6, i, playerinventory, inventoryenderchest, 6); + } + // Purpur end return ContainerChest.a(i, playerinventory, inventoryenderchest); }, BlockEnderChest.e)); entityhuman.a(StatisticList.OPEN_ENDERCHEST); diff --git a/src/main/java/net/minecraft/server/InventoryEnderChest.java b/src/main/java/net/minecraft/server/InventoryEnderChest.java index fd31b9a6dc..903c02e9ef 100644 --- a/src/main/java/net/minecraft/server/InventoryEnderChest.java +++ b/src/main/java/net/minecraft/server/InventoryEnderChest.java @@ -20,7 +20,7 @@ public class InventoryEnderChest extends InventorySubcontainer { } public InventoryEnderChest(EntityHuman owner) { - super(27); + super(net.pl3x.purpur.PurpurConfig.enderChestSixRows ? 54 : 27); // Purpur this.owner = owner; // CraftBukkit end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 7ce48323ae..16f5c9d372 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -161,14 +161,22 @@ public class PurpurConfig { public static boolean barrelSixRows = false; public static boolean slimeBlocksNotPushable = false; + public static boolean enderChestSixRows = false; + public static boolean enderChestPermissionRows = false; private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); set("settings.blocks.barrel.six-rows", oldValue); set("settings.packed-barrels", null); + oldValue = getBoolean("settings.large-ender-chests", true); + set("settings.blocks.ender_chest.six-rows", oldValue); + set("settings.large-ender-chests", null); } barrelSixRows = getBoolean("settings.blocks.barrel.six-rows", barrelSixRows); InventoryType.BARREL.setDefaultSize(barrelSixRows ? 54 : 27); + enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows); + InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); + enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); slimeBlocksNotPushable = getBoolean("settings.blocks.slime.not-movable-by-piston", slimeBlocksNotPushable); } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java index 9f05b76ff7..4dc632d917 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java @@ -195,7 +195,7 @@ public class CraftContainer extends Container { case PLAYER: case CHEST: case ENDER_CHEST: - delegate = new ContainerChest(Containers.GENERIC_9X3, windowId, bottom, top, top.getSize() / 9); // Purpur + delegate = new ContainerChest(net.pl3x.purpur.PurpurConfig.enderChestSixRows ? Containers.GENERIC_9X6 : Containers.GENERIC_9X3, windowId, bottom, top, top.getSize() / 9); // Purpur break; // Purpur case BARREL: delegate = new ContainerChest(net.pl3x.purpur.PurpurConfig.barrelSixRows ? Containers.GENERIC_9X6 : Containers.GENERIC_9X3, windowId, bottom, top, top.getSize() / 9); // Purpur diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java index 026a0c3995..d2c06cff2c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -81,7 +81,7 @@ public class CraftInventory implements Inventory { @Override public void setContents(ItemStack[] items) { - if (getSize() < items.length) { + if (false && getSize() < items.length) { // Purpur throw new IllegalArgumentException("Invalid inventory size; expected " + getSize() + " or less"); } diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java index d936b9284e..d7b1b56d94 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java +++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java @@ -17,6 +17,14 @@ public final class CraftDefaultPermissions { DefaultPermissions.registerPermission(ROOT + ".debugstick", "Gives the user the ability to use the debug stick in creative", org.bukkit.permissions.PermissionDefault.OP, parent); DefaultPermissions.registerPermission(ROOT + ".debugstick.always", "Gives the user the ability to use the debug stick in all game modes", org.bukkit.permissions.PermissionDefault.FALSE, parent); // Spigot end + // Purpur start + DefaultPermissions.registerPermission("purpur.enderchest.rows.six", "Gives the user six rows of enderchest space", org.bukkit.permissions.PermissionDefault.FALSE); + DefaultPermissions.registerPermission("purpur.enderchest.rows.five", "Gives the user five rows of enderchest space", org.bukkit.permissions.PermissionDefault.FALSE); + DefaultPermissions.registerPermission("purpur.enderchest.rows.four", "Gives the user four rows of enderchest space", org.bukkit.permissions.PermissionDefault.FALSE); + DefaultPermissions.registerPermission("purpur.enderchest.rows.three", "Gives the user three rows of enderchest space", org.bukkit.permissions.PermissionDefault.FALSE); + DefaultPermissions.registerPermission("purpur.enderchest.rows.two", "Gives the user two rows of enderchest space", org.bukkit.permissions.PermissionDefault.FALSE); + DefaultPermissions.registerPermission("purpur.enderchest.rows.one", "Gives the user one row of enderchest space", org.bukkit.permissions.PermissionDefault.FALSE); + // Purpur end parent.recalculatePermissibles(); } } -- 2.24.0