- Баллы
- 173
Маскирую шлем на головах зомби через ProtocolLib (отлавливаю пакет Entity Equipment и модифицирую "на лету"), и мне нужно получить объект самой сущности:
Правильно я это делаю?
Java:
protocolManager.addPacketListener(
new PacketAdapter(this, ListenerPriority.NORMAL, PacketType.Play.Server.ENTITY_EQUIPMENT) {
@SuppressWarnings("deprecation")
@Override
public void onPacketSending(PacketEvent event) {
if (event.getPacketType() == PacketType.Play.Server.ENTITY_EQUIPMENT) {
WrapperPlayServerEntityEquipment ee = new WrapperPlayServerEntityEquipment();
LivingEntity en = (LivingEntity)event.getPacket().getEntityModifier(event.getPlayer().getWorld()).read(0);
ee.setEntityId(en.getEntityId());
ee.setSlot((short)4);
if (en.getCustomName() == null)
ee.setItem(null);
else {
ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, (byte)3);
SkullMeta skullMeta = (SkullMeta)head.getItemMeta();
skullMeta.setOwner(en.getCustomName());
head.setItemMeta(skullMeta);
ee.setItem(head);
}
for(Player online : getServer().getOnlinePlayers()) ee.sendPacket(online);
}
}
});