From 6946e2a10fd1cb63084783c07c277936405d9b65 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 23 May 2019 21:50:37 -0500 Subject: [PATCH] Barrels and enderchests 6 rows --- .../net/minecraft/server/BlockEnderChest.java | 21 ++++++++++++++++ .../minecraft/server/InventoryEnderChest.java | 2 +- .../minecraft/server/TileEntityBarrel.java | 5 ++-- .../java/net/pl3x/purpur/PurpurConfig.java | 25 +++++++++++++++++++ .../craftbukkit/inventory/CraftContainer.java | 4 ++- .../craftbukkit/inventory/CraftInventory.java | 2 +- 6 files changed, 54 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/BlockEnderChest.java b/src/main/java/net/minecraft/server/BlockEnderChest.java index af2819bb8..73ab299a4 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 bf8c5436b..d147377e5 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/minecraft/server/TileEntityBarrel.java b/src/main/java/net/minecraft/server/TileEntityBarrel.java index 195abfdff..7e368a2ed 100644 --- a/src/main/java/net/minecraft/server/TileEntityBarrel.java +++ b/src/main/java/net/minecraft/server/TileEntityBarrel.java @@ -54,7 +54,7 @@ public class TileEntityBarrel extends TileEntityLootable { private TileEntityBarrel(TileEntityTypes tileentitytypes) { super(tileentitytypes); - this.items = NonNullList.a(27, ItemStack.b); + this.items = NonNullList.a(net.pl3x.purpur.PurpurConfig.barrelSixRows ? 54 : 27, ItemStack.b); // Purpur } public TileEntityBarrel() { @@ -83,7 +83,7 @@ public class TileEntityBarrel extends TileEntityLootable { @Override public int getSize() { - return 27; + return net.pl3x.purpur.PurpurConfig.barrelSixRows ? 54 : 27; // Purpur } @Override @@ -103,6 +103,7 @@ public class TileEntityBarrel extends TileEntityLootable { @Override protected Container createContainer(int i, PlayerInventory playerinventory) { + if (net.pl3x.purpur.PurpurConfig.barrelSixRows) return new ContainerChest(Containers.GENERIC_9X6, i, playerinventory, this, 6); // Purpur return ContainerChest.a(i, playerinventory, this); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 333c880bf..fc38163b1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -7,6 +7,7 @@ import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.event.inventory.InventoryType; import java.io.File; import java.io.IOException; @@ -127,4 +128,28 @@ public class PurpurConfig { config.addDefault(path, def); return config.getString(path, config.getString(path)); } + + public static String timingsUrl = "https://timings.pl3x.net"; + private static void timingsSettings() { + timingsUrl = getString("settings.timings.url", timingsUrl); + } + + public static boolean barrelSixRows = 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); + } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java index 8c714c743..cae362bae 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java @@ -198,8 +198,10 @@ public class CraftContainer extends Container { case PLAYER: case CHEST: case ENDER_CHEST: + 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(Containers.GENERIC_9X3, windowId, bottom, top, top.getSize() / 9); + delegate = new ContainerChest(net.pl3x.purpur.PurpurConfig.barrelSixRows ? Containers.GENERIC_9X6 : Containers.GENERIC_9X3, windowId, bottom, top, top.getSize() / 9); // Purpur break; case DISPENSER: case DROPPER: diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java index 726631348..a45100034 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"); } -- 2.26.2