From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Tue, 17 Nov 2020 03:23:48 -0800 Subject: [PATCH] Apply display names from item forms of entities to entities and vice versa diff --git a/net/minecraft/world/entity/decoration/ArmorStand.java b/net/minecraft/world/entity/decoration/ArmorStand.java index fb3b4e57e98b45adb3a908ddbc2d4ac066e22034..e0489ff30373c214927f34d78787fb85192318b3 100644 --- a/net/minecraft/world/entity/decoration/ArmorStand.java +++ b/net/minecraft/world/entity/decoration/ArmorStand.java @@ -492,6 +492,7 @@ public class ArmorStand extends LivingEntity { ItemStack itemStack = new ItemStack(Items.ARMOR_STAND); + if (level.purpurConfig.persistentDroppableEntityDisplayNames) // Purpur - Apply display names from item forms of entities to entities and vice versa itemStack.set(DataComponents.CUSTOM_NAME, this.getCustomName()); diff --git a/net/minecraft/world/entity/decoration/ItemFrame.java b/net/minecraft/world/entity/decoration/ItemFrame.java index f9a97000b75db7999b1cbe1f72d680d4d7b803b7..9dfadb5639e840e69274b35f3366322141527104 100644 --- a/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/net/minecraft/world/entity/decoration/ItemFrame.java @@ -232,7 +232,11 @@ public class ItemFrame extends HangingEntity { this.removeFramedMap(item); } else { if (dropItem) { - this.spawnAtLocation(level, this.getFrameItemStack()); + // Purpur start - Apply display names from item forms of entities to entities and vice versa + final ItemStack itemFrame = this.getFrameItemStack(); + if (!level.purpurConfig.persistentDroppableEntityDisplayNames) itemFrame.set(DataComponents.CUSTOM_NAME, null); + this.spawnAtLocation(level, itemFrame); + // Purpur end - Apply display names from item forms of entities to entities and vice versa } if (!item.isEmpty()) { diff --git a/net/minecraft/world/entity/decoration/Painting.java b/net/minecraft/world/entity/decoration/Painting.java index 3f13bb1ad260d250efe2622297e432dc300e73a0..b1ee059501532cc2df5f0824e5becbd2bc6727b2 100644 --- a/net/minecraft/world/entity/decoration/Painting.java +++ b/net/minecraft/world/entity/decoration/Painting.java @@ -179,7 +179,11 @@ public class Painting extends HangingEntity { if (level.getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { this.playSound(SoundEvents.PAINTING_BREAK, 1.0F, 1.0F); if (!(entity instanceof Player player && player.hasInfiniteMaterials())) { - this.spawnAtLocation(level, Items.PAINTING); + // Purpur start - Apply display names from item forms of entities to entities and vice versa + final ItemStack painting = new ItemStack(Items.PAINTING); + if (!this.level().purpurConfig.persistentDroppableEntityDisplayNames) painting.set(net.minecraft.core.component.DataComponents.CUSTOM_NAME, null); + this.spawnAtLocation(level, painting); + // Purpur end - Apply display names from item forms of entities to entities and vice versa } } } diff --git a/net/minecraft/world/entity/vehicle/AbstractBoat.java b/net/minecraft/world/entity/vehicle/AbstractBoat.java index abfe3370382c39aeab2cc7832c0ff6ee5b95fa5b..4f61c17e0a4a82773834bc21e00cac6eb75f794e 100644 --- a/net/minecraft/world/entity/vehicle/AbstractBoat.java +++ b/net/minecraft/world/entity/vehicle/AbstractBoat.java @@ -822,7 +822,13 @@ public abstract class AbstractBoat extends VehicleEntity implements Leashable { @Override public final ItemStack getPickResult() { - return new ItemStack(this.dropItem.get()); + // Purpur start - Apply display names from item forms of entities to entities and vice versa + final ItemStack boat = new ItemStack(this.dropItem.get()); + if (!this.level().purpurConfig.persistentDroppableEntityDisplayNames) { + boat.set(net.minecraft.core.component.DataComponents.CUSTOM_NAME, null); + } + return boat; + // Purpur end - Apply display names from item forms of entities to entities and vice versa } public static enum Status { diff --git a/net/minecraft/world/item/ArmorStandItem.java b/net/minecraft/world/item/ArmorStandItem.java index 962483d6f7225f13f121141882262d36dacad8cb..89d4bc00898fd8f6d40cda87c04c5983e2ea223c 100644 --- a/net/minecraft/world/item/ArmorStandItem.java +++ b/net/minecraft/world/item/ArmorStandItem.java @@ -51,6 +51,10 @@ public class ArmorStandItem extends Item { return InteractionResult.FAIL; } // CraftBukkit end + // Purpur start - Apply display names from item forms of entities to entities and vice versa + if (!serverLevel.purpurConfig.persistentDroppableEntityDisplayNames) armorStand.setCustomName(null); + if (serverLevel.purpurConfig.armorstandSetNameVisible && armorStand.getCustomName() != null) armorStand.setCustomNameVisible(true); + // Purpur end - Apply display names from item forms of entities to entities and vice versa serverLevel.addFreshEntityWithPassengers(armorStand); level.playSound( null, armorStand.getX(), armorStand.getY(), armorStand.getZ(), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F diff --git a/net/minecraft/world/item/BoatItem.java b/net/minecraft/world/item/BoatItem.java index 13ce174e4f7e406f57a68ea0d3ef0ee3367f3f3b..ca86122e38688b29340cd8413ccf1746315e292a 100644 --- a/net/minecraft/world/item/BoatItem.java +++ b/net/minecraft/world/item/BoatItem.java @@ -63,6 +63,7 @@ public class BoatItem extends Item { return InteractionResult.FAIL; } else { boat.setYRot(player.getYRot()); + if (!level.purpurConfig.persistentDroppableEntityDisplayNames) boat.setCustomName(null); // Purpur - Apply display names from item forms of entities to entities and vice versa if (!level.noCollision(boat, boat.getBoundingBox())) { return InteractionResult.FAIL; } else { diff --git a/net/minecraft/world/item/HangingEntityItem.java b/net/minecraft/world/item/HangingEntityItem.java index 5f9c166b8ba9e9dcabb7398308e7520a88335eae..e9e3a036290a5facc36cf6a484d03d4d3bfb65a5 100644 --- a/net/minecraft/world/item/HangingEntityItem.java +++ b/net/minecraft/world/item/HangingEntityItem.java @@ -59,7 +59,7 @@ public class HangingEntityItem extends Item { hangingEntity = new GlowItemFrame(level, blockPos, clickedFace); } - EntityType.createDefaultStackConfig(level, itemInHand, player).accept(hangingEntity); + EntityType.appendDefaultStackConfig(entity -> {if (!level.purpurConfig.persistentDroppableEntityDisplayNames) entity.setCustomName(null);}, level, itemInHand, player).accept(hangingEntity); // Purpur - Apply display names from item forms of entities to entities and vice versa if (hangingEntity.survives()) { if (!level.isClientSide) { // CraftBukkit start - fire HangingPlaceEvent