+11
-47
@@ -23,25 +23,24 @@ import com.velocitypowered.api.network.ProtocolVersion;
|
|||||||
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
|
||||||
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
import com.velocitypowered.proxy.protocol.MinecraftPacket;
|
||||||
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
import com.velocitypowered.proxy.protocol.ProtocolUtils;
|
||||||
import com.velocitypowered.proxy.protocol.packet.chat.ComponentHolder;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class UpdateTeamsPacket implements MinecraftPacket {
|
public class UpdateTeamsPacket implements MinecraftPacket {
|
||||||
private String name;
|
protected String name;
|
||||||
private Mode mode;
|
protected Mode mode;
|
||||||
|
|
||||||
private Component displayName;
|
protected Component displayName;
|
||||||
private Component prefix;
|
protected Component prefix;
|
||||||
private Component suffix;
|
protected Component suffix;
|
||||||
private NameTagVisibility nameTagVisibility;
|
protected NameTagVisibility nameTagVisibility;
|
||||||
private CollisionRule collisionRule;
|
protected CollisionRule collisionRule;
|
||||||
private int color;
|
protected int color;
|
||||||
private byte friendlyFlags;
|
protected byte friendlyFlags;
|
||||||
|
|
||||||
private List<String> players;
|
protected List<String> players;
|
||||||
|
|
||||||
public UpdateTeamsPacket(String name, Mode mode, Component displayName, Component prefix, Component suffix, NameTagVisibility nameTagVisibility, CollisionRule collisionRule, int color, byte friendlyFlags, List<String> players) {
|
public UpdateTeamsPacket(String name, Mode mode, Component displayName, Component prefix, Component suffix, NameTagVisibility nameTagVisibility, CollisionRule collisionRule, int color, byte friendlyFlags, List<String> players) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@@ -71,42 +70,7 @@ public class UpdateTeamsPacket implements MinecraftPacket {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(ByteBuf byteBuf, ProtocolUtils.Direction direction, ProtocolVersion protocolVersion) {
|
public void encode(ByteBuf byteBuf, ProtocolUtils.Direction direction, ProtocolVersion protocolVersion) {
|
||||||
ProtocolUtils.writeString(byteBuf, name);
|
throw new UnsupportedOperationException("Packet is not implemented");
|
||||||
byteBuf.writeByte(mode.ordinal());
|
|
||||||
|
|
||||||
switch (mode) {
|
|
||||||
case CREATE, UPDATE:
|
|
||||||
new ComponentHolder(protocolVersion, displayName).write(byteBuf);
|
|
||||||
if (protocolVersion.lessThan(ProtocolVersion.MINECRAFT_1_13)) {
|
|
||||||
new ComponentHolder(protocolVersion, prefix).write(byteBuf);
|
|
||||||
new ComponentHolder(protocolVersion, suffix).write(byteBuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
byteBuf.writeByte(friendlyFlags);
|
|
||||||
if (protocolVersion.noLessThan(ProtocolVersion.MINECRAFT_1_21_5)) {
|
|
||||||
ProtocolUtils.writeVarInt(byteBuf, nameTagVisibility.ordinal());
|
|
||||||
ProtocolUtils.writeVarInt(byteBuf, collisionRule.ordinal());
|
|
||||||
} else {
|
|
||||||
ProtocolUtils.writeString(byteBuf, nameTagVisibility.getValue());
|
|
||||||
ProtocolUtils.writeString(byteBuf, collisionRule.getValue());
|
|
||||||
}
|
|
||||||
if (protocolVersion.greaterThan(ProtocolVersion.MINECRAFT_1_12_2)) {
|
|
||||||
ProtocolUtils.writeVarInt(byteBuf, color);
|
|
||||||
new ComponentHolder(protocolVersion, prefix).write(byteBuf);
|
|
||||||
new ComponentHolder(protocolVersion, suffix).write(byteBuf);
|
|
||||||
} else {
|
|
||||||
byteBuf.writeByte((byte) color);
|
|
||||||
}
|
|
||||||
// Fallthrough since players are at the end of the packet!
|
|
||||||
case ADD_PLAYER, REMOVE_PLAYER:
|
|
||||||
ProtocolUtils.writeVarInt(byteBuf, players.size());
|
|
||||||
for (String player : players) {
|
|
||||||
ProtocolUtils.writeString(byteBuf, player);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case REMOVE:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Mode {
|
public enum Mode {
|
||||||
|
|||||||
Reference in New Issue
Block a user