From 5add72f67dc9b81cde2c3e655a51c5f1fd5ed63f Mon Sep 17 00:00:00 2001 From: huanmeng-qwq <1871735932@qq.com> Date: Tue, 2 Sep 2025 01:14:28 +0800 Subject: [PATCH] fix: Fix the rendered packet overwrites the original metadata --- api/src/main/java/me/tofaa/entitylib/utils/PacketUtil.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api/src/main/java/me/tofaa/entitylib/utils/PacketUtil.java b/api/src/main/java/me/tofaa/entitylib/utils/PacketUtil.java index 9e3b130..d4f3345 100644 --- a/api/src/main/java/me/tofaa/entitylib/utils/PacketUtil.java +++ b/api/src/main/java/me/tofaa/entitylib/utils/PacketUtil.java @@ -4,6 +4,7 @@ import com.github.retrooper.packetevents.protocol.entity.data.EntityData; import com.github.retrooper.packetevents.protocol.entity.data.EntityDataTypes; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityMetadata; import me.tofaa.entitylib.EntityLib; +import java.util.ArrayList; import java.util.Locale; import java.util.Optional; import java.util.UUID; @@ -15,6 +16,11 @@ public class PacketUtil { } public static void renderPacket(UUID user, WrapperPlayServerEntityMetadata metadata) { + final ArrayList> copiedEntityData = new ArrayList<>(); + metadata.getEntityMetadata().forEach(entityData -> + copiedEntityData.add(new EntityData(entityData.getIndex(), entityData.getType(), entityData.getValue())) + ); + metadata.setEntityMetadata(copiedEntityData); Locale locale = EntityLib.getApi().getUserLocaleProvider().locale(user); for (final EntityData entityData : metadata.getEntityMetadata()) { if (entityData.getType() == EntityDataTypes.ADV_COMPONENT) {