use of org.bukkit.craftbukkit.v1_17_R1.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;
}
use of org.bukkit.craftbukkit.v1_17_R1.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;
}
use of org.bukkit.craftbukkit.v1_17_R1.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;
}
use of org.bukkit.craftbukkit.v1_17_R1.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;
}
}
use of org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity in project Denizen-For-Bukkit by DenizenScript.
the class PacketHelperImpl method sendRename.
@Override
public void sendRename(Player player, Entity entity, String name, boolean listMode) {
try {
if (entity.getType() == EntityType.PLAYER) {
if (listMode) {
send(player, new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, ((CraftPlayer) player).getHandle()));
} else {
// For player entities, force a respawn packet and let the dynamic intercept correct the details
ChunkMap tracker = ((ServerLevel) ((CraftEntity) entity).getHandle().level).getChunkProvider().chunkMap;
ChunkMap.TrackedEntity entityTracker = tracker.G.get(entity.getEntityId());
if (entityTracker != null) {
try {
ServerEntity entry = (ServerEntity) ENTITY_TRACKER_ENTRY_GETTER.get(entityTracker);
if (entry != null) {
entry.removePairing(((CraftPlayer) player).getHandle());
entry.addPairing(((CraftPlayer) player).getHandle());
}
} catch (Throwable ex) {
Debug.echoError(ex);
}
}
}
return;
}
SynchedEntityData fakeData = new SynchedEntityData(((CraftEntity) entity).getHandle());
ClientboundSetEntityDataPacket packet = new ClientboundSetEntityDataPacket(entity.getEntityId(), fakeData, false);
List<SynchedEntityData.DataItem<?>> list = new ArrayList<>();
list.add(new SynchedEntityData.DataItem<>(ENTITY_CUSTOM_NAME_METADATA, Optional.of(Handler.componentToNMS(FormattedTextHelper.parse(name, ChatColor.WHITE)))));
list.add(new SynchedEntityData.DataItem<>(ENTITY_CUSTOM_NAME_VISIBLE_METADATA, true));
ENTITY_METADATA_LIST_SETTER.invoke(packet, list);
send(player, packet);
} catch (Throwable ex) {
Debug.echoError(ex);
}
}
Aggregations