A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
blob: a3ab66b229639773cf3494564578dca5e8cff0dc (2494 bytes)[doc][blame][raw]
1
package poppy.modules;3
import java.util.ArrayList;5
import org.bukkit.Location;6
import org.bukkit.Material;7
import org.bukkit.block.Block;8
import org.bukkit.block.CreatureSpawner;9
import org.bukkit.enchantments.Enchantment;10
import org.bukkit.entity.EntityType;11
import org.bukkit.entity.Player;12
import org.bukkit.event.EventHandler;13
import org.bukkit.event.Listener;14
import org.bukkit.event.block.BlockBreakEvent;15
import org.bukkit.event.block.BlockPlaceEvent;16
import org.bukkit.inventory.ItemStack;17
import org.bukkit.inventory.meta.BlockStateMeta;18
import org.bukkit.inventory.meta.ItemMeta;20
public class SpawnerModule implements Listener21
{22
@EventHandler23
public void onBlockBreak(BlockBreakEvent event)24
{25
final Block block = event.getBlock();26
final Player player = event.getPlayer();27
final ItemStack itemInMainHand = player.getInventory().getItemInMainHand();28
final Location blockLocation = block.getLocation();30
if(itemInMainHand.containsEnchantment(Enchantment.SILK_TOUCH))31
{32
if(block.getType() == Material.SPAWNER)33
{34
final CreatureSpawner creatureSpawner = (CreatureSpawner) block.getState();35
final ItemStack spawner = new ItemStack(Material.SPAWNER);36
final ItemMeta spawnerItemMeta = spawner.getItemMeta();37
final ArrayList<String> spawneritemLore = new ArrayList<String>();38
final BlockStateMeta spawnerblockMeta = (BlockStateMeta) spawner.getItemMeta();40
spawneritemLore.add(creatureSpawner.getSpawnedType().toString());41
spawnerItemMeta.setLore(spawneritemLore);42
spawner.setItemMeta(spawnerItemMeta);43
spawnerblockMeta.setBlockState(creatureSpawner);44
blockLocation.getWorld().dropItemNaturally(blockLocation, spawner);45
block.setType(Material.AIR);46
event.setExpToDrop(0);47
}49
if(block.getType() == Material.BUDDING_AMETHYST)50
{51
blockLocation.getWorld().dropItemNaturally(blockLocation, new ItemStack(Material.BUDDING_AMETHYST));52
}53
}54
}56
@EventHandler57
public void onPlaceEvent(BlockPlaceEvent event)58
{59
final Block block = event.getBlockPlaced();60
final ItemStack item = event.getItemInHand();61
final ItemMeta itemMeta = item.getItemMeta();63
if(itemMeta.getLore() == null)64
{65
return;66
}68
if(block.getType() == Material.SPAWNER)69
{70
final CreatureSpawner creatureSpawnerBlock = (CreatureSpawner) block.getState();71
final EntityType entityType = EntityType.valueOf(itemMeta.getLore().get(0));73
creatureSpawnerBlock.setSpawnedType(entityType);74
creatureSpawnerBlock.update();75
}76
}77
}