2020-04-24 03:25:58 +02:00
|
|
|
package net.minestom.server.network.packet.server.play;
|
2019-08-19 17:04:19 +02:00
|
|
|
|
2020-04-24 03:25:58 +02:00
|
|
|
import net.minestom.server.network.packet.server.ServerPacket;
|
|
|
|
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
|
2021-02-05 21:18:40 +01:00
|
|
|
import net.minestom.server.utils.binary.BinaryReader;
|
2020-08-19 20:34:21 +02:00
|
|
|
import net.minestom.server.utils.binary.BinaryWriter;
|
2020-10-25 22:19:27 +01:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
2019-08-19 17:04:19 +02:00
|
|
|
|
2021-11-30 17:49:41 +01:00
|
|
|
public record UpdateScorePacket(@NotNull String entityName, byte action,
|
|
|
|
@NotNull String objectiveName, int value) implements ServerPacket {
|
|
|
|
public UpdateScorePacket(BinaryReader reader) {
|
|
|
|
this(read(reader));
|
|
|
|
}
|
2019-08-19 17:04:19 +02:00
|
|
|
|
2021-11-30 17:49:41 +01:00
|
|
|
private UpdateScorePacket(UpdateScorePacket packet) {
|
|
|
|
this(packet.entityName, packet.action, packet.objectiveName, packet.value);
|
|
|
|
}
|
2019-08-19 17:04:19 +02:00
|
|
|
|
2021-11-30 17:49:41 +01:00
|
|
|
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);
|
2021-02-05 21:18:40 +01:00
|
|
|
}
|
|
|
|
|
2019-08-19 17:04:19 +02:00
|
|
|
@Override
|
2020-10-25 22:19:27 +01:00
|
|
|
public void write(@NotNull BinaryWriter writer) {
|
2019-08-31 07:54:53 +02:00
|
|
|
writer.writeSizedString(entityName);
|
|
|
|
writer.writeByte(action);
|
|
|
|
writer.writeSizedString(objectiveName);
|
2021-11-30 17:49:41 +01:00
|
|
|
if (action != 1) writer.writeVarInt(value);
|
2021-02-05 21:18:40 +01:00
|
|
|
}
|
|
|
|
|
2019-08-19 17:04:19 +02:00
|
|
|
@Override
|
|
|
|
public int getId() {
|
2020-02-11 16:48:06 +01:00
|
|
|
return ServerPacketIdentifier.UPDATE_SCORE;
|
2019-08-19 17:04:19 +02:00
|
|
|
}
|
|
|
|
}
|