mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 01:47:42 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 47d48790d Change return type of ItemStack#editMeta to allow checking for successful vs non-successful edits 7aabe7d56 [CI-SKIP] fix minecart vs minecraft typos (#5713) f775e87b4 [CI-SKIP] ci: update setup-java action (#5710) c58b3b277 ci: replace Java 11 with Java 16 in GH Actions build flow (#5709) 4b72327a6 ItemStack#editMeta 68984b664 Add Unix domain socket support (#5611) 68c67e680 Add Mob#lookAt API (#5633) 4bacecd16 [Auto] Updated Upstream (Bukkit/CraftBukkit) 1f28e6eeb Fix default ChatRenderer when no plugins are installed (#5702) ecb0d32ca Enhance (Async)ChatEvent with per-viewer rendering API (#5684) Airplane Changes: 636dbff0f [ci skip] Cleanup mcdev import files c57932048 [ci skip] Remove icons 7ada9a476 [skip ci] Need to specify 1.16.5 in the README of course 813df1a44 Update README daf3f0b29 Optimize air case for raytracing
70 lines
3.6 KiB
Diff
70 lines
3.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Sun, 25 Aug 2019 00:09:52 -0500
|
|
Subject: [PATCH] Dispenser curse of binding protection
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
|
index ec38a27dfa6eebc818f54cf14bbe4287bee8bb29..db1863aac58409d13ec093506c23ab7cb29a2379 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
|
@@ -65,6 +65,7 @@ import net.minecraft.world.item.ItemSword;
|
|
import net.minecraft.world.item.ItemTool;
|
|
import net.minecraft.world.item.Items;
|
|
import net.minecraft.world.item.enchantment.EnchantmentManager;
|
|
+import net.minecraft.world.item.enchantment.Enchantments;
|
|
import net.minecraft.world.level.GameRules;
|
|
import net.minecraft.world.level.GeneratorAccess;
|
|
import net.minecraft.world.level.IBlockAccess;
|
|
@@ -1077,6 +1078,13 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ public static EnumItemSlot getSlotForDispenser(ItemStack itemstack) {
|
|
+ return EnchantmentManager.getEnchantmentLevel(Enchantments.BINDING_CURSE, itemstack) > 0 ? EnumItemSlot.MAINHAND : getSlotForItemStack(itemstack);
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
+ public static EnumItemSlot getSlotForItemStack(ItemStack itemstack) { return j(itemstack); } // Purpur - OBFHELPER
|
|
public static EnumItemSlot j(ItemStack itemstack) {
|
|
Item item = itemstack.getItem();
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/item/ItemArmor.java b/src/main/java/net/minecraft/world/item/ItemArmor.java
|
|
index 7962808aebf67cf9bc1dc4c1e106e943536fdced..d072b604a1cd8835c1fe658831cdaf9f27d02cd5 100644
|
|
--- a/src/main/java/net/minecraft/world/item/ItemArmor.java
|
|
+++ b/src/main/java/net/minecraft/world/item/ItemArmor.java
|
|
@@ -54,7 +54,7 @@ public class ItemArmor extends Item implements ItemWearable {
|
|
return false;
|
|
} else {
|
|
EntityLiving entityliving = (EntityLiving) list.get(0);
|
|
- EnumItemSlot enumitemslot = EntityInsentient.j(itemstack);
|
|
+ EnumItemSlot enumitemslot = isourceblock.getWorld().purpurConfig.dispenserApplyCursedArmor ? EntityInsentient.getSlotForItemStack(itemstack) : EntityInsentient.getSlotForDispenser(itemstack); // Purpur
|
|
ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
|
|
// CraftBukkit start
|
|
World world = isourceblock.getWorld();
|
|
@@ -113,6 +113,7 @@ public class ItemArmor extends Item implements ItemWearable {
|
|
this.m = builder.build();
|
|
}
|
|
|
|
+ public EnumItemSlot getEquipmentSlot() { return b(); } // Purpur - OBFHELPER
|
|
public EnumItemSlot b() {
|
|
return this.b;
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 0e715362fcfb3d26825b51f4fd96d8cba810bf55..d5095a9b20118bf9c35346fce95a446254872832 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -198,6 +198,11 @@ public class PurpurWorldConfig {
|
|
});
|
|
}
|
|
|
|
+ public boolean dispenserApplyCursedArmor = true;
|
|
+ private void dispenserSettings() {
|
|
+ dispenserApplyCursedArmor = getBoolean("blocks.dispenser.apply-cursed-to-armor-slots", dispenserApplyCursedArmor);
|
|
+ }
|
|
+
|
|
public boolean farmlandGetsMoistFromBelow = false;
|
|
private void farmlandSettings() {
|
|
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
|