diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd258cd..921f399 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 2.1.1
+- Improved void saving in 1.17+
+
## 2.1.0
- Tridents will not be instantly returned when hitting Y=0
- Fixed players without "bettertridents.savevoid" permissions being able to use the "void-saving" feature anyway
diff --git a/pom.xml b/pom.xml
index 0c3d353..6f3bb98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
de.jeff_media
BetterTridents
BetterTridents
- 2.1.0
+ 2.1.1
${project.name}
@@ -135,7 +135,7 @@
org.spigotmc
spigot
- 1.16.5-R0.1-SNAPSHOT
+ 1.17-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/de/jeff_media/bettertridents/tasks/WatchTrident.java b/src/main/java/de/jeff_media/bettertridents/tasks/WatchTrident.java
index 2a77677..e03a94b 100644
--- a/src/main/java/de/jeff_media/bettertridents/tasks/WatchTrident.java
+++ b/src/main/java/de/jeff_media/bettertridents/tasks/WatchTrident.java
@@ -19,8 +19,18 @@ public class WatchTrident extends BukkitRunnable {
static {
int fieldCount = 0;
+ Class> entityThrownTridentClass = null;
try {
- final Class> entityThrownTridentClass = ReflUtil.getNMSClass("EntityThrownTrident");
+ entityThrownTridentClass = ReflUtil.getNMSClass("EntityThrownTrident");
+ } catch (Throwable ignored) {
+ // 1.17+
+ }
+
+ try {
+ if(entityThrownTridentClass == null) {
+ // 1.17+
+ entityThrownTridentClass = Class.forName("net.minecraft.world.entity.projectile.EntityThrownTrident");
+ }
getHandleMethod = ReflUtil.getOBCClass("entity.CraftTrident").getMethod("getHandle");
for (Field field : entityThrownTridentClass.getDeclaredFields()) {
if (field.getType() == Boolean.TYPE) {
@@ -32,6 +42,7 @@ public class WatchTrident extends BukkitRunnable {
} catch (Exception e) {
damageDealtField = null;
getHandleMethod = null;
+ e.printStackTrace();
}
if (fieldCount == 1) {