mirror of
https://github.com/minetest/minetest.git
synced 2025-03-06 20:48:40 +01:00
* Implement minetest.register_on_userlimit_check This new callback permits to bypass the max_users parameter with new mods condition, based on player name or IP Only one mod needs to permit it. Move core part for builtin privileges checks to builtin
48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
/*
|
|
Minetest
|
|
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "cpp_api/s_base.h"
|
|
#include "irr_v3d.h"
|
|
#include "util/string.h"
|
|
|
|
struct ToolCapabilities;
|
|
|
|
class ScriptApiPlayer : virtual public ScriptApiBase
|
|
{
|
|
public:
|
|
virtual ~ScriptApiPlayer() = default;
|
|
|
|
void on_newplayer(ServerActiveObject *player);
|
|
void on_dieplayer(ServerActiveObject *player);
|
|
bool on_respawnplayer(ServerActiveObject *player);
|
|
bool on_prejoinplayer(const std::string &name, const std::string &ip,
|
|
std::string *reason);
|
|
bool can_bypass_userlimit(const std::string &name, const std::string &ip);
|
|
void on_joinplayer(ServerActiveObject *player);
|
|
void on_leaveplayer(ServerActiveObject *player, bool timeout);
|
|
void on_cheat(ServerActiveObject *player, const std::string &cheat_type);
|
|
bool on_punchplayer(ServerActiveObject *player, ServerActiveObject *hitter,
|
|
float time_from_last_punch, const ToolCapabilities *toolcap,
|
|
v3f dir, s16 damage);
|
|
s16 on_player_hpchange(ServerActiveObject *player, s16 hp_change);
|
|
void on_playerReceiveFields(ServerActiveObject *player,
|
|
const std::string &formname, const StringMap &fields);
|
|
};
|