use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project kit-api by HGLabor.
the class AnalystKit method onPlayerRightClickPlayerWithKitItem.
@KitEvent
@Override
public void onPlayerRightClickPlayerWithKitItem(PlayerInteractAtEntityEvent event, KitPlayer kitPlayer, Player rightClicked) {
Player player = event.getPlayer();
double boost = 0.25D;
List<AnalystHologram> analystHolograms = new ArrayList<>();
for (AnalystHologram.HologramType type : AnalystHologram.HologramType.values()) {
boost += 0.25D;
World world = rightClicked.getWorld();
AnalystHologram analystHologram = new AnalystHologram(world, rightClicked, player, type, boost);
analystHolograms.add(analystHologram);
hologramIds.add(analystHologram.getId());
((CraftWorld) world).getHandle().addFreshEntity(analystHologram);
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
if (onlinePlayer == player) {
continue;
}
((CraftPlayer) onlinePlayer).getHandle().connection.send(new ClientboundRemoveEntitiesPacket(analystHologram.getId()));
}
}
Bukkit.getScheduler().runTaskLater(KitApi.getInstance().getPlugin(), () -> {
for (AnalystHologram analystHologram : analystHolograms) {
hologramIds.removeIf(integer -> integer == analystHologram.getId());
analystHologram.die(DamageSource.GENERIC);
}
}, hologramKeepAlive * 20L);
kitPlayer.putKitAttribute(hologramKey, analystHolograms);
kitPlayer.activateKitCooldown(this);
}
use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project kit-api by HGLabor.
the class AnalystKit method onPlayerJoin.
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
hologramIds.forEach(hologramId -> ((CraftPlayer) player).getHandle().connection.send(new ClientboundRemoveEntitiesPacket(hologramId)));
}
Aggregations