diff --git a/main.c b/main.c index fefe17f..f3edf40 100644 --- a/main.c +++ b/main.c @@ -258,6 +258,7 @@ void file_free(File file) void status_protocol(int client_fd) { + // TODO: utiliser template de gitoum pour remplir le json avec des donné dynamiquement File status_rep = read_entire_file("status_response.json"); // TODO: get VarInt byte size from int, for /*str len*/ @@ -314,22 +315,30 @@ void login_protocol(int client_fd) printf("\n[STEP] Login Success / Acknowledge\n"); - write_VarInt(client_fd, 1 /*id*/ + 16 /*uuid*/ + pseudo.len + 2 /*list len & bool*/); + MCUUID offline_uuid = {.byte = { + 0x23, 0x7b, 0xf6, 0x66, 0xb7, 0x2a, 0x6e, 0xcb, + 0x88, 0xf3, 0x4b, 0x6d, 0xfa, 0xc1, 0x1d, 0xe0, + }}; + + write_VarInt(client_fd, 1 /*id*/ + 16 /*uuid*/ + pseudo.len + 2 /*list len & bool*/ + 366 + 8 + 4); write_VarInt(client_fd, 2); - write_UUID(client_fd, uuid); + write_UUID(client_fd, offline_uuid); write_String(client_fd, (char*)pseudo.str, pseudo.len); - write_VarInt(client_fd, 0); // len list de property - // write_Boolean(client_fd, true); + write_VarInt(client_fd, 1); // len list de property + write_String(client_fd, "textures", 8); + write_String(client_fd, "ewogICJ0aW1lc3RhbXAiIDogMTczODA3MzgxMjQyOCwKICAicHJvZmlsZUlkIiA6ICJmYmMwMTJiNzExODM0OGY0ODJhZjgyOGVkYjVhZWE1NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJfTjNtMCIsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zN2ViNmM4ZmNkOGZmYzI3NzllODg4NjI5ODFiZDBlNjM1OWZiMDBhMmJmMWIxNjE5MDYxN2M1NzExOGI0YWU1IgogICAgfQogIH0KfQ", 366); + write_Boolean(client_fd, false); + write_Boolean(client_fd, true); write_entire_file("debug.hex", (File){(char*)request, req_current_byte}); send_request(client_fd); - request_len = read_VarInt(client_fd); - request_id = read_VarInt(client_fd); - printf("[MCPACKET %d] packet length: %d\n", request_id, request_len); + // request_len = read_VarInt(client_fd); + // request_id = read_VarInt(client_fd); + // printf("[MCPACKET %d] packet length: %d\n", request_id, request_len); - close_connection(client_fd); + // close_connection(client_fd); } int main() diff --git a/status_response.json b/status_response.json index b06cd32..f803483 100644 --- a/status_response.json +++ b/status_response.json @@ -8,8 +8,8 @@ "online": 2, "sample": [ { - "id": "4566e69f-c907-48ee-8d71-d7ba5aa00d20", "name": "thinkofdeath", + "id": "4566e69f-c907-48ee-8d71-d7ba5aa00d20", "name": "Le caca est cuit ?", "id": "83e2e372-1df3-485d-a360-d9c4caf8b8c4" }