summaryrefslogtreecommitdiffstats
path: root/game/server/sessions.cc
diff options
context:
space:
mode:
Diffstat (limited to 'game/server/sessions.cc')
-rw-r--r--game/server/sessions.cc10
1 files changed, 9 insertions, 1 deletions
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