package jas.spawner.modern.eventspawn.context; import jas.spawner.modern.eventspawn.SingleSpawnBuilder; import jas.spawner.modern.eventspawn.SpawnBuilder; import java.util.Locale; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraftforge.event.world.BlockEvent; public class BlockContext extends EventContext { private BlockEvent event; public BlockContext(BlockEvent event) { super(event.world, event.x, event.y, event.z); this.event = event; } public String blockName() { return Block.blockRegistry.getNameForObject(event.block); } public int blockMeta() { return event.blockMetadata; } public boolean isMaterial(String materialName) { return material().equals(materialName.toLowerCase(Locale.US)); } public String material() { return material(event.world.getBlock(event.x, event.y, event.z).getMaterial()); } public String material(Material material) { if (material == Material.air) { return "air"; } else if (material == Material.water) { return "water"; } else if (material == Material.fire) { return "fire"; } else if (material == Material.lava) { return "lava"; } else if (material == Material.sand) { return "sand"; } else if (material == Material.grass) { return "grass"; } else if (material == Material.ground) { return "ground"; } else if (material == Material.wood) { return "wood"; } else if (material == Material.rock) { return "rock"; } else if (material == Material.iron) { return "iron"; } else if (material == Material.anvil) { return "anvil"; } else if (material == Material.leaves) { return "leaves"; } else if (material == Material.plants) { return "plants"; } else if (material == Material.vine) { return "vine"; } else if (material == Material.sponge) { return "sponge"; } else if (material == Material.cloth) { return "cloth"; } else if (material == Material.circuits) { return "circuits"; } else if (material == Material.carpet) { return "carpet"; } else if (material == Material.glass) { return "glass"; } else if (material == Material.redstoneLight) { return "redstoneLight"; } else if (material == Material.tnt) { return "tnt"; } else if (material == Material.coral) { return "coral"; } else if (material == Material.ice) { return "ice"; } else if (material == Material.packedIce) { return "packedIce"; } else if (material == Material.snow) { return "snow"; } else if (material == Material.web) { return "web"; } else if (material == Material.craftedSnow) { return "craftedSnow"; } else if (material == Material.cactus) { return "cactus"; } else if (material == Material.clay) { return "clay"; } else if (material == Material.gourd) { return "gourd"; } else if (material == Material.portal) { return "portal"; } else if (material == Material.dragonEgg) { return "dragonEgg"; } else if (material == Material.cake) { return "cake"; } else if (material == Material.piston) { return "piston"; } else { throw new IllegalArgumentException(String.format("Unknown material type %s", material)); } } public boolean isBlock(String blockName) { return blockName().equals(blockName); } public boolean isBlock(String blockName, int blockMeta) { return blockMeta == event.blockMetadata && blockName().equals(blockName); } public SpawnBuilder spawn(String entityMapping) { return new SingleSpawnBuilder(entityMapping, event.x + 0.5D, event.y, event.z + 0.5D); } }