diff --git a/patches/server/0245-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0245-Config-to-remove-curse-of-binding-with-weakness.patch new file mode 100644 index 000000000..a362c56b7 --- /dev/null +++ b/patches/server/0245-Config-to-remove-curse-of-binding-with-weakness.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Encode42 +Date: Sun, 8 Aug 2021 16:59:21 -0400 +Subject: [PATCH] Config to remove curse of binding with weakness + + +diff --git a/src/main/java/net/minecraft/world/inventory/InventoryMenu.java b/src/main/java/net/minecraft/world/inventory/InventoryMenu.java +index 777c21d8f3d5a7e9c156d25263f4b50ad67bd7c7..75cda19edb86af7b1806ff647426cf4a2c166e6b 100644 +--- a/src/main/java/net/minecraft/world/inventory/InventoryMenu.java ++++ b/src/main/java/net/minecraft/world/inventory/InventoryMenu.java +@@ -4,6 +4,7 @@ import com.mojang.datafixers.util.Pair; + import net.minecraft.network.chat.TranslatableComponent; + import net.minecraft.resources.ResourceLocation; + import net.minecraft.world.Container; ++import net.minecraft.world.effect.MobEffects; + import net.minecraft.world.entity.EquipmentSlot; + import net.minecraft.world.entity.Mob; + import net.minecraft.world.entity.player.Inventory; +@@ -88,7 +89,7 @@ public class InventoryMenu extends RecipeBookMenu { + public boolean mayPickup(Player playerEntity) { + ItemStack itemstack = this.getItem(); + +- return !itemstack.isEmpty() && !playerEntity.isCreative() && EnchantmentHelper.hasBindingCurse(itemstack) ? false : super.mayPickup(playerEntity); ++ return !itemstack.isEmpty() && !playerEntity.isCreative() && EnchantmentHelper.hasBindingCurse(itemstack) ? playerEntity.level.purpurConfig.playerRemoveBindingWithWeakness && playerEntity.hasEffect(MobEffects.WEAKNESS) : super.mayPickup(playerEntity); + } + + @Override +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index e01c215c2d4ac67b942bb2d85cc656205c9758d1..0ccb7328ee0d348300a0947241d732b897a91f60 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -357,6 +357,7 @@ public class PurpurWorldConfig { + public boolean playerArmorSwapping = false; + public boolean playerArmorSwappingCreativeMakesCopy = true; + public boolean playerRidableInWater = false; ++ public boolean playerRemoveBindingWithWeakness = false; + private void playerSettings() { + idleTimeoutKick = getBoolean("gameplay-mechanics.player.idle-timeout.kick-if-idle", idleTimeoutKick); + idleTimeoutTickNearbyEntities = getBoolean("gameplay-mechanics.player.idle-timeout.tick-nearby-entities", idleTimeoutTickNearbyEntities); +@@ -377,6 +378,7 @@ public class PurpurWorldConfig { + playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); + playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); + playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); ++ playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); + } + + public int snowballDamage = -1;