package me.neznamy.tab.platforms.velocity.protocol; import com.velocitypowered.api.network.ProtocolVersion; import com.velocitypowered.proxy.connection.MinecraftSessionHandler; import com.velocitypowered.proxy.protocol.MinecraftPacket; import com.velocitypowered.proxy.protocol.ProtocolUtils; import io.netty.buffer.ByteBuf; public class ScoreboardScore implements MinecraftPacket { private String itemName; private byte action; private String scoreName; private int value; public ScoreboardScore() { } public ScoreboardScore(final String itemName, final byte action, final String scoreName, final int value) { this.itemName = itemName; this.action = action; this.scoreName = scoreName; this.value = value; } @Override public void decode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) { itemName = ProtocolUtils.readString(buf); action = buf.readByte(); if (version.getProtocol() >= ProtocolVersion.MINECRAFT_1_8.getProtocol()) { scoreName = ProtocolUtils.readString(buf); if (action != 1) { value = ProtocolUtils.readVarInt(buf); } } else if (action != 1) { scoreName = ProtocolUtils.readString(buf); value = buf.readInt(); } } @Override public void encode(ByteBuf buf, ProtocolUtils.Direction direction, ProtocolVersion version) { ProtocolUtils.writeString(buf, itemName); buf.writeByte(action); if (version.getProtocol() >= ProtocolVersion.MINECRAFT_1_8.getProtocol()) { ProtocolUtils.writeString(buf, scoreName); if (action != 1) { ProtocolUtils.writeVarInt(buf, value); } } else if (action != 1) { ProtocolUtils.writeString(buf, scoreName); buf.writeInt(value); } } @Override public boolean handle(MinecraftSessionHandler handler) { return false; } }