mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add 'on_prejoinplayer' callback
This commit is contained in:
parent
76036abdb0
commit
33de69a173
5 changed files with 36 additions and 0 deletions
|
@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
|
||||
#include "cpp_api/s_player.h"
|
||||
#include "cpp_api/s_internal.h"
|
||||
#include "util/string.h"
|
||||
|
||||
void ScriptApiPlayer::on_newplayer(ServerActiveObject *player)
|
||||
{
|
||||
|
@ -58,6 +59,23 @@ bool ScriptApiPlayer::on_respawnplayer(ServerActiveObject *player)
|
|||
return positioning_handled_by_some;
|
||||
}
|
||||
|
||||
bool ScriptApiPlayer::on_prejoinplayer(std::string name, std::string ip, std::string &reason)
|
||||
{
|
||||
SCRIPTAPI_PRECHECKHEADER
|
||||
|
||||
// Get minetest.registered_on_prejoinplayers
|
||||
lua_getglobal(L, "minetest");
|
||||
lua_getfield(L, -1, "registered_on_prejoinplayers");
|
||||
lua_pushstring(L, name.c_str());
|
||||
lua_pushstring(L, ip.c_str());
|
||||
script_run_callbacks(L, 2, RUN_CALLBACKS_MODE_OR);
|
||||
if (lua_isstring(L, -1)) {
|
||||
reason.assign(lua_tostring(L, -1));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void ScriptApiPlayer::on_joinplayer(ServerActiveObject *player)
|
||||
{
|
||||
SCRIPTAPI_PRECHECKHEADER
|
||||
|
|
|
@ -34,6 +34,7 @@ public:
|
|||
void on_newplayer(ServerActiveObject *player);
|
||||
void on_dieplayer(ServerActiveObject *player);
|
||||
bool on_respawnplayer(ServerActiveObject *player);
|
||||
bool on_prejoinplayer(std::string name, std::string ip, std::string &reason);
|
||||
void on_joinplayer(ServerActiveObject *player);
|
||||
void on_leaveplayer(ServerActiveObject *player);
|
||||
void on_cheat(ServerActiveObject *player, const std::string &cheat_type);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue