diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java b/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java index c1017e60..d7f66e0d 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/DefinedPacket.java @@ -325,9 +325,18 @@ public abstract class DefinedPacket public static void writeTag(Tag tag, ByteBuf output, int protocolVersion) { + DataOutputStream out = new DataOutputStream( new ByteBufOutputStream( output ) ); try { - tag.write( new DataOutputStream( new ByteBufOutputStream( output ) ) ); + if ( tag instanceof SpecificTag ) + { + SpecificTag specificTag = (SpecificTag) tag; + specificTag.writeType( out ); + specificTag.write( out ); + } else + { + tag.write( out ); + } } catch ( IOException ex ) { throw new RuntimeException( "Exception writing tag", ex );