so://phie

poppy

A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy

blob: c5e31a51f1d3868e6dd5146fb1ff709fa74af0e2 (2301 bytes)[doc][blame][raw]

1package poppy.modules;

2

3import java.util.ArrayList;

4

5import org.bukkit.Location;

6import org.bukkit.Material;

7import org.bukkit.block.Block;

8import org.bukkit.block.CreatureSpawner;

9import org.bukkit.enchantments.Enchantment;

10import org.bukkit.entity.EntityType;

11import org.bukkit.entity.Player;

12import org.bukkit.event.EventHandler;

13import org.bukkit.event.Listener;

14import org.bukkit.event.block.BlockBreakEvent;

15import org.bukkit.event.block.BlockPlaceEvent;

16import org.bukkit.inventory.ItemStack;

17import org.bukkit.inventory.meta.BlockStateMeta;

18import org.bukkit.inventory.meta.ItemMeta;

19

20public class SpawnerModule implements Listener

21{

22 @EventHandler

23 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

29 if(block.getType() == Material.SPAWNER && itemInMainHand.containsEnchantment(Enchantment.SILK_TOUCH))

30 {

31 final CreatureSpawner creatureSpawner = (CreatureSpawner) block.getState();

32 final ItemStack spawner = new ItemStack(Material.SPAWNER);

33 final ItemMeta spawnerItemMeta = spawner.getItemMeta();

34 final ArrayList<String> spawneritemLore = new ArrayList<String>();

35 final Location blockLocation = block.getLocation();

36 final BlockStateMeta spawnerblockMeta = (BlockStateMeta) spawner.getItemMeta();

37

38 spawneritemLore.add(creatureSpawner.getSpawnedType().toString());

39 spawnerItemMeta.setLore(spawneritemLore);

40 spawner.setItemMeta(spawnerItemMeta);

41 spawnerblockMeta.setBlockState(creatureSpawner);

42 blockLocation.getWorld().dropItemNaturally(blockLocation, spawner);

43 block.setType(Material.AIR);

44 event.setExpToDrop(0);

45 }

46 }

47

48 @EventHandler

49 public void onPlaceEvent(BlockPlaceEvent event)

50 {

51 final Block block = event.getBlockPlaced();

52 final ItemStack item = event.getItemInHand();

53 final ItemMeta itemMeta = item.getItemMeta();

54

55 if(itemMeta.getLore() == null)

56 {

57 return;

58 }

59

60 if(block.getType() == Material.SPAWNER)

61 {

62 final CreatureSpawner creatureSpawnerBlock = (CreatureSpawner) block.getState();

63 final EntityType entityType = EntityType.valueOf(itemMeta.getLore().get(0));

64

65 creatureSpawnerBlock.setSpawnedType(entityType);

66 creatureSpawnerBlock.update();

67 }

68 }

69}