Search in sources :

Example 76 with CraftEntity

use of org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity in project NoCheatPlus by NoCheatPlus.

the class BlockCacheCB2512 method standsOnEntity.

@Override
public boolean standsOnEntity(final Entity entity, final double minX, final double minY, final double minZ, final double maxX, final double maxY, final double maxZ) {
    try {
        // TODO: Probably check other ids too before doing this ?
        final net.minecraft.server.v1_4_5.Entity mcEntity = ((CraftEntity) entity).getHandle();
        final AxisAlignedBB box = useBox.b(minX, minY, minZ, maxX, maxY, maxZ);
        @SuppressWarnings("rawtypes") final List list = world.getEntities(mcEntity, box);
        @SuppressWarnings("rawtypes") Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            final net.minecraft.server.v1_4_5.Entity other = (net.minecraft.server.v1_4_5.Entity) iterator.next();
            final EntityType type = other.getBukkitEntity().getType();
            if (type != EntityType.BOAT && type != EntityType.MINECART)
                continue;
            final AxisAlignedBB otherBox = other.boundingBox;
            if (box.a > otherBox.d || box.d < otherBox.a || box.b > otherBox.e || box.e < otherBox.b || box.c > otherBox.f || box.f < otherBox.c)
                continue;
            else {
                return true;
            }
        }
    } catch (Throwable t) {
    // Ignore exceptions (Context: DisguiseCraft).
    }
    return false;
}
Also used : AxisAlignedBB(net.minecraft.server.v1_4_5.AxisAlignedBB) CraftEntity(org.bukkit.craftbukkit.v1_4_5.entity.CraftEntity) Entity(org.bukkit.entity.Entity) TileEntity(net.minecraft.server.v1_4_5.TileEntity) CraftEntity(org.bukkit.craftbukkit.v1_4_5.entity.CraftEntity) EntityType(org.bukkit.entity.EntityType) Iterator(java.util.Iterator) List(java.util.List)

Example 77 with CraftEntity

use of org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity in project NoCheatPlus by NoCheatPlus.

the class BlockCacheCB2545 method standsOnEntity.

@Override
public boolean standsOnEntity(final Entity entity, final double minX, final double minY, final double minZ, final double maxX, final double maxY, final double maxZ) {
    try {
        // TODO: Probably check other ids too before doing this ?
        final net.minecraft.server.v1_4_6.Entity mcEntity = ((CraftEntity) entity).getHandle();
        final AxisAlignedBB box = useBox.b(minX, minY, minZ, maxX, maxY, maxZ);
        @SuppressWarnings("rawtypes") final List list = world.getEntities(mcEntity, box);
        @SuppressWarnings("rawtypes") Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            final net.minecraft.server.v1_4_6.Entity other = (net.minecraft.server.v1_4_6.Entity) iterator.next();
            final EntityType type = other.getBukkitEntity().getType();
            if (type != EntityType.BOAT && type != EntityType.MINECART)
                continue;
            final AxisAlignedBB otherBox = other.boundingBox;
            if (box.a > otherBox.d || box.d < otherBox.a || box.b > otherBox.e || box.e < otherBox.b || box.c > otherBox.f || box.f < otherBox.c)
                continue;
            else {
                return true;
            }
        }
    } catch (Throwable t) {
    // Ignore exceptions (Context: DisguiseCraft).
    }
    return false;
}
Also used : AxisAlignedBB(net.minecraft.server.v1_4_6.AxisAlignedBB) CraftEntity(org.bukkit.craftbukkit.v1_4_6.entity.CraftEntity) Entity(org.bukkit.entity.Entity) TileEntity(net.minecraft.server.v1_4_6.TileEntity) CraftEntity(org.bukkit.craftbukkit.v1_4_6.entity.CraftEntity) EntityType(org.bukkit.entity.EntityType) Iterator(java.util.Iterator) List(java.util.List)

