diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java index 5b9b3f136..ecd610629 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java @@ -63,6 +63,12 @@ public class PluginMessage extends DeferredByteBufHolder implements MinecraftPac if (channel == null) { throw new IllegalStateException("Channel is not specified."); } + + if (refCnt() == 0) { + throw new IllegalStateException("Plugin message contents for " + this.channel + + " freed too many times."); + } + if (version.compareTo(ProtocolVersion.MINECRAFT_1_13) >= 0) { ProtocolUtils.writeString(buf, transformLegacyToModernChannel(this.channel)); } else {