ScoreboardUpdateScorePacket
This commit is contained in:
@@ -59,6 +59,7 @@ public enum State {
|
|||||||
ScoreboardDisplayPacket.class, 0x3B,
|
ScoreboardDisplayPacket.class, 0x3B,
|
||||||
ScoreboardObjectivePacket.class, 0x42,
|
ScoreboardObjectivePacket.class, 0x42,
|
||||||
TeamsPacket.class, 0x44,
|
TeamsPacket.class, 0x44,
|
||||||
|
ScoreboardUpdateScorePacket.class, 0x45,
|
||||||
SpawnPositionPacket.class, 0x46,
|
SpawnPositionPacket.class, 0x46,
|
||||||
ChunkDataPacket.class, 0x20,
|
ChunkDataPacket.class, 0x20,
|
||||||
PlayerAbilitiesPacket.class,0x2C,
|
PlayerAbilitiesPacket.class,0x2C,
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package mc.protocol.packets.server;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import mc.protocol.io.NetByteBuf;
|
||||||
|
import mc.protocol.packets.ServerSidePacket;
|
||||||
|
import mc.protocol.utils.ScoreboardUpdateScoreAction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update score packet.
|
||||||
|
*
|
||||||
|
* <p>Структура пакета</p>
|
||||||
|
* <pre>
|
||||||
|
* | FIELD | TYPE | NOTES |
|
||||||
|
* |-----------------|-------------|--------------------------------------------------- |
|
||||||
|
* | Entity Name | String (40) | Сущность, которой принадлежит счет (score). |
|
||||||
|
* | | | Для Игроков - это ник |
|
||||||
|
* | | | Для других сущностей - это UUID |
|
||||||
|
* | Action | Byte | 0 - создать или обновить счет (score); 1 - удалить |
|
||||||
|
* | Objective Name | String (16) | Имя сущности, которой принадлежит счет (score) |
|
||||||
|
* | Value | VarInt | Если "Action" = 0. Значение счета (score) |
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=14204#Update_Score" target="_top">Update Score</a>
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ScoreboardUpdateScorePacket implements ServerSidePacket {
|
||||||
|
|
||||||
|
private String entityName;
|
||||||
|
private ScoreboardUpdateScoreAction action;
|
||||||
|
private String entityDisplayName;
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeSelf(NetByteBuf netByteBuf) {
|
||||||
|
netByteBuf.writeString(this.entityName);
|
||||||
|
netByteBuf.writeByte(this.action.getCode());
|
||||||
|
netByteBuf.writeString(this.entityDisplayName);
|
||||||
|
|
||||||
|
if (ScoreboardUpdateScoreAction.CREATE_OR_UPDATE.equals(this.action)) {
|
||||||
|
netByteBuf.writeVarInt(this.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package mc.protocol.utils;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public enum ScoreboardUpdateScoreAction {
|
||||||
|
CREATE_OR_UPDATE(0),
|
||||||
|
REMOVE(1);
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final int code;
|
||||||
|
}
|
||||||
@@ -162,6 +162,13 @@ public class PacketHandler {
|
|||||||
|
|
||||||
context.send(teamsPacket_Add);
|
context.send(teamsPacket_Add);
|
||||||
|
|
||||||
|
var scoreboardUpdateScorePacket = new ScoreboardUpdateScorePacket();
|
||||||
|
scoreboardUpdateScorePacket.setEntityName(teamsPacket_Create.getPrefix() + playerName + teamsPacket_Create.getSuffix());
|
||||||
|
scoreboardUpdateScorePacket.setEntityDisplayName(playerName);
|
||||||
|
scoreboardUpdateScorePacket.setAction(ScoreboardUpdateScoreAction.CREATE_OR_UPDATE);
|
||||||
|
|
||||||
|
context.send(scoreboardUpdateScorePacket);
|
||||||
|
|
||||||
context.flushSending();
|
context.flushSending();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user