diff --git a/Examples/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java b/Examples/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java index 12e4bc8c..91835ad6 100644 --- a/Examples/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java +++ b/Examples/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java @@ -187,10 +187,20 @@ public abstract class TinyProtocol { public final void close() { if (!closed) { closed = true; - + // Compute this once + final String handlerName = getHandlerName(); + // Remove our handlers for (Player player : plugin.getServer().getOnlinePlayers()) { - getChannel(player).pipeline().remove(getHandlerName()); + final Channel channel = getChannel(player); + + // See ChannelInjector in ProtocolLib, line 590 + channel.eventLoop().execute(new Runnable() { + @Override + public void run() { + channel.pipeline().remove(handlerName); + } + }); } // Clean up Bukkit