mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@4d111a3 Un-experimentalize Entity TP APIs (#9964) PaperMC/Paper@2182d47 Update mapping-io (#9975) PaperMC/Paper@9993eb9 Updates documentation in EntityEquipment.java (#9992) PaperMC/Paper@2184fbc Log correct recipes and advancement count on server start (#9978) PaperMC/Paper@8bda1f7 Remove unnecessary durability check in ItemStack#isSimilar (#9979) PaperMC/Paper@977a729 [ci skip] Correct Windows requiring path to gradlew (#9976) PaperMC/Paper@3766afa [ci skip] Add mention of FQ imports (#9994) PaperMC/Paper@40872ec Fix CraftMetaItem#addAttributeModifier duplication check (#9995) PaperMC/Paper@ffa4115 Configurable Dry and Wet Farmland Tick Rates (#9968) PaperMC/Paper@37bee09 Restore vanilla entity drops behavior (#7650) PaperMC/Paper@5cbd535 Fix Mushroom cow stew api (#9934) PaperMC/Paper@8e061ce Add Structure check API (#9062) PaperMC/Paper@9271ee7 Dont resend blocks on interactions (#9413) PaperMC/Paper@931781c [ci skip] rebuild patches
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 5532e166c7e010add65e5921722b50272c805c03..2776b124dd15e4c84edcfbf98ba44d53ef149e43 100644
|
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
|
@@ -1209,7 +1209,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 2048899f8e4c8211e8dde0d11148d647678009fa..1eec84e217f6dc929091fa7451cd235ef3623822 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 44e8822dae170c07e48ae016826a6710b7d7e29a..4d147845402a26957c905dd600bf0657bb7bd714 100644
|
|
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
|
@@ -398,6 +398,7 @@ public class PurpurConfig {
|
|
public static boolean allowHigherEnchantsLevels = true;
|
|
public static boolean allowUnsafeEnchantCommand = false;
|
|
public static boolean replaceIncompatibleEnchants = false;
|
|
+ public static boolean clampEnchantLevels = true;
|
|
private static void enchantmentSettings() {
|
|
if (version < 5) {
|
|
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
|
|
@@ -421,6 +422,7 @@ public class PurpurConfig {
|
|
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
|
|
replaceIncompatibleEnchants = getBoolean("settings.enchantment.anvil.replace-incompatible-enchants", replaceIncompatibleEnchants);
|
|
+ clampEnchantLevels = getBoolean("settings.enchantment.clamp-levels", clampEnchantLevels);
|
|
}
|
|
|
|
public static boolean endermanShortHeight = false;
|