mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Do not allow duplicate unsafe enchants
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] Config to allow for unsafe enchants
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/commands/CommandEnchant.java b/src/main/java/net/minecraft/server/commands/CommandEnchant.java
|
diff --git a/src/main/java/net/minecraft/server/commands/CommandEnchant.java b/src/main/java/net/minecraft/server/commands/CommandEnchant.java
|
||||||
index 96991d77cfef2ef0fdada1a831619293ffe37e70..4d85ae98369039bcbb5ed5acb2d281bd65523fad 100644
|
index 96991d77cfef2ef0fdada1a831619293ffe37e70..bd035a0f3554fd44f135c23fc92f3411ccf74e0d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/commands/CommandEnchant.java
|
--- a/src/main/java/net/minecraft/server/commands/CommandEnchant.java
|
||||||
+++ b/src/main/java/net/minecraft/server/commands/CommandEnchant.java
|
+++ b/src/main/java/net/minecraft/server/commands/CommandEnchant.java
|
||||||
@@ -48,7 +48,7 @@ public class CommandEnchant {
|
@@ -48,7 +48,7 @@ public class CommandEnchant {
|
||||||
@@ -22,10 +22,39 @@ index 96991d77cfef2ef0fdada1a831619293ffe37e70..4d85ae98369039bcbb5ed5acb2d281bd
|
|||||||
|
|
||||||
if (!itemstack.isEmpty()) {
|
if (!itemstack.isEmpty()) {
|
||||||
- if (enchantment.canEnchant(itemstack) && EnchantmentManager.a((Collection) EnchantmentManager.a(itemstack).keySet(), enchantment)) {
|
- if (enchantment.canEnchant(itemstack) && EnchantmentManager.a((Collection) EnchantmentManager.a(itemstack).keySet(), enchantment)) {
|
||||||
+ if (net.pl3x.purpur.PurpurConfig.allowUnsafeEnchants || (enchantment.canEnchant(itemstack) && EnchantmentManager.a((Collection) EnchantmentManager.a(itemstack).keySet(), enchantment))) { // Purpur
|
+ if ((enchantment.canEnchant(itemstack) && EnchantmentManager.a((Collection) EnchantmentManager.a(itemstack).keySet(), enchantment)) || (net.pl3x.purpur.PurpurConfig.allowUnsafeEnchants && !itemstack.hasEnchantment(enchantment))) { // Purpur
|
||||||
itemstack.addEnchantment(enchantment, i);
|
itemstack.addEnchantment(enchantment, i);
|
||||||
++j;
|
++j;
|
||||||
} else if (collection.size() == 1) {
|
} else if (collection.size() == 1) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
|
index 2e4bc664412feb8657c7b9995d281203a14d48fd..677f866dfaab653b05c693663adaeb2465117a55 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||||
|
@@ -860,6 +860,12 @@ public final class ItemStack {
|
||||||
|
return this.tag != null && this.tag.hasKeyOfType("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Purpur start
|
||||||
|
+ public boolean hasEnchantment(Enchantment enchantment) {
|
||||||
|
+ return hasEnchantments() && EnchantmentManager.getEnchantmentMap(getEnchantments()).containsKey(enchantment);
|
||||||
|
+ }
|
||||||
|
+ // Purpur end
|
||||||
|
+
|
||||||
|
public void getOrCreateTagAndSet(String s, NBTBase nbtbase) { a(s, nbtbase);} // Paper - OBFHELPER
|
||||||
|
public void a(String s, NBTBase nbtbase) {
|
||||||
|
this.getOrCreateTag().set(s, nbtbase);
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
||||||
|
index b2d28c2bf0a9e93d38583e2d734c12fed4f63d5d..63a6f63a2d3e03e74c314cdebf7cb61b66fd5108 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
||||||
|
@@ -59,6 +59,7 @@ public class EnchantmentManager {
|
||||||
|
return a(nbttaglist);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public static Map<Enchantment, Integer> getEnchantmentMap(NBTTagList nbttaglist) { return a(nbttaglist); } // Purpur - OBFHELPER
|
||||||
|
public static Map<Enchantment, Integer> a(NBTTagList nbttaglist) {
|
||||||
|
Map<Enchantment, Integer> map = Maps.newLinkedHashMap();
|
||||||
|
|
||||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||||
index f469b27273883c56cee98fee464c4d1a32a31478..b410d38a431f79971ca183b476115d9e85e1cd6e 100644
|
index f469b27273883c56cee98fee464c4d1a32a31478..b410d38a431f79971ca183b476115d9e85e1cd6e 100644
|
||||||
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ index 6d8197c6c3f430c1f218431ffe72d0fddad82674..d52ac77516cbf62293afbbfdd96f5a48
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
||||||
index b2d28c2bf0a9e93d38583e2d734c12fed4f63d5d..b889e5426781da215b5c26477015d04457142213 100644
|
index 63a6f63a2d3e03e74c314cdebf7cb61b66fd5108..7ad0035045011737eab536343688ebd333f1b93f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
||||||
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentManager.java
|
||||||
@@ -241,7 +241,7 @@ public class EnchantmentManager {
|
@@ -242,7 +242,7 @@ public class EnchantmentManager {
|
||||||
return a(Enchantments.WATER_WORKER, entityliving) > 0;
|
return a(Enchantments.WATER_WORKER, entityliving) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user