package me.tofaa.entitylib.utils; 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.Locale; import java.util.Optional; import java.util.UUID; import net.kyori.adventure.text.Component; import net.kyori.adventure.translation.GlobalTranslator; public class PacketUtil { private PacketUtil() { } public static void renderPacket(UUID user, WrapperPlayServerEntityMetadata metadata) { Locale locale = EntityLib.getApi().getUserLocaleProvider().locale(user); for (final EntityData entityData : metadata.getEntityMetadata()) { if (entityData.getType() == EntityDataTypes.ADV_COMPONENT) { Component component = (Component) entityData.getValue(); final Component rendered = GlobalTranslator.render(component, locale); ((EntityData) entityData).setValue(rendered); } else if (entityData.getType() == EntityDataTypes.OPTIONAL_ADV_COMPONENT) { final Optional optional = (Optional) entityData.getValue(); if (optional.isPresent()) { final Component component = optional.get(); final Component rendered = GlobalTranslator.render(component, locale); ((EntityData>) entityData).setValue(Optional.of(rendered)); } } } } }