mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: b75eeca0 Boost light task priority to ensure it doesnt hold up chunk loads 3d2bc848 Ensure VillagerTrades doesn't load async - fixes #3495 e470f1ef Add more information to Timing Reports f4a47db6 Improve Thread Pool usage to allow single threads for single cpu servers a4fe910f Fix sounds when using worldedit regen command 70ad51a8 Updated Upstream (Bukkit/CraftBukkit) d7cfa4fa Improve legacy format serialization more
135 lines
9.0 KiB
Diff
135 lines
9.0 KiB
Diff
From c40ba4d5095176ca9829df4cb2fd01b230253093 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
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<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 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 581e8eebe7..c3ecd6fc70 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
@@ -157,14 +157,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 d295821c57..610cbbe858 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 47827fbf1b..0f5819a409 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 a4a809f302..e7d19d67c9 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java
|
|
@@ -18,6 +18,14 @@ public final class CraftDefaultPermissions {
|
|
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);
|
|
DefaultPermissions.registerPermission(ROOT + ".commandblock", "Gives the user the ability to use command blocks.", org.bukkit.permissions.PermissionDefault.OP, parent); // Paper
|
|
// 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
|
|
|