diff --git a/lib/MMOLib.jar b/lib/MMOLib.jar index 2930648f..ab582917 100644 Binary files a/lib/MMOLib.jar and b/lib/MMOLib.jar differ diff --git a/pom.xml b/pom.xml index 6c894b38..72b10ae9 100644 --- a/pom.xml +++ b/pom.xml @@ -93,7 +93,7 @@ net.Indyuce MMOLib - 1.6 + 1.7.3 system ${basedir}/lib/MMOLib.jar diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java index 4c20b035..c6c7668b 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/Tool.java @@ -1,5 +1,6 @@ package net.Indyuce.mmoitems.api.interaction; +import net.mmogroup.mmolib.UtilityMethods; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; @@ -30,12 +31,11 @@ public class Tool extends UseItem { if (getNBTItem().getBoolean("MMOITEMS_AUTOSMELT")) if (block.getType() == Material.IRON_ORE || block.getType() == Material.GOLD_ORE) { - ItemStack item = new ItemStack(Material.valueOf(block.getType().name().replace("_ORE", "") + "_INGOT")); + ItemStack item = new ItemStack(Material.valueOf(block.getType().name().replace("_ORE", "_INGOT"))); - Location loc = block.getLocation().add(.5, 0, .5); + UtilityMethods.dropItemNaturally(block.getLocation(), item); + block.getWorld().spawnParticle(Particle.CLOUD, block.getLocation().add(.5, .5, .5), 0); block.setType(Material.AIR); - block.getWorld().dropItemNaturally(loc, item); - block.getWorld().spawnParticle(Particle.CLOUD, loc.add(0, .5, 0), 0); cancel = true; } diff --git a/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java b/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java index 8eddae6f..4585b550 100644 --- a/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java +++ b/src/main/java/net/Indyuce/mmoitems/manager/DropTableManager.java @@ -7,15 +7,14 @@ import net.Indyuce.mmoitems.api.droptable.DropTable; import net.Indyuce.mmoitems.api.event.CustomBlockDropEvent; import net.Indyuce.mmoitems.api.player.PlayerData; import net.Indyuce.mmoitems.listener.CustomBlockListener; +import net.mmogroup.mmolib.UtilityMethods; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; -import org.bukkit.entity.Item; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -113,7 +112,7 @@ public class DropTableManager implements Listener, Reloadable { return; for (ItemStack drop : drops) - drop(block, drop); + UtilityMethods.dropItemNaturally(block.getLocation(), drop); }, 2); } @@ -121,38 +120,10 @@ public class DropTableManager implements Listener, Reloadable { final Material type = block.getType(); Bukkit.getScheduler().runTaskLater(MMOItems.plugin, () -> { for (ItemStack drop : blocks.get(type).read(PlayerData.get(player), hasSilkTouchTool(player))) - drop(block, drop); + UtilityMethods.dropItemNaturally(block.getLocation(), drop); }, 2); } } - - private void drop(Block block, ItemStack drop) { - Block above = block.getRelative(BlockFace.UP); - if(above.isEmpty() || above.isLiquid() || above.isPassable()) { - Item item = block.getWorld().dropItemNaturally(block.getLocation().add(.5, .1, .5), drop); - item.setVelocity(item.getVelocity().multiply(0.5f)); - } - else block.getWorld().dropItemNaturally(block.getLocation().add(.5, 0, .5), drop); - } - - // public Collection getBlockDrops(Block block, Player player) { - // final Material type = block.getType(); - // - // CustomBlock custom = CustomBlock.getFromData(block.getBlockData()) ; - // if (custom != null) { - // if (customBlocks.containsKey(custom.getId())) { - // if (CustomBlockListener.getPickaxePower(player) >= - // custom.getRequiredPower()) { - // return customBlocks.get(custom.getId()).read(hasSilkTouchTool(player)); - // } - // } - // } else { - // if (blocks.containsKey(type)) { - // return blocks.get(type).read(hasSilkTouchTool(player)); - // } - // } - // return block.getDrops(player.getInventory().getItemInMainHand()); - // } public boolean hasSilkTouchTool(Player player) { ItemStack item = player.getInventory().getItemInMainHand();