From 779d44ff963c70bc5361c852a9794bc8216a57b8 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Tue, 15 Feb 2022 19:53:35 -0500 Subject: [PATCH] Separate unsafe-enchants anvil and command toggle --- .../0163-Config-to-allow-for-unsafe-enchants.patch | 14 ++++++++------ patches/server/0237-UPnP-Port-Forwarding.patch | 4 ++-- ...nfigurable-valid-characters-for-usernames.patch | 4 ++-- .../0253-Shears-can-have-looting-enchantment.patch | 8 ++++---- .../server/0261-Configurable-food-attributes.patch | 4 ++-- patches/server/0262-Max-joins-per-second.patch | 4 ++-- 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/patches/server/0163-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0163-Config-to-allow-for-unsafe-enchants.patch index a1dc5c591..45d138c84 100644 --- a/patches/server/0163-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0163-Config-to-allow-for-unsafe-enchants.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to allow for unsafe enchants diff --git a/src/main/java/net/minecraft/server/commands/EnchantCommand.java b/src/main/java/net/minecraft/server/commands/EnchantCommand.java -index 514cc0e8805045549eacde6c280859aa2dc4a91d..4c8eeb66a9368597330957dd3c1486344b53b863 100644 +index 514cc0e8805045549eacde6c280859aa2dc4a91d..f43fe5becfdbe9973b1cfa43c71bbad2ad61daac 100644 --- a/src/main/java/net/minecraft/server/commands/EnchantCommand.java +++ b/src/main/java/net/minecraft/server/commands/EnchantCommand.java @@ -44,7 +44,7 @@ public class EnchantCommand { @@ -13,7 +13,7 @@ index 514cc0e8805045549eacde6c280859aa2dc4a91d..4c8eeb66a9368597330957dd3c148634 private static int enchant(CommandSourceStack source, Collection targets, Enchantment enchantment, int level) throws CommandSyntaxException { - if (level > enchantment.getMaxLevel()) { -+ if (!org.purpurmc.purpur.PurpurConfig.allowUnsafeEnchants && level > enchantment.getMaxLevel()) { // Purpur ++ if (!org.purpurmc.purpur.PurpurConfig.allowUnsafeEnchantCommand && level > enchantment.getMaxLevel()) { // Purpur throw ERROR_LEVEL_TOO_HIGH.create(level, enchantment.getMaxLevel()); } else { int i = 0; @@ -22,7 +22,7 @@ index 514cc0e8805045549eacde6c280859aa2dc4a91d..4c8eeb66a9368597330957dd3c148634 ItemStack itemStack = livingEntity.getMainHandItem(); if (!itemStack.isEmpty()) { - if (enchantment.canEnchant(itemStack) && EnchantmentHelper.isEnchantmentCompatible(EnchantmentHelper.getEnchantments(itemStack).keySet(), enchantment)) { -+ if ((enchantment.canEnchant(itemStack) && EnchantmentHelper.isEnchantmentCompatible(EnchantmentHelper.getEnchantments(itemStack).keySet(), enchantment)) || (org.purpurmc.purpur.PurpurConfig.allowUnsafeEnchants && !itemStack.hasEnchantment(enchantment))) { // Purpur ++ if ((enchantment.canEnchant(itemStack) && EnchantmentHelper.isEnchantmentCompatible(EnchantmentHelper.getEnchantments(itemStack).keySet(), enchantment)) || (org.purpurmc.purpur.PurpurConfig.allowUnsafeEnchantCommand && !itemStack.hasEnchantment(enchantment))) { // Purpur itemStack.enchant(enchantment, level); ++i; } else if (targets.size() == 1) { @@ -75,22 +75,24 @@ index ac8a90253f45a43486c1677c576231313d2d3e09..a95df369e8cdd7b7b1e31a463fdbae90 this.getOrCreateTag().put(key, element); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index e1c4af38a7eac438b3304f11121c754e451c5bd6..1de373851215803ace0da2058781da5d68500eb9 100644 +index 956be9847fc4f34643d9d563c0edc16dfa5ccbbe..12c0774967881168e7abc6fcb8db315458bbce8d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -280,6 +280,7 @@ public class PurpurConfig { +@@ -280,6 +280,8 @@ public class PurpurConfig { public static boolean allowInfinityMending = false; public static boolean allowCrossbowInfinity = false; + public static boolean allowUnsafeEnchants = false; ++ public static boolean allowUnsafeEnchantCommand = false; private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -288,6 +289,7 @@ public class PurpurConfig { +@@ -288,6 +290,8 @@ public class PurpurConfig { } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity); + allowUnsafeEnchants = getBoolean("settings.enchantment.allow-unsafe-enchants", allowUnsafeEnchants); ++ allowUnsafeEnchantCommand = getBoolean("settings.enchantment.allow-unsafe-enchant-command", allowUnsafeEnchants); // allowUnsafeEnchants as default for backwards compatability } public static boolean endermanShortHeight = false; diff --git a/patches/server/0237-UPnP-Port-Forwarding.patch b/patches/server/0237-UPnP-Port-Forwarding.patch index 7e60cb33c..0ec5b53b4 100644 --- a/patches/server/0237-UPnP-Port-Forwarding.patch +++ b/patches/server/0237-UPnP-Port-Forwarding.patch @@ -67,10 +67,10 @@ index 9e83f2dea73461f698185f5ffdb6060e422b9494..6b503d7bdd0eb202ff3466dc1f691102 // CraftBukkit start // this.setPlayerList(new DedicatedPlayerList(this, this.registryHolder, this.playerDataStorage)); // Spigot - moved up diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 147175986954fbcc66a960efd65c3f60cd6016d3..a685ca0952fa401bb7e588051c7ae832a525a65b 100644 +index 2657f8e49058f7801c2435d499e6133e912021ac..3462a34a7d8e2bbf4c19c02a0b9f19ad5ccdc00f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -420,4 +420,9 @@ public class PurpurConfig { +@@ -422,4 +422,9 @@ public class PurpurConfig { private static void tpsCatchup() { tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup); } diff --git a/patches/server/0252-Configurable-valid-characters-for-usernames.patch b/patches/server/0252-Configurable-valid-characters-for-usernames.patch index 214ca8f3a..bd4b6af0f 100644 --- a/patches/server/0252-Configurable-valid-characters-for-usernames.patch +++ b/patches/server/0252-Configurable-valid-characters-for-usernames.patch @@ -18,10 +18,10 @@ index 5f154db373026ca78b812f9247dc9288d6826cb0..547158e80c501aec66f4ffc96c0a496a char c = in.charAt(i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index a685ca0952fa401bb7e588051c7ae832a525a65b..7a9080e68113a629ccbd31695a6afc86cc2285f9 100644 +index 3462a34a7d8e2bbf4c19c02a0b9f19ad5ccdc00f..73b4aeb50ba60e5708bca6a7762b8c44be9c9287 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -425,4 +425,11 @@ public class PurpurConfig { +@@ -427,4 +427,11 @@ public class PurpurConfig { private static void networkSettings() { useUPnP = getBoolean("settings.network.upnp-port-forwarding", useUPnP); } diff --git a/patches/server/0253-Shears-can-have-looting-enchantment.patch b/patches/server/0253-Shears-can-have-looting-enchantment.patch index 138e190bc..51707bfd0 100644 --- a/patches/server/0253-Shears-can-have-looting-enchantment.patch +++ b/patches/server/0253-Shears-can-have-looting-enchantment.patch @@ -158,7 +158,7 @@ index 6b8a1535086aae7e4e3229d05615fb903188f507..60af917083de1b790b1d93d61835a669 public int getMinCost(int level) { return 15 + (level - 1) * 9; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 7a9080e68113a629ccbd31695a6afc86cc2285f9..ce52c5ddfe1687e8ff9f94711da437147564164a 100644 +index 73b4aeb50ba60e5708bca6a7762b8c44be9c9287..9ea922b7b41b1805d94ea18f437dd52fd756a821 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -373,6 +373,7 @@ public class PurpurConfig { @@ -167,13 +167,13 @@ index 7a9080e68113a629ccbd31695a6afc86cc2285f9..ce52c5ddfe1687e8ff9f94711da43714 public static boolean allowCrossbowInfinity = false; + public static boolean allowShearsLooting = false; public static boolean allowUnsafeEnchants = false; + public static boolean allowUnsafeEnchantCommand = false; private static void enchantmentSettings() { - if (version < 5) { -@@ -382,6 +383,7 @@ public class PurpurConfig { +@@ -383,6 +384,7 @@ public class PurpurConfig { } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity); + allowShearsLooting = getBoolean("settings.enchantment.allow-looting-on-shears", allowShearsLooting); allowUnsafeEnchants = getBoolean("settings.enchantment.allow-unsafe-enchants", allowUnsafeEnchants); + allowUnsafeEnchantCommand = getBoolean("settings.enchantment.allow-unsafe-enchant-command", allowUnsafeEnchants); // allowUnsafeEnchants as default for backwards compatability } - diff --git a/patches/server/0261-Configurable-food-attributes.patch b/patches/server/0261-Configurable-food-attributes.patch index d67fce962..85b0d6ee2 100644 --- a/patches/server/0261-Configurable-food-attributes.patch +++ b/patches/server/0261-Configurable-food-attributes.patch @@ -69,10 +69,10 @@ index 513343d225a71e242b0f237eefcd25147709d9d1..1f65bba67cd4fab1dee115f24b213075 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index ce52c5ddfe1687e8ff9f94711da437147564164a..2c3607fc71c0d11b935a58bbad6afe4b0c436883 100644 +index 9ea922b7b41b1805d94ea18f437dd52fd756a821..acf676c756ef6b99631f4fc8e0297548465c8fe0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -434,4 +434,57 @@ public class PurpurConfig { +@@ -436,4 +436,57 @@ public class PurpurConfig { String setPattern = getString("settings.username-valid-characters", defaultPattern); usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern); } diff --git a/patches/server/0262-Max-joins-per-second.patch b/patches/server/0262-Max-joins-per-second.patch index 9040da5d2..35c552310 100644 --- a/patches/server/0262-Max-joins-per-second.patch +++ b/patches/server/0262-Max-joins-per-second.patch @@ -31,10 +31,10 @@ index 7b8f9cf06833860d0fc02399822e6aea214883ed..03701c154e7bfad5314f3ed0e51866a2 } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 2c3607fc71c0d11b935a58bbad6afe4b0c436883..231209f3ed97cd3dfa4fd3ccb9a84b234413107e 100644 +index acf676c756ef6b99631f4fc8e0297548465c8fe0..c8f9a0ac70840af6086f5ebd80066d43dccf8386 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -424,8 +424,10 @@ public class PurpurConfig { +@@ -426,8 +426,10 @@ public class PurpurConfig { } public static boolean useUPnP = false;