Files
Purpur/patches/server/0262-Add-toggle-for-enchant-level-clamping.patch
Encode42 fe3250cfec Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@c1bca9a Add exploded block state to BlockExplodeEvent (#6818)
PaperMC/Paper@94373f0 Fix OfflinePlayer#getPlayerProfile returning deprecated type (#8543)
PaperMC/Paper@7b52db5 Fix buffer-joins-to-world patch
PaperMC/Paper@048ee58 Fix OfflinePlayer getPlayerProfile return type (#8710)
PaperMC/Paper@e05ba98 Avoid to spam the transform event for hoglin->zoglin conversion (#8712)
PaperMC/Paper@8e83c3c Deprecate ProjectileCollideEvent (#8678)
PaperMC/Paper@c59922d Expose signed message in chat events (#8694)
PaperMC/Paper@5717b84 Add config option for spider worldborder climbing (#6448)
PaperMC/Paper@e6f61f7 fix ArmorStandMeta not applying false flags (#8632)
PaperMC/Paper@47abd1c Add EntityPushedByEntityEvent (#7704)
PaperMC/Paper@f26e9cc Tadpole lock API (#8297)
PaperMC/Paper@3331501 Use team display name for quit message (#7127)
PaperMC/Paper@1975fbe Respect SpigotConfig logCommands & fix stopDancing() NPE (#8715)
PaperMC/Paper@78a91df Fix (again) Player#getPlayerProfile no such method error (#8722)
PaperMC/Paper@52718db Updated Upstream (Bukkit/CraftBukkit) (#8714)
PaperMC/Paper@2040c1e Player Flying Fall Damage API (#5357)
2022-12-27 15:55:36 -05:00

53 lines
3.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: 12emin34 <macanovic.emin@gmail.com>
Date: Sat, 30 Apr 2022 10:32:40 +0200
Subject: [PATCH] Add toggle for enchant level clamping
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index ceac1de7dedf5702f2eb49e489790d24490722db..dd61a3971d9cd77fc31aadce7dfeceec68b2a157 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1158,7 +1158,7 @@ public final class ItemStack {
ListTag nbttaglist = this.tag.getList("Enchantments", 10);
- nbttaglist.add(EnchantmentHelper.storeEnchantment(EnchantmentHelper.getEnchantmentId(enchantment), (byte) level));
+ nbttaglist.add(EnchantmentHelper.storeEnchantment(EnchantmentHelper.getEnchantmentId(enchantment), (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels) ? (byte) level : (short) level)); // Purpur
processEnchantOrder(this.tag); // Paper
}
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
index 659cd2d43d3cabc9bcc50857d6de858f417b7c31..b96b1e4efa35b796a985bf1eb4a7158c1706a34c 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
@@ -46,7 +46,7 @@ public class EnchantmentHelper {
}
public static int getEnchantmentLevel(CompoundTag nbt) {
- return Mth.clamp(nbt.getInt("lvl"), 0, 255);
+ return Mth.clamp(nbt.getInt("lvl"), 0, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels) ? 255 : 32767); // Purpur
}
@Nullable
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index acae4b236427f10bae3b9180e9e2387bd523fa72..8a517170c6076badd47e48b64538816857ed413e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -412,6 +412,7 @@ public class PurpurConfig {
public static boolean allowIncompatibleEnchants = true;
public static boolean allowHigherEnchantsLevels = true;
public static boolean allowUnsafeEnchantCommand = false;
+ public static boolean clampEnchantLevels = true;
private static void enchantmentSettings() {
if (version < 5) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
@@ -434,6 +435,7 @@ public class PurpurConfig {
allowIncompatibleEnchants = getBoolean("settings.enchantment.anvil.allow-incompatible-enchants", allowIncompatibleEnchants);
allowHigherEnchantsLevels = getBoolean("settings.enchantment.anvil.allow-higher-enchants-levels", allowHigherEnchantsLevels);
allowUnsafeEnchantCommand = getBoolean("settings.enchantment.allow-unsafe-enchant-command", allowUnsafeEnchants); // allowUnsafeEnchants as default for backwards compatability
+ clampEnchantLevels = getBoolean("settings.enchantment.clamp-levels", clampEnchantLevels);
}
public static boolean endermanShortHeight = false;