diff --git a/NEXT_RELEASE_CHANGELOG.md b/NEXT_RELEASE_CHANGELOG.md index e69de29bb..7fae2a44a 100644 --- a/NEXT_RELEASE_CHANGELOG.md +++ b/NEXT_RELEASE_CHANGELOG.md @@ -0,0 +1 @@ +- Disabled fake player creator for < 1.16.5 due to a lack of Library Loader support on legacy versions. diff --git a/core/pom.xml b/core/pom.xml index e2bffe98e..9a43e587f 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -258,7 +258,7 @@ net.bytebuddy byte-buddy ${dependency.bytebuddy.version} - compile + provided @@ -408,10 +408,6 @@ com.github.Anon8281.universalScheduler nl.pim16aap2.bigDoors.lib.universalScheduler - - net.bytebuddy - nl.pim16aap2.bigDoors.lib.bytebuddy - diff --git a/core/src/main/java/nl/pim16aap2/bigDoors/compatibility/FakePlayerCreator.java b/core/src/main/java/nl/pim16aap2/bigDoors/compatibility/FakePlayerCreator.java index 89525db23..660418dbd 100644 --- a/core/src/main/java/nl/pim16aap2/bigDoors/compatibility/FakePlayerCreator.java +++ b/core/src/main/java/nl/pim16aap2/bigDoors/compatibility/FakePlayerCreator.java @@ -7,6 +7,7 @@ import javax.annotation.Nullable; import java.util.function.BiFunction; +import java.util.logging.Level; /** * Class used to create a fake-online player who is actually offline. @@ -36,9 +37,30 @@ public FakePlayerCreator(final BigDoors plugin) return new FakePlayerClassGenerator(plugin).getInstantiator(); } - catch (Exception e) + catch (Exception exception) { - new RuntimeException("Failed to create fake player constructor!", e).printStackTrace(); + BigDoors.get().getMyLogger().log( + "Failed to create fake player constructor! Checks for offline players will not work!", + exception + ); + return null; + } + catch (NoClassDefFoundError e) + { + boolean isByteBuddy = e.getMessage().startsWith("net/bytebuddy"); + if (isByteBuddy) + { + BigDoors.get().getMyLogger().logMessage( + Level.SEVERE, + "Could not find ByteBuddy classes. Either the Library Loader failed or you are on a legacy version that does not have it (<1.16.5). Checks for offline players will not work!" + ); + return null; + } + + BigDoors.get().getMyLogger().logMessage( + Level.SEVERE, + "Could not find class '" + e.getMessage() + "'. Checks for offline players will not work!" + ); return null; } }