diff --git a/patches/server/0224-Armor-click-equip-options.patch b/patches/server/0224-Armor-click-equip-options.patch index 333796f35..118eff4b2 100644 --- a/patches/server/0224-Armor-click-equip-options.patch +++ b/patches/server/0224-Armor-click-equip-options.patch @@ -37,6 +37,26 @@ index ad095c6bc7e00d286c83e37f84d8ed5d4a2c6881..1d1723873be1ec61c34e22e4f709f207 } else { return InteractionResultHolder.fail(itemstack); } +diff --git a/src/main/java/net/minecraft/world/item/ElytraItem.java b/src/main/java/net/minecraft/world/item/ElytraItem.java +index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb25e8ae558 100644 +--- a/src/main/java/net/minecraft/world/item/ElytraItem.java ++++ b/src/main/java/net/minecraft/world/item/ElytraItem.java +@@ -39,7 +39,14 @@ public class ElytraItem extends Item implements Wearable { + } + + itemStack.setCount(0); +- return InteractionResultHolder.sidedSuccess(itemStack, world.isClientSide()); ++ // Purpur start ++ return InteractionResultHolder.success(world.purpurConfig.playerArmorSwappingCreativeMakesCopy ? itemStack : ItemStack.EMPTY); ++ } else if (world.purpurConfig.playerArmorSwapping) { ++ user.setItemSlot(equipmentSlot, itemStack); ++ user.awardStat(Stats.ITEM_USED.get(this)); ++ user.level.playSound(null, user.getX(), user.getY(), user.getZ(), itemStack.getEquipSound(), net.minecraft.sounds.SoundSource.BLOCKS, 1.0F, 1.0F); // we have to force the sound, for whatever reason ++ return InteractionResultHolder.success(itemStack2); ++ // Purpur end + } else { + return InteractionResultHolder.fail(itemStack); + } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 137f7149647aee2f94b670159bccd8068b807f62..84c0b76e1cf7af8e78af7af6444a14783eeb4313 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java