Search in sources :

Example 21 with ClientboundRemoveEntitiesPacket

use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project UltraCosmetics by iSach.

the class EntityUtil method clearBlizzard.

@Override
public void clearBlizzard(Player player) {
    if (!fakeArmorStandsMap.containsKey(player))
        return;
    for (ArmorStand as : fakeArmorStandsMap.get(player)) {
        if (as == null) {
            continue;
        }
        for (Player pl : player.getWorld().getPlayers()) {
            sendPacket(pl, new ClientboundRemoveEntitiesPacket(as.getId()));
        }
    }
    fakeArmorStandsMap.remove(player);
    cooldownJumpMap.remove(player);
}
Also used : CraftPlayer(org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer) Player(org.bukkit.entity.Player) ServerPlayer(net.minecraft.server.level.ServerPlayer) ClientboundRemoveEntitiesPacket(net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket) ArmorStand(net.minecraft.world.entity.decoration.ArmorStand)

Example 22 with ClientboundRemoveEntitiesPacket

use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project UltraCosmetics by iSach.

the class EntityUtil method sendDestroyPacket.

@Override
public void sendDestroyPacket(Player player, org.bukkit.entity.Entity entity) {
    ClientboundRemoveEntitiesPacket packet = new ClientboundRemoveEntitiesPacket(((CraftEntity) entity).getHandle().getId());
    ((CraftPlayer) player).getHandle().connection.send(packet);
}
Also used : ClientboundRemoveEntitiesPacket(net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket) CraftEntity(org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity) CraftPlayer(org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer)

Example 23 with ClientboundRemoveEntitiesPacket

use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project UltraCosmetics by iSach.

the class EntityUtil method sendBlizzard.

