mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-04 00:36:14 +00:00
add identifiers (beammp id, ip) as an argument to onPlayerAuth
This commit is contained in:
parent
cb0cb30797
commit
5d3dff3c88
@ -10,6 +10,7 @@
|
|||||||
- ADDED error messages to some lua functions
|
- ADDED error messages to some lua functions
|
||||||
- ADDED HOME and END button working in console
|
- ADDED HOME and END button working in console
|
||||||
- ADDED `MP.TriggerClientEventJson()` which takes a table as the data argument and sends it as JSON
|
- ADDED `MP.TriggerClientEventJson()` which takes a table as the data argument and sends it as JSON
|
||||||
|
- ADDED identifiers (beammp id, ip) to onPlayerAuth (4th argument)
|
||||||
- FIXED `ip` in MP.GetPlayerIdentifiers
|
- FIXED `ip` in MP.GetPlayerIdentifiers
|
||||||
- FIXED issue with client->server events which contain `:`
|
- FIXED issue with client->server events which contain `:`
|
||||||
- FIXED a fatal exception on LuaEngine startup if Resources/Server is a symlink
|
- FIXED a fatal exception on LuaEngine startup if Resources/Server is a symlink
|
||||||
|
@ -25,11 +25,12 @@ namespace fs = std::filesystem;
|
|||||||
/**
|
/**
|
||||||
* std::variant means, that TLuaArgTypes may be one of the Types listed as template args
|
* std::variant means, that TLuaArgTypes may be one of the Types listed as template args
|
||||||
*/
|
*/
|
||||||
using TLuaArgTypes = std::variant<std::string, int, sol::variadic_args, bool>;
|
using TLuaArgTypes = std::variant<std::string, int, sol::variadic_args, bool, std::unordered_map<std::string, std::string>>;
|
||||||
static constexpr size_t TLuaArgTypes_String = 0;
|
static constexpr size_t TLuaArgTypes_String = 0;
|
||||||
static constexpr size_t TLuaArgTypes_Int = 1;
|
static constexpr size_t TLuaArgTypes_Int = 1;
|
||||||
static constexpr size_t TLuaArgTypes_VariadicArgs = 2;
|
static constexpr size_t TLuaArgTypes_VariadicArgs = 2;
|
||||||
static constexpr size_t TLuaArgTypes_Bool = 3;
|
static constexpr size_t TLuaArgTypes_Bool = 3;
|
||||||
|
static constexpr size_t TLuaArgTypes_StringStringMap = 4;
|
||||||
|
|
||||||
class TLuaPlugin;
|
class TLuaPlugin;
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include "Http.h"
|
#include "Http.h"
|
||||||
#include "LuaAPI.h"
|
#include "LuaAPI.h"
|
||||||
#include "TLuaPlugin.h"
|
#include "TLuaPlugin.h"
|
||||||
|
#include "sol/object.hpp"
|
||||||
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <condition_variable>
|
#include <condition_variable>
|
||||||
@ -992,6 +993,15 @@ void TLuaEngine::StateThreadData::operator()() {
|
|||||||
case TLuaArgTypes_Bool:
|
case TLuaArgTypes_Bool:
|
||||||
LuaArgs.push_back(sol::make_object(StateView, std::get<bool>(Arg)));
|
LuaArgs.push_back(sol::make_object(StateView, std::get<bool>(Arg)));
|
||||||
break;
|
break;
|
||||||
|
case TLuaArgTypes_StringStringMap: {
|
||||||
|
auto Map = std::get<std::unordered_map<std::string, std::string>>(Arg);
|
||||||
|
auto Table = StateView.create_table();
|
||||||
|
for (const auto& [k, v] : Map) {
|
||||||
|
Table[k] = v;
|
||||||
|
}
|
||||||
|
LuaArgs.push_back(sol::make_object(StateView, Table));
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
beammp_error("Unknown argument type, passed as nil");
|
beammp_error("Unknown argument type, passed as nil");
|
||||||
break;
|
break;
|
||||||
|
@ -355,7 +355,7 @@ void TNetwork::Authentication(const TConnection& ClientConnection) {
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
auto Futures = LuaAPI::MP::Engine->TriggerEvent("onPlayerAuth", "", Client->GetName(), Client->GetRoles(), Client->IsGuest());
|
auto Futures = LuaAPI::MP::Engine->TriggerEvent("onPlayerAuth", "", Client->GetName(), Client->GetRoles(), Client->IsGuest(), Client->GetIdentifiers());
|
||||||
TLuaEngine::WaitForAll(Futures);
|
TLuaEngine::WaitForAll(Futures);
|
||||||
bool NotAllowed = std::any_of(Futures.begin(), Futures.end(),
|
bool NotAllowed = std::any_of(Futures.begin(), Futures.end(),
|
||||||
[](const std::shared_ptr<TLuaResult>& Result) {
|
[](const std::shared_ptr<TLuaResult>& Result) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user