Minestom/src/main/java/net/minestom/server/network/packet/server/play/UpdateScorePacket.java

40 lines
1.4 KiB
Java

package net.minestom.server.network.packet.server.play;
import net.minestom.server.network.packet.server.ServerPacket;
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
import net.minestom.server.utils.binary.BinaryReader;
import net.minestom.server.utils.binary.BinaryWriter;
import org.jetbrains.annotations.NotNull;
public record UpdateScorePacket(@NotNull String entityName, byte action,
@NotNull String objectiveName, int value) implements ServerPacket {
public UpdateScorePacket(BinaryReader reader) {
this(read(reader));
}
private UpdateScorePacket(UpdateScorePacket packet) {
this(packet.entityName, packet.action, packet.objectiveName, packet.value);
}
private static UpdateScorePacket read(BinaryReader reader) {
var entityName = reader.readSizedString();
var action = reader.readByte();
var objectiveName = reader.readSizedString();
var value = action != 1 ? reader.readVarInt() : 0;
return new UpdateScorePacket(entityName, action, objectiveName, value);
}
@Override
public void write(@NotNull BinaryWriter writer) {
writer.writeSizedString(entityName);
writer.writeByte(action);
writer.writeSizedString(objectiveName);
if (action != 1) writer.writeVarInt(value);
}
@Override
public int getId() {
return ServerPacketIdentifier.UPDATE_SCORE;
}
}