From e34a973f647bc6b7814ad1f3e837689f8478b84a Mon Sep 17 00:00:00 2001 From: untodesu Date: Sat, 22 Mar 2025 15:08:17 +0500 Subject: A bunch of pre-release fixes - Updated localization for protocol messages - Added item registry check into server-side - Slightly improved how features are stored --- game/server/sessions.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'game/server/sessions.cc') diff --git a/game/server/sessions.cc b/game/server/sessions.cc index f2e643d..58f12d4 100644 --- a/game/server/sessions.cc +++ b/game/server/sessions.cc @@ -11,6 +11,7 @@ #include "shared/dimension.hh" #include "shared/factory.hh" #include "shared/head.hh" +#include "shared/item_registry.hh" #include "shared/player.hh" #include "shared/protocol.hh" #include "shared/transform.hh" @@ -56,13 +57,20 @@ static void on_login_request_packet(const protocol::LoginRequest &packet) // FIXME: calculate voxel registry checksum ahead of time // instead of figuring it out every time a new player connects - if(packet.voxel_def_checksum != voxel_registry::checksum()) { + if(packet.voxel_registry_checksum != voxel_registry::calcualte_checksum()) { protocol::Disconnect response; response.reason = "protocol.voxel_registry_checksum"; protocol::send(packet.peer, protocol::encode(response)); return; } + if(packet.item_registry_checksum != item_registry::calcualte_checksum()) { + protocol::Disconnect response; + response.reason = "protocol.item_registry_checksum"; + protocol::send(packet.peer, protocol::encode(response)); + return; + } + // Don't assign new usernames and just kick the player if // an another client using the same username is already connected // and playing; since we have a whitelist, adding "(1)" isn't feasible anymore -- cgit