mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
152 lines
8.4 KiB
Diff
152 lines
8.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Thu, 23 May 2019 21:50:37 -0500
|
|
Subject: [PATCH] Barrels and enderchests 6 rows
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockEnderChest.java b/src/main/java/net/minecraft/server/BlockEnderChest.java
|
|
index 896d99d40..9ab8336df 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<TileEntityEnderChest> 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 c5551a9e9..03bde6067 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntityBarrel.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntityBarrel.java
|
|
@@ -55,7 +55,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() {
|
|
@@ -84,7 +84,7 @@ public class TileEntityBarrel extends TileEntityLootable {
|
|
|
|
@Override
|
|
public int getSize() {
|
|
- return 27;
|
|
+ return net.pl3x.purpur.PurpurConfig.barrelSixRows ? 54 : 27; // Purpur
|
|
}
|
|
|
|
@Override
|
|
@@ -104,6 +104,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 1d00832bf..803a7ff92 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");
|
|
}
|
|
|