A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
17
usage: /setwarp <name>18
warp:19
usage: /warp <name>20
slime:21
usage: /slime22
r:23
usage: /r24
info:
21
import poppy.modules.DoubleDoorModule;22
import poppy.modules.CommonModule;23
import poppy.modules.LeavesDecayModule;24
import poppy.modules.SpawnerModule;27
public class Main extends JavaPlugin
36
private AutoWorkbenchModule autoWorkbenchModule;37
private LeavesDecayModule leavesDecayModule;38
private CauldronModule cauldronModule;39
private SpawnerModule spawnerModule;41
@Override42
public void onEnable()
64
cauldronModule = new CauldronModule(this);65
pluginManager.registerEvents(cauldronModule, this);67
spawnerModule = new SpawnerModule();68
pluginManager.registerEvents(spawnerModule, this);69
}71
@Override
101
return setHome(player, args);102
case "setwarp":103
return setWarppoint(player, args);104
case "slime":105
return ifSlimeChunk(player, args);106
case "r":107
return reload(player, args);108
default:109
return false;110
}
299
return true;300
}302
private boolean ifSlimeChunk(final Player player, final String[] args)303
{304
boolean isSlimeChunk = player.getLocation().getChunk().isSlimeChunk();306
if(isSlimeChunk)307
{308
player.sendMessage(ChatColor.YELLOW + "This is a slime chunk!");309
return true;310
}311
else312
{313
player.sendMessage(ChatColor.RED + "This is not a slime chunk!");314
return true;315
}316
}318
private boolean reload(final Player player, final String[] args)319
{320
player.chat("/reload confirm");321
return true;322
}323
}
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();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();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
}48
@EventHandler49
public void onPlaceEvent(BlockPlaceEvent event)50
{51
final Block block = event.getBlockPlaced();52
final ItemStack item = event.getItemInHand();53
final ItemMeta itemMeta = item.getItemMeta();55
if(itemMeta.getLore() == null)56
{57
return;58
}60
if(block.getType() == Material.SPAWNER)61
{62
final CreatureSpawner creatureSpawnerBlock = (CreatureSpawner) block.getState();63
final EntityType entityType = EntityType.valueOf(itemMeta.getLore().get(0));65
creatureSpawnerBlock.setSpawnedType(entityType);66
creatureSpawnerBlock.update();67
}68
}69
}