From 1003d9e96b7be78e32be4f43f33d27dacd91cf22 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Fri, 10 Apr 2015 16:16:19 -0400 Subject: [PATCH] Players are now rechecked for ban matches on an ID change. --- Release/Plugins/RenX.Core.lib | Bin 110530 -> 110530 bytes RenX.Core/RenX_Server.cpp | 44 +++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index 17ddf3028ac9bfc9182a91897dcfef98862b3480..a7391881adc2052bafbdf6d183f798f05d84032d 100644 GIT binary patch delta 7683 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 HGLQcP^yZj* delta 7683 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 I(o&EA0`(=fNB{r; diff --git a/RenX.Core/RenX_Server.cpp b/RenX.Core/RenX_Server.cpp index efc2e85..d0596d5 100644 --- a/RenX.Core/RenX_Server.cpp +++ b/RenX.Core/RenX_Server.cpp @@ -878,6 +878,27 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) isBot = false; id = idToken.asInt(10); }; + auto banCheck = [this](const RenX::PlayerInfo *player) + { + const Jupiter::ArrayList &entries = RenX::banDatabase->getEntries(); + RenX::BanDatabase::Entry *entry; + for (size_t i = 0; i != entries.size(); i++) + { + entry = entries.get(i); + if (entry->active) + { + if (entry->length != 0 && entry->timestamp + entry->length < time(0)) + banDatabase->deactivate(i); + else if (this->localSteamBan && entry->steamid != 0 && entry->steamid == player->steamid) + return true; + else if (this->localIPBan && entry->ip != 0 && entry->ip == player->ip32) + return true; + else if (this->localNameBan && entry->name.isEmpty() == false && entry->name.equalsi(player->name)) + return true; + } + } + return false; + }; auto getPlayerOrAdd = [&](const Jupiter::ReadableString &name, int id, RenX::TeamType team, bool isBot, uint64_t steamid, const Jupiter::ReadableString &ip) { bool checkBans = false; @@ -920,25 +941,8 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) } r->team = team; if (checkBans) - { - const Jupiter::ArrayList &entries = RenX::banDatabase->getEntries(); - RenX::BanDatabase::Entry *entry; - for (size_t i = 0; i != entries.size(); i++) - { - entry = entries.get(i); - if (entry->active) - { - if (entry->length != 0 && entry->timestamp + entry->length < time(0)) - banDatabase->deactivate(i); - else if (this->localSteamBan && entry->steamid != 0 && entry->steamid == r->steamid) - this->kickPlayer(r); - else if (this->localIPBan && entry->ip != 0 && entry->ip == r->ip32) - this->kickPlayer(r); - else if (this->localNameBan && entry->name.isEmpty() == false && entry->name.equalsi(r->name)) - this->kickPlayer(r); - } - } - } + if (banCheck(r)) + this->kickPlayer(r); return r; }; auto parseGetPlayerOrAdd = [&parsePlayerData, &getPlayerOrAdd](const Jupiter::ReadableString &token) @@ -1729,6 +1733,8 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) if (player != nullptr) { player->id = buff.getToken(3, RenX::DelimC).asInt(); + if (banCheck(player)) + this->kickPlayer(player); for (size_t i = 0; i < xPlugins.size(); i++) xPlugins.get(i)->RenX_OnIDChange(this, player, oldID); }