Add permissions for enderchest rows

This commit is contained in:
William Blake Galbreath
2020-03-29 14:53:38 -05:00
parent 5be272a836
commit a8aa1994fc
6 changed files with 98 additions and 36 deletions

View File

@@ -123,6 +123,18 @@ blocks
* six-rows
- **default**: false
- **description**: Ender chests should have 6 rows of inventory space
* use-permissions-for-rows
- **default**: false
- **description**: Use permission nodes to determine the number of rows. `six-rows` MUST be enabled for this to work.
.. note::
Enderchest row permissions:
purpur.enderchest.rows.six
purpur.enderchest.rows.five
purpur.enderchest.rows.four
purpur.enderchest.rows.three
purpur.enderchest.rows.two
purpur.enderchest.rows.one
* slime
* not-movable-by-piston

View File

@@ -61,3 +61,24 @@ need to be granted the permissions you want them to have using a permissions plu
* **purpur.sign.magic**
- **description**: Allows players to use the magic/obfuscated style code on signs
* **purpur.enderchest.rows.six**
- **description**: Allows players to have 6 rows in their enderchest
* **purpur.enderchest.rows.five**
- **description**: Allows players to have 5 rows in their enderchest
* **purpur.enderchest.rows.four**
- **description**: Allows players to have 4 rows in their enderchest
* **purpur.enderchest.rows.three**
- **description**: Allows players to have 3 rows in their enderchest
* **purpur.enderchest.rows.two**
- **description**: Allows players to have 2 rows in their enderchest
* **purpur.enderchest.rows.one**
- **description**: Allows players to have 1 row in their enderchest
.. note::
Enderchest row permissions require `settings.blocks.ender_chest.six-rows` to be enabled!

View File

