--- miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/PowerMiner.java 2011/04/24 10:35:30 1386 +++ miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/PowerMiner.java 2011/04/25 21:22:56 1392 @@ -44,21 +44,33 @@ } - protected int getDropBlock(Block b) { + protected ItemStack getDropItems(Block b) { switch (b.getTypeId()) { case 1: //stone drops cobblestone - return 4; + return new ItemStack(4,1); case 2: case 3: - return 0; //instabreak already drops dirt + return null; //instabreak already drops dirt + case 12: + return null; //instabreak drops sand case 13: - return 0; //don't drop gravel - case 16: //coal ore drops coal - return 263; + return null; //don't drop gravel + case 16: //coal ore drops coal + return new ItemStack(263,1); + case 17: + return null; //instabreak drops wood + case 18: + return (rand.nextInt(16) == 0) ? new ItemStack(6,1,(short)0, b.getData() ) : null; //leaves has 6.25% chance of dropping sapplings + case 21: //lapis lazuli + int count = rand.nextInt(5) + 4; + return new ItemStack(351,count,(short)0, (byte)4); case 56: //diamond ore drops diamond - return 264; + return new ItemStack(264,1); + case 73: + case 74: + return new ItemStack(331,4); //redstone ore (both glowing and non-glowing) drops 4 redstone default: - return b.getTypeId(); //don't throw any others + return new ItemStack(b.getTypeId(), 1); } } @@ -70,20 +82,32 @@ if ( miners.contains(p.getName()) ) { if (p.getItemInHand().getType() == Material.FEATHER) { - event.setInstaBreak(true); Block b = event.getBlock(); - int blockid = getDropBlock(b); - if (blockid != 0) { - ItemStack stack = new ItemStack(blockid, 1); - b.getWorld().dropItemNaturally(b.getLocation(), stack); + if (b.getTypeId() == 7) //don't remove bedrock + return; + if (b.getTypeId() == 90) //don't break portal + return; + + event.setInstaBreak(true); + + + ItemStack items = getDropItems(b); + + + if (items != null) { + b.getWorld().dropItemNaturally(b.getLocation(), items); } } } } + public PlayerQuitListener getPlayerQuitListener() { + return new PlayerQuitListener(); + } + public class PlayerQuitListener extends PlayerListener { @Override