fix: Fix the rendered packet overwrites the original metadata

This commit is contained in:
huanmeng-qwq 2025-09-02 01:14:28 +08:00
parent 598d71fa30
commit 5add72f67d
No known key found for this signature in database
GPG key ID: A282328441529B42

View file

@ -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<EntityData<?>> 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) {