From 02b6d1fb4c9029e4ab9ae66268d5787b5023f300 Mon Sep 17 00:00:00 2001 From: Pyrbu Date: Mon, 24 Apr 2023 02:10:59 +0100 Subject: [PATCH] fix my stupid ass packets (fixes #20) --- .../io/github/znetworkw/znpcservers/npc/NPC.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/github/znetworkw/znpcservers/npc/NPC.java b/src/main/java/io/github/znetworkw/znpcservers/npc/NPC.java index ace46b2..45eb0f8 100644 --- a/src/main/java/io/github/znetworkw/znpcservers/npc/NPC.java +++ b/src/main/java/io/github/znetworkw/znpcservers/npc/NPC.java @@ -2,8 +2,10 @@ package io.github.znetworkw.znpcservers.npc; import com.github.retrooper.packetevents.PacketEvents; import com.github.retrooper.packetevents.manager.server.ServerVersion; +import com.github.retrooper.packetevents.protocol.entity.type.EntityType; import com.github.retrooper.packetevents.protocol.player.Equipment; import com.github.retrooper.packetevents.protocol.player.UserProfile; +import com.github.retrooper.packetevents.util.Vector3d; import com.github.retrooper.packetevents.wrapper.PacketWrapper; import com.github.retrooper.packetevents.wrapper.play.server.*; import com.google.common.collect.ImmutableList; @@ -243,10 +245,16 @@ public class NPC { PacketEvents.getAPI().getPlayerManager().sendPacket(player, new WrapperPlayServerEntityHeadLook(entityID, location.getYaw())); }); } - else PacketEvents.getAPI().getPlayerManager().sendPacket(player, new WrapperPlayServerSpawnEntity(entityID, - Optional.of(uuid), SpigotConversionUtil.fromBukkitEntityType(((Entity) bukkitEntity).getType()), - location.toVector3d(), location.getPitch(), location.getYaw(), location.getYaw(), 0, Optional.empty())); - + else { + ServerVersion version = PacketEvents.getAPI().getServerManager().getVersion(); + EntityType type = SpigotConversionUtil.fromBukkitEntityType(((Entity) bukkitEntity).getType()); + if (version.isNewerThanOrEquals(ServerVersion.V_1_14)) PacketEvents.getAPI().getPlayerManager().sendPacket( + player, new WrapperPlayServerSpawnEntity(entityID, Optional.of(uuid), type, location.toVector3d(), + location.getPitch(), location.getYaw(), location.getYaw(), 0, Optional.empty())); + else PacketEvents.getAPI().getPlayerManager().sendPacket(player, new WrapperPlayServerSpawnLivingEntity( + entityID, uuid, type, location.toVector3d(), location.getYaw(), location.getPitch(), + location.getPitch(), new Vector3d(), List.of())); + } if (FunctionFactory.isTrue(this, "holo")) this.hologram.spawn(user); updateMetadata(Collections.singleton(user));