Merge pull request #23 from ThisTestUser/mob_targeting

Mob Targeting
This commit is contained in:
Chris
2021-08-31 11:20:33 -05:00
committed by GitHub
6 changed files with 153 additions and 60 deletions

View File

@@ -75,6 +75,8 @@ public class Bot extends EntityPlayer {
private byte noFallTicks;
private final Vector offset;
public static boolean mobTargeting;
private Bot(MinecraftServer minecraftServer, WorldServer worldServer, GameProfile profile, PlayerInteractManager manager) {
super(minecraftServer, worldServer, profile, manager);
@@ -117,18 +119,23 @@ public class Bot extends EntityPlayer {
bot.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
bot.getBukkitEntity().setNoDamageTicks(0);
nmsWorld.addEntity(bot);
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 = getRenderPacketsNoInfo();
Bukkit.getOnlinePlayers().forEach(p -> renderNoInfo(((CraftPlayer) p).getHandle().playerConnection, packets, false));
}
private void render(PlayerConnection connection, Packet<?>[] packets, boolean login) {
@@ -142,6 +149,17 @@ public class Bot extends EntityPlayer {
connection.sendPacket(packets[3]);
}
}
private void renderNoInfo(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);
@@ -155,6 +173,14 @@ public class Bot extends EntityPlayer {
new PacketPlayOutEntityHeadRotation(this, (byte) ((this.yaw * 256f) / 360f))
};
}
private Packet<?>[] getRenderPacketsNoInfo() {
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;