diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..d5bd7b3
Binary files /dev/null and b/.DS_Store differ
diff --git a/UltimateTimber/.DS_Store b/UltimateTimber/.DS_Store
new file mode 100644
index 0000000..8d3d051
Binary files /dev/null and b/UltimateTimber/.DS_Store differ
diff --git a/UltimateTimber/Core/.DS_Store b/UltimateTimber/Core/.DS_Store
new file mode 100644
index 0000000..df882a9
Binary files /dev/null and b/UltimateTimber/Core/.DS_Store differ
diff --git a/UltimateTimber/Core/pom.xml b/UltimateTimber/Core/pom.xml
index 33b317b..af0e119 100644
--- a/UltimateTimber/Core/pom.xml
+++ b/UltimateTimber/Core/pom.xml
@@ -3,7 +3,7 @@
com.songoda
UltimateTimber
- 2.2.4
+ 2.2.5
../../
diff --git a/UltimateTimber/Plugin/pom.xml b/UltimateTimber/Plugin/pom.xml
index cd838a4..b7941d0 100644
--- a/UltimateTimber/Plugin/pom.xml
+++ b/UltimateTimber/Plugin/pom.xml
@@ -3,7 +3,7 @@
com.songoda
UltimateTimber
- 2.2.4
+ 2.2.5
../../
@@ -48,7 +48,7 @@
org.apache.maven.plugins
maven-shade-plugin
- 3.1.0
+ 3.3.0-SNAPSHOT
shaded
@@ -94,12 +94,17 @@
-
+
+
+ apache.snapshots
+ https://repository.apache.org/snapshots/
+
+
org.spigotmc
spigot
- 1.16.2
+ 1.17
provided
diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeAnimationManager.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeAnimationManager.java
index 19cbcc7..10a6f4f 100644
--- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeAnimationManager.java
+++ b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeAnimationManager.java
@@ -1,6 +1,7 @@
package com.songoda.ultimatetimber.manager;
import com.songoda.core.compatibility.CompatibleMaterial;
+import com.songoda.core.compatibility.ServerVersion;
import com.songoda.ultimatetimber.UltimateTimber;
import com.songoda.ultimatetimber.animation.TreeAnimation;
import com.songoda.ultimatetimber.animation.TreeAnimationCrumble;
@@ -58,12 +59,14 @@ public class TreeAnimationManager extends Manager implements Listener, Runnable
Set> groundedBlocks = new HashSet<>();
for (ITreeBlock fallingTreeBlock : treeAnimation.getFallingTreeBlocks().getAllTreeBlocks()) {
FallingBlock fallingBlock = fallingTreeBlock.getBlock();
- if (fallingBlock.isDead())
+ if (fallingBlock.isDead() || ServerVersion.isServerVersionAtLeast(ServerVersion.V1_17) && fallingBlock.isOnGround())
groundedBlocks.add(fallingTreeBlock);
}
for (ITreeBlock fallingBlock : groundedBlocks) {
this.runFallingBlockImpact(treeAnimation, fallingBlock);
+ if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_17))
+ fallingBlock.getBlock().remove();
treeAnimation.getFallingTreeBlocks().remove(fallingBlock);
}
}
diff --git a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java
index 804fbd9..7ceec43 100644
--- a/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java
+++ b/UltimateTimber/Plugin/src/com/songoda/ultimatetimber/manager/TreeFallManager.java
@@ -5,6 +5,7 @@ import com.songoda.core.hooks.JobsHook;
import com.songoda.core.hooks.LogManager;
import com.songoda.core.hooks.McMMOHook;
import com.songoda.core.utils.ItemUtils;
+import com.songoda.core.world.SItemStack;
import com.songoda.ultimatetimber.UltimateTimber;
import com.songoda.ultimatetimber.events.TreeFallEvent;
import com.songoda.ultimatetimber.events.TreeFellEvent;
@@ -24,6 +25,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 {
@@ -115,7 +117,7 @@ public class TreeFallManager extends Manager implements Listener {
if (!treeDefinitionManager.isToolValidForTreeDefinition(detectedTree.getTreeDefinition(), tool))
return;
- int toolDamage = this.getToolDamage(detectedTree.getDetectedTreeBlocks(), tool.containsEnchantment(Enchantment.SILK_TOUCH));
+ short toolDamage = this.getToolDamage(detectedTree.getDetectedTreeBlocks(), tool.containsEnchantment(Enchantment.SILK_TOUCH));
if (!ConfigurationManager.Setting.PROTECT_TOOL.getBoolean() && !ItemUtils.hasEnoughDurability(tool, toolDamage))
return;
@@ -141,7 +143,7 @@ public class TreeFallManager extends Manager implements Listener {
boolean isCreative = player.getGameMode().equals(GameMode.CREATIVE);
if (!isCreative)
- ItemUtils.addDamage(player, tool, toolDamage);
+ new SItemStack(tool).addDamage(player, toolDamage);
if (ConfigurationManager.Setting.HOOKS_APPLY_EXPERIENCE.getBoolean()) {
McMMOHook.addWoodcutting(player, detectedTree.getDetectedTreeBlocks().getAllTreeBlocks().stream()
@@ -180,14 +182,14 @@ public class TreeFallManager extends Manager implements Listener {
}
}
- private int getToolDamage(TreeBlockSet treeBlocks, boolean hasSilkTouch) {
+ private short getToolDamage(TreeBlockSet treeBlocks, boolean hasSilkTouch) {
if (!ConfigurationManager.Setting.REALISTIC_TOOL_DAMAGE.getBoolean())
return 1;
if (ConfigurationManager.Setting.APPLY_SILK_TOUCH_TOOL_DAMAGE.getBoolean() && hasSilkTouch) {
- return treeBlocks.size();
+ return (short) treeBlocks.size();
} else {
- return treeBlocks.getLogBlocks().size();
+ return (short) treeBlocks.getLogBlocks().size();
}
}
diff --git a/pom.xml b/pom.xml
index 72ab0c4..b3aa9f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
com.songoda
UltimateTimber
- 2.2.4
+ 2.2.5
4.0.0
pom