diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosivePickaxe.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosivePickaxe.java index 91a40afac..214b5f9a4 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosivePickaxe.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosivePickaxe.java @@ -26,7 +26,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class ExplosivePickaxe extends SimpleSlimefunItem implements NotPlaceable, DamageableItem { - + private String[] blacklist; private boolean damageOnUse; @@ -77,7 +77,7 @@ public class ExplosivePickaxe extends SimpleSlimefunItem impl b.breakNaturally(); } else { - for (ItemStack drop: b.getDrops()) { + for (ItemStack drop : b.getDrops(getItem())) { b.getWorld().dropItemNaturally(b.getLocation(), (b.getType().toString().endsWith("_ORE") && b.getType() != Material.IRON_ORE && b.getType() != Material.GOLD_ORE) ? new CustomItem(drop, fortune): drop); } b.setType(Material.AIR); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosiveShovel.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosiveShovel.java index df9135640..acfc28b3c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosiveShovel.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/ExplosiveShovel.java @@ -19,7 +19,7 @@ import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class ExplosiveShovel extends SimpleSlimefunItem implements NotPlaceable, DamageableItem { - + private boolean damageOnUse; public ExplosiveShovel(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, String[] keys, Object[] values) { @@ -52,7 +52,7 @@ public class ExplosiveShovel extends SimpleSlimefunItem imple b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType()); - for (ItemStack drop: b.getDrops()) { + for (ItemStack drop : b.getDrops(getItem())) { if (drop != null) { b.getWorld().dropItemNaturally(b.getLocation(), drop); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/HerculesPickaxe.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/HerculesPickaxe.java index 31b47e13c..25cc5526f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/HerculesPickaxe.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/HerculesPickaxe.java @@ -33,7 +33,7 @@ public class HerculesPickaxe extends SimpleSlimefunItem { drops.add(new CustomItem(SlimefunItems.GOLD_DUST, 2)); } else { - for (ItemStack drop: e.getBlock().getDrops()) { + for (ItemStack drop : e.getBlock().getDrops(getItem())) { drops.add(new CustomItem(drop, drop.getAmount() * 2)); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/LumberAxe.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/LumberAxe.java index f458df373..3caedc1b9 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/LumberAxe.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/LumberAxe.java @@ -44,7 +44,7 @@ public class LumberAxe extends SimpleSlimefunItem implements if (SlimefunPlugin.getProtectionManager().hasPermission(e.getPlayer(), b, ProtectableAction.BREAK_BLOCK)) { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType()); - for (ItemStack drop: b.getDrops()) { + for (ItemStack drop : b.getDrops(getItem())) { b.getWorld().dropItemNaturally(b.getLocation(), drop); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfVeinMining.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfVeinMining.java index 08b1235d9..acce5e190 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfVeinMining.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfVeinMining.java @@ -40,7 +40,7 @@ public class PickaxeOfVeinMining extends SimpleSlimefunItem { if (SlimefunPlugin.getProtectionManager().hasPermission(e.getPlayer(), b.getLocation(), ProtectableAction.BREAK_BLOCK)) { b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType()); - for (ItemStack drop: b.getDrops()) { + for (ItemStack drop : b.getDrops(getItem())) { b.getWorld().dropItemNaturally(b.getLocation(), drop.getType().isBlock() ? drop: new CustomItem(drop, fortune)); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SmeltersPickaxe.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SmeltersPickaxe.java index 890d99395..ae9717fca 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SmeltersPickaxe.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SmeltersPickaxe.java @@ -35,8 +35,8 @@ public class SmeltersPickaxe extends SimpleSlimefunItem { if (BlockStorage.hasBlockInfo(e.getBlock())) return true; if (e.getBlock().getType() == Material.PLAYER_HEAD) return true; - Collection blockDrops = e.getBlock().getDrops(); - for (ItemStack drop: blockDrops) { + Collection blockDrops = e.getBlock().getDrops(getItem()); + for (ItemStack drop : blockDrops) { if (drop != null) { ItemStack output = drop; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 5dc2dbda1..6396d922c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -1092,7 +1092,8 @@ public final class SlimefunSetup { new ItemStack[] {SlimefunItems.SOLAR_PANEL, new ItemStack(Material.CHEST), SlimefunItems.SOLAR_PANEL, SlimefunItems.GOLD_24K_BLOCK, new ItemStack(Material.DISPENSER), SlimefunItems.GOLD_24K_BLOCK, SlimefunItems.GOLD_24K_BLOCK, new ItemStack(Material.HOPPER), SlimefunItems.GOLD_24K_BLOCK}, new ItemStack[0], BlockFace.SELF) .register(true, new MultiBlockInteractionHandler() { - + // Determines the drops an Advanced Digital Miner will get + private final ItemStack EFFECTIVE_PICKAXE = new ItemStack(Material.DIAMOND_PICKAXE); @Override public boolean onInteract(final Player p, MultiBlock mb, final Block b) { if (mb.isMultiBlock(SlimefunItem.getByID("ADVANCED_DIGITAL_MINER"))) { @@ -1128,7 +1129,7 @@ public final class SlimefunSetup { else if (ore == Material.NETHER_QUARTZ_ORE) drop = new ItemStack(Material.QUARTZ, 4); else if (ore == Material.LAPIS_ORE) drop = new ItemStack(Material.LAPIS_LAZULI, 12); else { - for (ItemStack drops: ores.get(0).getBlock().getDrops()) { + for (ItemStack drops: ores.get(0).getBlock().getDrops(EFFECTIVE_PICKAXE)) { if (!drops.getType().isBlock()) drop = new CustomItem(drops, 2); } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/androids/ProgrammableAndroid.java b/src/main/java/me/mrCookieSlime/Slimefun/androids/ProgrammableAndroid.java index 719d6b028..f004ba676 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/androids/ProgrammableAndroid.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/androids/ProgrammableAndroid.java @@ -74,6 +74,9 @@ import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; public abstract class ProgrammableAndroid extends SlimefunItem implements InventoryBlock { + // Determines the drops a miner android will get + private static final ItemStack EFFECTIVE_PICKAXE = new ItemStack(Material.DIAMOND_PICKAXE); + private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 24, 25, 26, 27, 33, 35, 36, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}; private static final int[] border_out = {10, 11, 12, 13, 14, 19, 23, 28, 32, 37, 38, 39, 40, 41}; @@ -497,7 +500,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem implements Invent } private void mine(Block b, BlockMenu menu, Block block) { - Collection drops = block.getDrops(); + Collection drops = block.getDrops(EFFECTIVE_PICKAXE); if (!MaterialCollections.getAllUnbreakableBlocks().contains(block.getType()) && !drops.isEmpty() && SlimefunPlugin.getProtectionManager().hasPermission(Bukkit.getOfflinePlayer(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner"))), block.getLocation(), ProtectableAction.BREAK_BLOCK)) { String item = BlockStorage.checkID(block); @@ -532,7 +535,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem implements Invent private void movedig(Block b, BlockMenu menu, BlockFace face, Block block) { - Collection drops = block.getDrops(); + Collection drops = block.getDrops(EFFECTIVE_PICKAXE); if (!MaterialCollections.getAllUnbreakableBlocks().contains(block.getType()) && !drops.isEmpty() && SlimefunPlugin.getProtectionManager().hasPermission(Bukkit.getOfflinePlayer(UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner"))), block.getLocation(), ProtectableAction.BREAK_BLOCK)) { SlimefunItem item = BlockStorage.check(block);