sync hotbar slot on login

This commit is contained in:
p2r3
2025-08-12 04:04:41 +03:00
parent 269e8346eb
commit d933ec77ac
3 changed files with 13 additions and 0 deletions

1
main.c
View File

@@ -67,6 +67,7 @@ void handlePacket (int client_fd, int length, int packet_id) {
for (uint8_t i = 0; i < 82; i += 2) {
sc_setContainerSlot(client_fd, 0, serverSlotToClientSlot(i / 2), inventory[i + 1], inventory[i]);
}
sc_setHeldItem(client_fd, *(inventory - 1));
sc_setDefaultSpawnPosition(client_fd, 8, 80, 8);
sc_startWaitingForChunks(client_fd);

View File

@@ -545,6 +545,17 @@ int cs_setHeldItem (int client_fd) {
return 0;
}
// S->C Set Held Item (clientbound)
int sc_setHeldItem (int client_fd, uint8_t slot) {
writeVarInt(client_fd, sizeVarInt(0x62) + 1);
writeVarInt(client_fd, 0x62);
writeByte(client_fd, slot);
return 0;
}
// S->C Registry Data (Multiple packets)
int sc_registries (int client_fd) {

View File

@@ -23,6 +23,7 @@ int sc_setCenterChunk (int client_fd, int x, int y);
int sc_chunkDataAndUpdateLight (int client_fd, int _x, int _z);
int sc_keepAlive (int client_fd);
int sc_setContainerSlot (int client_fd, int container, uint16_t slot, uint8_t count, uint8_t item);
int sc_setHeldItem (int client_fd, uint8_t slot);
int sc_registries(int client_fd);
#endif