@Override
public void handlePacket(Object packet, Player destination) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
if (packet instanceof PacketPlayOutNamedEntitySpawn) {
final PacketPlayOutNamedEntitySpawn p = (PacketPlayOutNamedEntitySpawn) packet;
final GameProfile profile = (GameProfile) this.gameProfileField.get(p);
final String oldName = profile.getName();
final UUID oldID = profile.getId();
final TagInfo newName = this.handler.getNameForPacket20(oldID, this.entityIDField.getInt(p), oldName, destination);
if (newName != null && !newName.getName().equals(oldName)) {
int i = this.tastySnack++;
this.gameProfileField.set(p, new GameProfile(UUID.nameUUIDFromBytes(new byte[]{(byte) (i >> 24), (byte) (i >> 16), (byte) (i >> 8), (byte) i}), newName.getName()));
}
}
}