Example 78 with CraftEntity

use of org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity in project NoCheatPlus by NoCheatPlus.

the class BlockCacheCB2882 method standsOnEntity.

@Override
public boolean standsOnEntity(final Entity entity, final double minX, final double minY, final double minZ, final double maxX, final double maxY, final double maxZ) {
    try {
        // TODO: Probably check other ids too before doing this ?
        final net.minecraft.server.v1_6_R3.Entity mcEntity = ((CraftEntity) entity).getHandle();
        final AxisAlignedBB box = useBox.b(minX, minY, minZ, maxX, maxY, maxZ);
        @SuppressWarnings("rawtypes") final List list = world.getEntities(mcEntity, box);
        @SuppressWarnings("rawtypes") final Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            final net.minecraft.server.v1_6_R3.Entity other = (net.minecraft.server.v1_6_R3.Entity) iterator.next();
            if (!(other instanceof EntityBoat)) {
                // && !(other instanceof EntityMinecart)) continue;
                continue;
            }
            if (minY >= other.locY && minY - other.locY <= 0.7) {
                return true;
            }
            // Still check this for some reason.
            final AxisAlignedBB otherBox = other.boundingBox;
            if (box.a > otherBox.d || box.d < otherBox.a || box.b > otherBox.e || box.e < otherBox.b || box.c > otherBox.f || box.f < otherBox.c)
                continue;
            else {
                return true;
            }
        }
    } catch (Throwable t) {
    // Ignore exceptions (Context: DisguiseCraft).
    }
    return false;
}
Also used : AxisAlignedBB(net.minecraft.server.v1_6_R3.AxisAlignedBB) Entity(org.bukkit.entity.Entity) TileEntity(net.minecraft.server.v1_6_R3.TileEntity) CraftEntity(org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity) EntityBoat(net.minecraft.server.v1_6_R3.EntityBoat) CraftEntity(org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity) Iterator(java.util.Iterator) List(java.util.List)

Example 79 with CraftEntity

use of org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity in project NoCheatPlus by NoCheatPlus.

the class MCAccessCBDev method getHeight.

@Override
public double getHeight(final Entity entity) {
    // (entity.getHeight() returns the length field, but we access nms anyway.)
    final net.minecraft.server.v1_12_R1.Entity mcEntity = ((CraftEntity) entity).getHandle();
    final AxisAlignedBB boundingBox = mcEntity.getBoundingBox();
    final double entityHeight = Math.max(mcEntity.length, Math.max(mcEntity.getHeadHeight(), boundingBox.e - boundingBox.b));
    if (entity instanceof LivingEntity) {
        return Math.max(((LivingEntity) entity).getEyeHeight(), entityHeight);
    } else {
        return entityHeight;
    }
}
Also used : AxisAlignedBB(net.minecraft.server.v1_12_R1.AxisAlignedBB) LivingEntity(org.bukkit.entity.LivingEntity) CraftEntity(org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity)

Example 80 with CraftEntity

use of org.bukkit.craftbukkit.v1_8_R2.entity.CraftEntity in project Denizen-For-Bukkit by DenizenScript.

the class DenizenNetworkManagerImpl method tryProcessTeleportPacketForAttach.

