Send PacketPlayOutPlayerInfo before adding entity

This commit is contained in:
ThisTestUser
2021-08-25 15:57:06 -04:00
parent 0a2c1e7e88
commit 7c15dc0d94

View File

@@ -119,21 +119,23 @@ public class Bot extends EntityPlayer {
bot.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
bot.getBukkitEntity().setNoDamageTicks(0);
bot.renderAll();
Bukkit.getOnlinePlayers().forEach(p -> ((CraftPlayer) p).getHandle().playerConnection.sendPacket(
new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, bot)));
if(mobTargeting)
nmsWorld.addPlayerJoin(bot);
else
nmsWorld.addEntity(bot);
bot.renderAll();
TerminatorPlus.getInstance().getManager().add(bot);
return bot;
}
private void renderAll() {
Packet<?>[] packets = getRenderPackets();
Bukkit.getOnlinePlayers().forEach(p -> render(((CraftPlayer) p).getHandle().playerConnection, packets, false));
Packet<?>[] packets = getRenderPacketsNoTab();
Bukkit.getOnlinePlayers().forEach(p -> renderNoTab(((CraftPlayer) p).getHandle().playerConnection, packets, false));
}
private void render(PlayerConnection connection, Packet<?>[] packets, boolean login) {
@@ -148,6 +150,17 @@ public class Bot extends EntityPlayer {
}
}
private void renderNoTab(PlayerConnection connection, Packet<?>[] packets, boolean login) {
connection.sendPacket(packets[0]);
connection.sendPacket(packets[1]);
if (login) {
scheduler.runTaskLater(plugin, () -> connection.sendPacket(packets[2]), 10);
} else {
connection.sendPacket(packets[2]);
}
}
public void render(PlayerConnection connection, boolean login) {
render(connection, getRenderPackets(), login);
}
@@ -161,6 +174,14 @@ public class Bot extends EntityPlayer {
};
}
private Packet<?>[] getRenderPacketsNoTab() {
return new Packet[] {
new PacketPlayOutNamedEntitySpawn(this),
new PacketPlayOutEntityMetadata(this.getId(), this.getDataWatcher(), true),
new PacketPlayOutEntityHeadRotation(this, (byte) ((this.yaw * 256f) / 360f))
};
}
public void setDefaultItem(ItemStack item) {
this.defaultItem = item;
}