@@ -1,29 +1,16 @@
From 4b3279b5da65dcffdfdf536636d412ec489c0229 Mon Sep 17 00:00:00 2001
From ff4d461e5c4cee9dcfb4b299319be75fb7861d22 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 have 6 rows
---
src/main/java/net/minecraft/server/ContainerChest.java | 1 +
src/main/java/net/minecraft/server/TileEntityBarrel.java | 5 +++--
src/main/java/net/pl3x/purpur/PurpurConfig.java | 9 +++++++++
.../org/bukkit/craftbukkit/inventory/CraftContainer.java | 5 ++++-
4 files changed, 17 insertions(+), 3 deletions(-)
3 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/ContainerChest.java b/src/main/java/net/minecraft/server/ContainerChest.java
index 0ee6524b89..7d8567b4b8 100644
--- a/src/main/java/net/minecraft/server/ContainerChest.java
+++ b/src/main/java/net/minecraft/server/ContainerChest.java
@@ -65,6 +65,7 @@ public class ContainerChest extends Container {
return new ContainerChest(Containers.GENERIC_9X3, i, playerinventory, iinventory, 3);
}
+ public static ContainerChest createSixRows(int i, PlayerInventory playerinventory, IInventory iinventory) { return b(i, playerinventory, iinventory); } // Purpur - OBFHELPER
public static ContainerChest b(int i, PlayerInventory playerinventory, IInventory iinventory) {
return new ContainerChest(Containers.GENERIC_9X6, i, playerinventory, iinventory, 6);
}
diff --git a/src/main/java/net/minecraft/server/TileEntityBarrel.java b/src/main/java/net/minecraft/server/TileEntityBarrel.java
index 1e27abbea0..d1a3aae91f 100644
index 1e27abbea0..ca3b6c9aae 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 {
@@ -48,7 +35,7 @@ index 1e27abbea0..d1a3aae91f 100644
@Override
protected Container createContainer(int i, PlayerInventory playerinventory) {
+ if (net.pl3x.purpur.PurpurConfig.barrelSixRows) return ContainerChest.createSixRows(i, playerinventory, this); // Purpur
+ if (net.pl3x.purpur.PurpurConfig.barrelSixRows) return new ContainerChest(Containers.GENERIC_9X6, i, playerinventory, this, 6); // Purpur
return ContainerChest.a(i, playerinventory, this);
}

View File

@@ -1,25 +1,46 @@
From 1f34762239549dcb0e48482dbdf48779c3ecec25 Mon Sep 17 00:00:00 2001
From a21bd2c3bf71b5aace63a15e2ebddf6f72878475 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] Ender chests have 6 rows
Subject: [PATCH] Enderchest 6 rows (plus permissions)
---
src/main/java/net/minecraft/server/BlockEnderChest.java | 1 +
src/main/java/net/minecraft/server/InventoryEnderChest.java | 2 +-
src/main/java/net/pl3x/purpur/PurpurConfig.java | 6 ++++++
.../org/bukkit/craftbukkit/inventory/CraftContainer.java | 3 ++-
.../org/bukkit/craftbukkit/inventory/CraftInventory.java | 2 +-
5 files changed, 11 insertions(+), 3 deletions(-)
.../net/minecraft/server/BlockEnderChest.java | 21 +++++++++++++++++++
.../minecraft/server/InventoryEnderChest.java | 2 +-
.../java/net/pl3x/purpur/PurpurConfig.java | 8 +++++++
.../craftbukkit/inventory/CraftContainer.java | 3 ++-
.../craftbukkit/inventory/CraftInventory.java | 2 +-
.../permissions/CraftDefaultPermissions.java | 8 +++++++
6 files changed, 41 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..0aede130bd 100644
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,7 @@ public class BlockEnderChest extends BlockChestAbstract<TileEntityEnderChest> im
@@ -48,6 +48,27 @@ public class BlockEnderChest extends BlockChestAbstract<TileEntityEnderChest> im
inventoryenderchest.a(tileentityenderchest);
entityhuman.openContainer(new TileInventory((i, playerinventory, entityhuman1) -> {
+ if (net.pl3x.purpur.PurpurConfig.enderChestSixRows) return ContainerChest.b(i, playerinventory, inventoryenderchest); // Purpur
+ // 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);
@@ -37,14 +58,15 @@ index fd31b9a6dc..903c02e9ef 100644
// CraftBukkit end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 871f2a031a..e78f73f8a2 100644
index 871f2a031a..9f6b4dc9a5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -162,14 +162,20 @@ public class PurpurConfig {
@@ -162,14 +162,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);
@@ -58,6 +80,7 @@ index 871f2a031a..e78f73f8a2 100644
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);
}
@@ -95,6 +118,25 @@ index 026a0c3995..d2c06cff2c 100644
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

View File

@@ -1,4 +1,4 @@
From 83e17c570af947f1857922038e4a45f7babbc4d4 Mon Sep 17 00:00:00 2001
From 33531668ff2757d7b7ca00d8c887f15bbc6e677d Mon Sep 17 00:00:00 2001
From: Tom <cryptite@gmail.com>
Date: Fri, 12 Jul 2019 07:59:35 -0500
Subject: [PATCH] Don't recalculate permissions for players on world change
@@ -51,10 +51,10 @@ index 253ee52eb5..cf8f24b31c 100644
public boolean isWhitelisted(GameProfile gameprofile) {
return isWhitelisted(gameprofile, null);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index e78f73f8a2..384afe2e64 100644
index 9f6b4dc9a5..a8276ab477 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -179,6 +179,11 @@ public class PurpurConfig {
@@ -181,6 +181,11 @@ public class PurpurConfig {
slimeBlocksNotPushable = getBoolean("settings.blocks.slime.not-movable-by-piston", slimeBlocksNotPushable);
}

View File

@@ -1,4 +1,4 @@
From 5193f535a226b90d020395aeb5f3524f6593a81b Mon Sep 17 00:00:00 2001
From 36123f6107c61f9450af7b8ec14e6f0b7ef34eca Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 21 Mar 2020 11:47:39 -0500
Subject: [PATCH] Configurable server mod name
@@ -22,10 +22,10 @@ index 5d28185248..c5319ff0f5 100644
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 3eaecc6393..312a503a98 100644
index 4c6d401b09..0948d67260 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -189,6 +189,11 @@ public class PurpurConfig {
@@ -191,6 +191,11 @@ public class PurpurConfig {
recalculatePermsOnWorldChange = getBoolean("settings.recalculate-perms-on-world-change", recalculatePermsOnWorldChange);
}