From daa4e8dcc2bb7cde1efdea7e819eaf919f71b41e Mon Sep 17 00:00:00 2001 From: underscore11code Date: Mon, 26 Apr 2021 20:01:28 -0700 Subject: [PATCH] Respect Unbreaking --- .../ultimatetimber/manager/TreeFallManager.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java index 804fbd9..eabf82a 100644 --- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java +++ b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java @@ -24,6 +24,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; +import java.util.Random; import java.util.stream.Collectors; public class TreeFallManager extends Manager implements Listener { @@ -140,8 +141,10 @@ public class TreeFallManager extends Manager implements Listener { boolean isCreative = player.getGameMode().equals(GameMode.CREATIVE); - if (!isCreative) - ItemUtils.addDamage(player, tool, toolDamage); + if (!isCreative) { + if (!applyUnbreaking(tool.getEnchantmentLevel(Enchantment.DURABILITY))) + ItemUtils.addDamage(player, tool, toolDamage); + } if (ConfigurationManager.Setting.HOOKS_APPLY_EXPERIENCE.getBoolean()) { McMMOHook.addWoodcutting(player, detectedTree.getDetectedTreeBlocks().getAllTreeBlocks().stream() @@ -191,4 +194,9 @@ public class TreeFallManager extends Manager implements Listener { } } + private boolean applyUnbreaking(int levels) { + if (levels == 0) return false; + return new Random().nextInt(levels + 1) > 0; + } + }