public void tryProcessTeleportPacketForAttach(Packet<?> packet, Entity e, Vector relative) throws IllegalAccessException {
    EntityAttachmentHelper.EntityAttachedToMap attList = EntityAttachmentHelper.toEntityToData.get(e.getUniqueID());
    if (attList != null) {
        for (EntityAttachmentHelper.PlayerAttachMap attMap : attList.attachedToMap.values()) {
            EntityAttachmentHelper.AttachmentData att = attMap.getAttachment(player.getUniqueID());
            if (attMap.attached.isValid() && att != null) {
                Packet pNew = (Packet) duplo(packet);
                ENTITY_ID_PACKTELENT.setInt(pNew, att.attached.getBukkitEntity().getEntityId());
                Vector resultPos = new Vector(POS_X_PACKTELENT.getDouble(pNew), POS_Y_PACKTELENT.getDouble(pNew), POS_Z_PACKTELENT.getDouble(pNew)).add(relative);
                if (att.positionalOffset != null) {
                    resultPos = att.fixedForOffset(resultPos, e.yaw, e.pitch);
                    byte yaw, pitch;
                    if (att.noRotate) {
                        Entity attachedEntity = ((CraftEntity) att.attached.getBukkitEntity()).getHandle();
                        yaw = EntityAttachmentHelper.compressAngle(attachedEntity.yaw);
                        pitch = EntityAttachmentHelper.compressAngle(attachedEntity.pitch);
                    } else {
                        yaw = YAW_PACKTELENT.getByte(packet);
                        pitch = PITCH_PACKTELENT.getByte(packet);
                    }
                    byte newYaw = EntityAttachmentHelper.adaptedCompressedAngle(yaw, att.positionalOffset.getYaw());
                    pitch = EntityAttachmentHelper.adaptedCompressedAngle(pitch, att.positionalOffset.getPitch());
                    POS_X_PACKTELENT.setDouble(pNew, resultPos.getX());
                    POS_Y_PACKTELENT.setDouble(pNew, resultPos.getY());
                    POS_Z_PACKTELENT.setDouble(pNew, resultPos.getZ());
                    YAW_PACKTELENT.setByte(pNew, newYaw);
                    PITCH_PACKTELENT.setByte(pNew, pitch);
                    if (NMSHandler.debugPackets) {
                        Debug.log("Attach Teleport Packet: " + pNew.getClass().getCanonicalName() + " for " + att.attached.getUUID() + " sent to " + player.getName() + " with raw yaw " + yaw + " adapted to " + newYaw);
                    }
                }
                att.visiblePositions.put(player.getUniqueID(), resultPos.clone());
                oldManager.sendPacket(pNew);
            }
        }
    }
    if (e.passengers != null && !e.passengers.isEmpty()) {
        for (Entity ent : e.passengers) {
            tryProcessTeleportPacketForAttach(packet, ent, new Vector(ent.locX() - e.locX(), ent.locY() - e.locY(), ent.locZ() - e.locZ()));
        }
    }
}
Also used : CraftEntity(org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity) PacketOutSpawnEntity(com.denizenscript.denizen.nms.interfaces.packets.PacketOutSpawnEntity) CraftEntity(org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity) EntityAttachmentHelper(com.denizenscript.denizen.utilities.entity.EntityAttachmentHelper) Vector(org.bukkit.util.Vector)

Aggregations

Entity (org.bukkit.entity.Entity)29 Iterator (java.util.Iterator)21 List (java.util.List)21 LivingEntity (org.bukkit.entity.LivingEntity)21 CraftEntity (org.bukkit.craftbukkit.v1_18_R1.entity.CraftEntity)17 CraftEntity (org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity)16 UUID (java.util.UUID)12 Location (org.bukkit.Location)11 EnteredStateTracker (com.elmakers.mine.bukkit.utility.EnteredStateTracker)10 DamageSource (net.minecraft.world.damagesource.DamageSource)10 EntityDamageSource (net.minecraft.world.damagesource.EntityDamageSource)10 CraftEntity (org.bukkit.craftbukkit.v1_10_R1.entity.CraftEntity)10 HashSet (java.util.HashSet)8 Set (java.util.Set)8 CraftEntity (org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity)8 CraftEntity (org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity)8 CraftEntity (org.bukkit.craftbukkit.v1_9_R2.entity.CraftEntity)7 CraftEntity (org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity)6 BukkitRunnable (org.bukkit.scheduler.BukkitRunnable)6 EntityAttachmentHelper (com.denizenscript.denizen.utilities.entity.EntityAttachmentHelper)5