use of org.bukkit.craftbukkit.v1_18_R2.CraftWorld in project Denizen-For-Bukkit by DenizenScript.
the class BlockHelperImpl method setSpawnerSpawnedType.
@Override
public void setSpawnerSpawnedType(CreatureSpawner spawner, EntityTag entity) {
spawner.setSpawnedType(entity.getBukkitEntityType());
if (entity.getWaitingMechanisms() == null || entity.getWaitingMechanisms().size() == 0) {
return;
}
try {
// Wrangle a fake entity
Entity nmsEntity = ((CraftWorld) spawner.getWorld()).createEntity(spawner.getLocation(), entity.getBukkitEntityType().getEntityClass());
EntityTag entityTag = new EntityTag(nmsEntity.getBukkitEntity());
entityTag.isFake = true;
entityTag.isFakeValid = true;
for (Mechanism mechanism : entity.getWaitingMechanisms()) {
entityTag.safeAdjustDuplicate(mechanism);
}
nmsEntity.unsetRemoved();
// Store it into the spawner
CraftCreatureSpawner bukkitSpawner = (CraftCreatureSpawner) spawner;
SpawnerBlockEntity nmsSnapshot = (SpawnerBlockEntity) craftBlockEntityState_snapshot.get(bukkitSpawner);
BaseSpawner nmsSpawner = nmsSnapshot.getSpawner();
SpawnData toSpawn = nmsSpawner.nextSpawnData;
net.minecraft.nbt.CompoundTag tag = toSpawn.getEntityToSpawn();
nmsEntity.saveWithoutId(tag);
} catch (Throwable ex) {
Debug.echoError(ex);
}
}
use of org.bukkit.craftbukkit.v1_18_R2.CraftWorld in project Denizen-For-Bukkit by DenizenScript.
the class CustomEntityHelperImpl method spawnItemProjectile.
@Override
public ItemProjectile spawnItemProjectile(Location location, ItemStack itemStack) {
CraftWorld world = (CraftWorld) location.getWorld();
EntityItemProjectileImpl entity = new EntityItemProjectileImpl(world.getHandle(), location, CraftItemStack.asNMSCopy(itemStack));
world.getHandle().addFreshEntity(entity, CreatureSpawnEvent.SpawnReason.CUSTOM);
return entity.getBukkitEntity();
}
use of org.bukkit.craftbukkit.v1_18_R2.CraftWorld in project Denizen-For-Bukkit by DenizenScript.
the class CustomEntityHelperImpl method spawnFakeArrow.
@Override
public FakeArrow spawnFakeArrow(Location location) {
CraftWorld world = (CraftWorld) location.getWorld();
EntityFakeArrowImpl arrow = new EntityFakeArrowImpl(world, location);
return arrow.getBukkitEntity();
}
use of org.bukkit.craftbukkit.v1_18_R2.CraftWorld in project Denizen-For-Bukkit by DenizenScript.
the class WorldHelperImpl method setStatic.
@Override
public void setStatic(World world, boolean isStatic) {
ServerLevel worldServer = ((CraftWorld) world).getHandle();
ReflectionHelper.setFieldValue(net.minecraft.world.level.Level.class, ReflectionMappingsInfo.Level_isClientSide, worldServer, isStatic);
}
use of org.bukkit.craftbukkit.v1_18_R2.CraftWorld in project Denizen-For-Bukkit by DenizenScript.
the class EntityHelperImpl method setTrackingRange.
@Override
public void setTrackingRange(Entity entity, int range) {
try {
ChunkMap map = ((CraftWorld) entity.getWorld()).getHandle().getChunkProvider().chunkMap;
ChunkMap.TrackedEntity entry = map.G.get(entity.getEntityId());
TRACKING_RANGE_SETTER.invoke(entry, range);
} catch (Throwable ex) {
Debug.echoError(ex);
}
}
Aggregations