From 7951c4c893c3151c25201d59f5a480821d657fc0 Mon Sep 17 00:00:00 2001 From: Smart123s <28480228+Smart123s@users.noreply.github.com> Date: Sat, 29 Jan 2022 10:48:27 +0100 Subject: [PATCH] Fix plugin startup without ProtocolLib installed Referencing `ProtocolLibrary` in FastLoginBukkit (even in an unreachable code block) causes Bukkit servers to throw a NoClassDefFoundError on startup. Fix based on commit 0082cc65368a13c51a33a0c54801d6c65eb289a9 --- .../games647/fastlogin/bukkit/FastLoginBukkit.java | 3 +-- .../bukkit/listener/protocollib/ManualNameChange.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java index 880e5e61..ca8a9279 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java @@ -25,7 +25,6 @@ */ package com.github.games647.fastlogin.bukkit; -import com.comphenix.protocol.ProtocolLibrary; import com.github.games647.fastlogin.bukkit.command.CrackedCommand; import com.github.games647.fastlogin.bukkit.command.PremiumCommand; import com.github.games647.fastlogin.bukkit.listener.ConnectionListener; @@ -121,7 +120,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin @@ -57,6 +59,14 @@ public class ManualNameChange extends PacketAdapter { this.floodgate = floodgate; } + public static void register(FastLoginBukkit plugin, FloodgateService floodgate) { + // they will be created with a static builder, because otherwise it will throw a NoClassDefFoundError + ProtocolLibrary.getProtocolManager() + .getAsynchronousManager() + .registerAsyncHandler(new ManualNameChange(plugin, floodgate)) + .start(); + } + @Override public void onPacketReceiving(PacketEvent packetEvent) { PacketContainer packet = packetEvent.getPacket();