mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
53 lines
3.2 KiB
Diff
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 1626f86d8765509618b9ca59fb67b6b772802431..fd052e28de7ccee0cfd1a06e77156f023fa775a8 100644
|
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
@@ -1147,7 +1147,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 4afa30753a90d9bbd3c71b21cb4a8deadf9ccb3b..1d79da7f8405f7dff3b2e10022a564a9cf2609eb 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 65f2c37e667f78c4f2bb59e5db7f870d2534513a..6ae12d6684620a0e524294b28a5abcbc53392089 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;
|