mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-08-16 16:26:26 +00:00
Report correct client minimum version to the backend (#376)
This commit is contained in:
commit
89c906232d
@ -74,7 +74,7 @@ public:
|
|||||||
static TConsole& Console() { return mConsole; }
|
static TConsole& Console() { return mConsole; }
|
||||||
static std::string ServerVersionString();
|
static std::string ServerVersionString();
|
||||||
static const Version& ServerVersion() { return mVersion; }
|
static const Version& ServerVersion() { return mVersion; }
|
||||||
static uint8_t ClientMajorVersion() { return 2; }
|
static Version ClientMinimumVersion() { return Version { 2, 2, 0 }; }
|
||||||
static std::string PPS() { return mPPS; }
|
static std::string PPS() { return mPPS; }
|
||||||
static void SetPPS(const std::string& NewPPS) { mPPS = NewPPS; }
|
static void SetPPS(const std::string& NewPPS) { mPPS = NewPPS; }
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "ChronoWrapper.h"
|
#include "ChronoWrapper.h"
|
||||||
#include "Client.h"
|
#include "Client.h"
|
||||||
|
#include "Common.h"
|
||||||
#include "Http.h"
|
#include "Http.h"
|
||||||
// #include "SocketIO.h"
|
// #include "SocketIO.h"
|
||||||
#include <rapidjson/document.h>
|
#include <rapidjson/document.h>
|
||||||
@ -146,7 +147,7 @@ std::string THeartbeatThread::GenerateCall() {
|
|||||||
<< "&map=" << Application::Settings.getAsString(Settings::Key::General_Map)
|
<< "&map=" << Application::Settings.getAsString(Settings::Key::General_Map)
|
||||||
<< "&private=" << (Application::Settings.getAsBool(Settings::Key::General_Private) ? "true" : "false")
|
<< "&private=" << (Application::Settings.getAsBool(Settings::Key::General_Private) ? "true" : "false")
|
||||||
<< "&version=" << Application::ServerVersionString()
|
<< "&version=" << Application::ServerVersionString()
|
||||||
<< "&clientversion=" << std::to_string(Application::ClientMajorVersion()) + ".0" // FIXME: Wtf.
|
<< "&clientversion=" << Application::ClientMinimumVersion().AsString()
|
||||||
<< "&name=" << Application::Settings.getAsString(Settings::Key::General_Name)
|
<< "&name=" << Application::Settings.getAsString(Settings::Key::General_Name)
|
||||||
<< "&tags=" << Application::Settings.getAsString(Settings::Key::General_Tags)
|
<< "&tags=" << Application::Settings.getAsString(Settings::Key::General_Tags)
|
||||||
<< "&guests=" << (Application::Settings.getAsBool(Settings::Key::General_AllowGuests) ? "true" : "false")
|
<< "&guests=" << (Application::Settings.getAsBool(Settings::Key::General_AllowGuests) ? "true" : "false")
|
||||||
|
@ -293,10 +293,11 @@ std::shared_ptr<TClient> TNetwork::Authentication(TConnection&& RawConnection) {
|
|||||||
if (Data.size() > 3 && std::equal(Data.begin(), Data.begin() + VC.size(), VC.begin(), VC.end())) {
|
if (Data.size() > 3 && std::equal(Data.begin(), Data.begin() + VC.size(), VC.begin(), VC.end())) {
|
||||||
std::string ClientVersionStr(reinterpret_cast<const char*>(Data.data() + 2), Data.size() - 2);
|
std::string ClientVersionStr(reinterpret_cast<const char*>(Data.data() + 2), Data.size() - 2);
|
||||||
Version ClientVersion = Application::VersionStrToInts(ClientVersionStr + ".0");
|
Version ClientVersion = Application::VersionStrToInts(ClientVersionStr + ".0");
|
||||||
if (ClientVersion.major != Application::ClientMajorVersion()) {
|
Version MinClientVersion = Application::ClientMinimumVersion();
|
||||||
beammp_errorf("Client tried to connect with version '{}', but only versions '{}.x.x' is allowed",
|
if (Application::IsOutdated(ClientVersion, MinClientVersion)) {
|
||||||
ClientVersion.AsString(), Application::ClientMajorVersion());
|
beammp_errorf("Client tried to connect with version '{}', but only versions >= {} are allowed",
|
||||||
ClientKick(*Client, "Outdated Version!");
|
ClientVersion.AsString(), MinClientVersion.AsString());
|
||||||
|
ClientKick(*Client, fmt::format("Outdated version, launcher version >={} required to join!", MinClientVersion.AsString()));
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user