@Override
public void sendBlizzard(final Player player, Location loc, boolean affectPlayers, Vector v) {
    try {
        if (!fakeArmorStandsMap.containsKey(player))
            fakeArmorStandsMap.put(player, new ArrayList<>());
        if (!cooldownJumpMap.containsKey(player))
            cooldownJumpMap.put(player, new ArrayList<>());
        final List<ArmorStand> fakeArmorStands = fakeArmorStandsMap.get(player);
        final List<org.bukkit.entity.Entity> cooldownJump = cooldownJumpMap.get(player);
        final ArmorStand as = new ArmorStand(EntityType.ARMOR_STAND, ((CraftWorld) player.getWorld()).getHandle());
        as.setInvisible(true);
        as.setSharedFlag(5, true);
        as.setSmall(true);
        as.setNoGravity(true);
        as.setShowArms(true);
        as.setHeadPose(new Rotations((r.nextInt(360)), (r.nextInt(360)), (r.nextInt(360))));
        as.absMoveTo(loc.getX() + MathUtils.randomDouble(-1.5, 1.5), loc.getY() + MathUtils.randomDouble(0, .5) - 0.75, loc.getZ() + MathUtils.randomDouble(-1.5, 1.5), 0, 0);
        fakeArmorStands.add(as);
        for (Player players : player.getWorld().getPlayers()) {
            sendPacket(player, new ClientboundAddEntityPacket(as));
            sendPacket(players, new ClientboundSetEntityDataPacket(as.getId(), as.getEntityData(), false));
            List<Pair<EquipmentSlot, ItemStack>> list = new ArrayList<>();
            list.add(new Pair(EquipmentSlot.HEAD, CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(org.bukkit.Material.PACKED_ICE))));
            sendPacket(players, new ClientboundSetEquipmentPacket(as.getId(), list));
        }
        UtilParticles.display(Particles.CLOUD, loc.clone().add(MathUtils.randomDouble(-1.5, 1.5), MathUtils.randomDouble(0, .5) - 0.75, MathUtils.randomDouble(-1.5, 1.5)), 2, 0.4f);
        Bukkit.getScheduler().runTaskLater(UltraCosmeticsData.get().getPlugin(), () -> {
            for (Player pl : player.getWorld().getPlayers()) {
                sendPacket(pl, new ClientboundRemoveEntitiesPacket(as.getId()));
            }
            fakeArmorStands.remove(as);
        }, 20);
        if (affectPlayers)
            as.getBukkitEntity().getNearbyEntities(0.5, 0.5, 0.5).stream().filter(ent -> !cooldownJump.contains(ent) && ent != player).forEachOrdered(ent -> {
                MathUtils.applyVelocity(ent, new Vector(0, 1, 0).add(v));
                cooldownJump.add(ent);
                Bukkit.getScheduler().runTaskLater(UltraCosmeticsData.get().getPlugin(), () -> cooldownJump.remove(ent), 20);
            });
    } catch (Exception exc) {
    }
}
Also used : LivingEntity(net.minecraft.world.entity.LivingEntity) Path(net.minecraft.world.level.pathfinder.Path) UtilParticles(be.isach.ultracosmetics.util.UtilParticles) Player(org.bukkit.entity.Player) CraftWorld(org.bukkit.craftbukkit.v1_18_R2.CraftWorld) Inventory(org.bukkit.inventory.Inventory) Block(org.bukkit.block.Block) Location(org.bukkit.Location) EnderDragon(net.minecraft.world.entity.boss.enderdragon.EnderDragon) UltraCosmeticsData(be.isach.ultracosmetics.UltraCosmeticsData) CraftBoat(org.bukkit.craftbukkit.v1_18_R2.entity.CraftBoat) Math(java.lang.Math) Creature(org.bukkit.entity.Creature) Bukkit(org.bukkit.Bukkit) ClientboundRemoveEntitiesPacket(net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket) MemoryModuleType(net.minecraft.world.entity.ai.memory.MemoryModuleType) CraftEnderDragon(org.bukkit.craftbukkit.v1_18_R2.entity.CraftEnderDragon) ClientboundTeleportEntityPacket(net.minecraft.network.protocol.game.ClientboundTeleportEntityPacket) BlockPos(net.minecraft.core.BlockPos) ItemEntity(net.minecraft.world.entity.item.ItemEntity) Boat(net.minecraft.world.entity.vehicle.Boat) WrappedGoal(net.minecraft.world.entity.ai.goal.WrappedGoal) Packet(net.minecraft.network.protocol.Packet) PathfinderMob(net.minecraft.world.entity.PathfinderMob) ChestType(be.isach.ultracosmetics.treasurechests.ChestType) ItemStack(net.minecraft.world.item.ItemStack) MoverType(net.minecraft.world.entity.MoverType) Level(net.minecraft.world.level.Level) CraftCreature(org.bukkit.craftbukkit.v1_18_R2.entity.CraftCreature) Goal(net.minecraft.world.entity.ai.goal.Goal) GoalSelector(net.minecraft.world.entity.ai.goal.GoalSelector) MathUtils(be.isach.ultracosmetics.util.MathUtils) java.util(java.util) Wither(org.bukkit.entity.Wither) EntityType(net.minecraft.world.entity.EntityType) ChestBlockEntity(net.minecraft.world.level.block.entity.ChestBlockEntity) ServerPlayer(net.minecraft.server.level.ServerPlayer) CraftPlayer(org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer) Rotations(net.minecraft.core.Rotations) ArmorStand(net.minecraft.world.entity.decoration.ArmorStand) Particles(be.isach.ultracosmetics.util.Particles) TreasureChestDesign(be.isach.ultracosmetics.treasurechests.TreasureChestDesign) CraftInventory(org.bukkit.craftbukkit.v1_18_R2.inventory.CraftInventory) Field(java.lang.reflect.Field) ClientboundSetEquipmentPacket(net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket) Pair(com.mojang.datafixers.util.Pair) ClientboundAddEntityPacket(net.minecraft.network.protocol.game.ClientboundAddEntityPacket) Vector(org.bukkit.util.Vector) Entity(net.minecraft.world.entity.Entity) ClientboundSetEntityDataPacket(net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket) Vec3(net.minecraft.world.phys.Vec3) IEntityUtil(be.isach.ultracosmetics.version.IEntityUtil) CraftItemStack(org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack) EquipmentSlot(net.minecraft.world.entity.EquipmentSlot) CraftEntity(org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity) CraftWither(org.bukkit.craftbukkit.v1_18_R2.entity.CraftWither) Brain(net.minecraft.world.entity.ai.Brain) Mob(net.minecraft.world.entity.Mob) EnderChestBlockEntity(net.minecraft.world.level.block.entity.EnderChestBlockEntity) CustomPathFinderGoalPanic(be.isach.ultracosmetics.v1_18_R2.pathfinders.CustomPathFinderGoalPanic) LivingEntity(net.minecraft.world.entity.LivingEntity) ItemEntity(net.minecraft.world.entity.item.ItemEntity) ChestBlockEntity(net.minecraft.world.level.block.entity.ChestBlockEntity) Entity(net.minecraft.world.entity.Entity) CraftEntity(org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity) EnderChestBlockEntity(net.minecraft.world.level.block.entity.EnderChestBlockEntity) ClientboundSetEquipmentPacket(net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket) Player(org.bukkit.entity.Player) ServerPlayer(net.minecraft.server.level.ServerPlayer) CraftPlayer(org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer) ClientboundRemoveEntitiesPacket(net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket) ClientboundAddEntityPacket(net.minecraft.network.protocol.game.ClientboundAddEntityPacket) Rotations(net.minecraft.core.Rotations) ArmorStand(net.minecraft.world.entity.decoration.ArmorStand) Vector(org.bukkit.util.Vector) ClientboundSetEntityDataPacket(net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket) Pair(com.mojang.datafixers.util.Pair)

