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) {