use of net.minecraft.world.level.block.entity.SpawnerBlockEntity in project Denizen-For-Bukkit by DenizenScript.
the class BlockHelperImpl method setSpawnerCustomRules.
@Override
public void setSpawnerCustomRules(CreatureSpawner spawner, int skyMin, int skyMax, int blockMin, int blockMax) {
try {
CraftCreatureSpawner bukkitSpawner = (CraftCreatureSpawner) spawner;
SpawnerBlockEntity nmsSnapshot = (SpawnerBlockEntity) craftBlockEntityState_snapshot.get(bukkitSpawner);
BaseSpawner nmsSpawner = nmsSnapshot.getSpawner();
SpawnData toSpawn = nmsSpawner.nextSpawnData;
SpawnData.CustomSpawnRules rules = skyMin == -1 ? null : new SpawnData.CustomSpawnRules(new InclusiveRange<>(skyMin, skyMax), new InclusiveRange<>(blockMin, blockMax));
nmsSpawner.nextSpawnData = new SpawnData(toSpawn.entityToSpawn(), Optional.ofNullable(rules));
nmsSpawner.spawnPotentials = SimpleWeightedRandomList.empty();
} catch (Throwable ex) {
Debug.echoError(ex);
}
}
use of net.minecraft.world.level.block.entity.SpawnerBlockEntity 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 net.minecraft.world.level.block.entity.SpawnerBlockEntity in project Denizen-For-Bukkit by DenizenScript.
the class EntityHelperImpl method getMobSpawnerDisplayEntity.
@Override
public EntityTag getMobSpawnerDisplayEntity(CreatureSpawner spawner) {
SpawnerBlockEntity nmsSpawner = BlockHelperImpl.getTE((CraftCreatureSpawner) spawner);
net.minecraft.world.entity.Entity nmsEntity = nmsSpawner.getSpawner().getOrCreateDisplayEntity(((CraftWorld) spawner.getWorld()).getHandle());
return new EntityTag(nmsEntity.getBukkitEntity());
}
use of net.minecraft.world.level.block.entity.SpawnerBlockEntity in project Denizen-For-Bukkit by DenizenScript.
the class EntityHelperImpl method getMobSpawnerDisplayEntity.
@Override
public EntityTag getMobSpawnerDisplayEntity(CreatureSpawner spawner) {
SpawnerBlockEntity nmsSpawner = BlockHelperImpl.getTE((CraftCreatureSpawner) spawner);
net.minecraft.world.entity.Entity nmsEntity = nmsSpawner.getSpawner().getOrCreateDisplayEntity(((CraftWorld) spawner.getWorld()).getHandle());
return new EntityTag(nmsEntity.getBukkitEntity());
}
Aggregations