Example 24 with ClientboundRemoveEntitiesPacket

use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project Denizen by DenizenScript.

the class EntityHelperImpl method sendHidePacket.

/*
        Hide Entity
     */
@Override
public void sendHidePacket(Player pl, Entity entity) {
    if (entity instanceof Player) {
        pl.hidePlayer(Denizen.getInstance(), (Player) entity);
        return;
    }
    CraftPlayer craftPlayer = (CraftPlayer) pl;
    ServerPlayer entityPlayer = craftPlayer.getHandle();
    if (entityPlayer.connection != null && !craftPlayer.equals(entity)) {
        ChunkMap tracker = ((ServerLevel) craftPlayer.getHandle().level).getChunkProvider().chunkMap;
        net.minecraft.world.entity.Entity other = ((CraftEntity) entity).getHandle();
        ChunkMap.TrackedEntity entry = tracker.G.get(other.getId());
        if (entry != null) {
            entry.removePlayer(entityPlayer);
        }
        if (Denizen.supportsPaper) {
            // Workaround for Paper issue
            entityPlayer.connection.send(new ClientboundRemoveEntitiesPacket(other.getId()));
        }
    }
}
Also used : ServerPlayer(net.minecraft.server.level.ServerPlayer) ChunkMap(net.minecraft.server.level.ChunkMap) ClientboundRemoveEntitiesPacket(net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket) ServerPlayer(net.minecraft.server.level.ServerPlayer) org.bukkit.craftbukkit.v1_17_R1.entity(org.bukkit.craftbukkit.v1_17_R1.entity) org.bukkit.entity(org.bukkit.entity) net.minecraft.world.entity(net.minecraft.world.entity)

Example 25 with ClientboundRemoveEntitiesPacket

use of net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket in project Denizen by DenizenScript.

the class EntityHelperImpl method sendHidePacket.

/*
        Hide Entity
     */
@Override
public void sendHidePacket(Player pl, Entity entity) {
    if (entity instanceof Player) {
        pl.hidePlayer(Denizen.getInstance(), (Player) entity);
        return;
    }
    CraftPlayer craftPlayer = (CraftPlayer) pl;
    ServerPlayer entityPlayer = craftPlayer.getHandle();
    if (entityPlayer.connection != null && !craftPlayer.equals(entity)) {
        ChunkMap tracker = ((ServerLevel) craftPlayer.getHandle().level).getChunkSource().chunkMap;
        net.minecraft.world.entity.Entity other = ((CraftEntity) entity).getHandle();
        ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
        if (entry != null) {
            entry.removePlayer(entityPlayer);
        }
        if (Denizen.supportsPaper) {
            // Workaround for Paper issue
            entityPlayer.connection.send(new ClientboundRemoveEntitiesPacket(other.getId()));
        }
    }
}
Also used : ServerPlayer(net.minecraft.server.level.ServerPlayer) ChunkMap(net.minecraft.server.level.ChunkMap) ClientboundRemoveEntitiesPacket(net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket) ServerPlayer(net.minecraft.server.level.ServerPlayer) org.bukkit.entity(org.bukkit.entity) net.minecraft.world.entity(net.minecraft.world.entity) org.bukkit.craftbukkit.v1_18_R2.entity(org.bukkit.craftbukkit.v1_18_R2.entity)

Aggregations

ClientboundRemoveEntitiesPacket (net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket)27 ServerPlayer (net.minecraft.server.level.ServerPlayer)16 Player (org.bukkit.entity.Player)11 ServerLevel (net.minecraft.server.level.ServerLevel)10 ClientboundAddEntityPacket (net.minecraft.network.protocol.game.ClientboundAddEntityPacket)6 ClientboundSetEntityDataPacket (net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket)6 ItemEntity (net.minecraft.world.entity.item.ItemEntity)6 Vec3 (net.minecraft.world.phys.Vec3)6 ClientboundPlayerInfoPacket (net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket)5 CraftPlayer (org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer)5 ChunkMap (net.minecraft.server.level.ChunkMap)4 net.minecraft.world.entity (net.minecraft.world.entity)4 ArmorStand (net.minecraft.world.entity.decoration.ArmorStand)4 CraftPlayer (org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer)4 CraftPlayer (org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer)4 org.bukkit.entity (org.bukkit.entity)4 KitPlayer (de.hglabor.plugins.kitapi.player.KitPlayer)3 ArrayList (java.util.ArrayList)3 UUID (java.util.UUID)3 ClientboundAddPlayerPacket (net.minecraft.network.protocol.game.ClientboundAddPlayerPacket)3