Send PacketPlayOutPlayerInfo before adding entity
This commit is contained in:
@@ -119,21 +119,23 @@ public class Bot extends EntityPlayer {
|
|||||||
|
|
||||||
bot.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
|
bot.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
|
||||||
bot.getBukkitEntity().setNoDamageTicks(0);
|
bot.getBukkitEntity().setNoDamageTicks(0);
|
||||||
bot.renderAll();
|
Bukkit.getOnlinePlayers().forEach(p -> ((CraftPlayer) p).getHandle().playerConnection.sendPacket(
|
||||||
|
new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, bot)));
|
||||||
if(mobTargeting)
|
if(mobTargeting)
|
||||||
nmsWorld.addPlayerJoin(bot);
|
nmsWorld.addPlayerJoin(bot);
|
||||||
else
|
else
|
||||||
nmsWorld.addEntity(bot);
|
nmsWorld.addEntity(bot);
|
||||||
|
|
||||||
|
bot.renderAll();
|
||||||
|
|
||||||
TerminatorPlus.getInstance().getManager().add(bot);
|
TerminatorPlus.getInstance().getManager().add(bot);
|
||||||
|
|
||||||
return bot;
|
return bot;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderAll() {
|
private void renderAll() {
|
||||||
Packet<?>[] packets = getRenderPackets();
|
Packet<?>[] packets = getRenderPacketsNoTab();
|
||||||
Bukkit.getOnlinePlayers().forEach(p -> render(((CraftPlayer) p).getHandle().playerConnection, packets, false));
|
Bukkit.getOnlinePlayers().forEach(p -> renderNoTab(((CraftPlayer) p).getHandle().playerConnection, packets, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void render(PlayerConnection connection, Packet<?>[] packets, boolean login) {
|
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) {
|
public void render(PlayerConnection connection, boolean login) {
|
||||||
render(connection, getRenderPackets(), 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) {
|
public void setDefaultItem(ItemStack item) {
|
||||||
this.defaultItem = item;
|
this.defaultItem = item;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user