Luanti 5.11.0-dev
 
Loading...
Searching...
No Matches
ClientScripting Class Reference

#include <scripting_client.h>

+ Inheritance diagram for ClientScripting:
+ Collaboration diagram for ClientScripting:

Public Member Functions

 ClientScripting (Client *client)
 
void on_client_ready (LocalPlayer *localplayer)
 
void on_camera_ready (Camera *camera)
 
void on_minimap_ready (Minimap *minimap)
 
- Public Member Functions inherited from ScriptApiBase
 ScriptApiBase (ScriptingType type)
 
 ScriptApiBase ()
 
virtual ~ScriptApiBase ()
 
 DISABLE_CLASS_COPY (ScriptApiBase)
 
void loadMod (const std::string &script_path, const std::string &mod_name)
 
void loadScript (const std::string &script_path)
 
void runCallbacksRaw (int nargs, RunCallbacksMode mode, const char *fxn)
 
void addObjectReference (ServerActiveObject *cobj)
 
void removeObjectReference (ServerActiveObject *cobj)
 
ScriptingType getType ()
 
IGameDefgetGameDef ()
 
ServergetServer ()
 
const std::string & getOrigin ()
 
void setOriginDirect (const char *origin)
 
void setOriginFromTableRaw (int index, const char *fxn)
 
void clientOpenLibs (lua_State *L)
 
void checkSetByBuiltin ()
 
- Public Member Functions inherited from ScriptApiSecurity
void initializeSecurity ()
 
void initializeSecurityClient ()
 
- Public Member Functions inherited from ScriptApiClient
void on_mods_loaded ()
 
void on_shutdown ()
 
bool on_sending_message (const std::string &message)
 
bool on_receiving_message (const std::string &message)
 
void on_damage_taken (int32_t damage_amount)
 
void on_hp_modification (int32_t newhp)
 
void environment_step (float dtime)
 
void on_formspec_input (const std::string &formname, const StringMap &fields)
 
bool on_dignode (v3s16 p, MapNode node)
 
bool on_punchnode (v3s16 p, MapNode node)
 
bool on_placenode (const PointedThing &pointed, const ItemDefinition &item)
 
bool on_item_use (const ItemStack &item, const PointedThing &pointed)
 
bool on_inventory_open (Inventory *inventory)
 
void setEnv (ClientEnvironment *env)
 
- Public Member Functions inherited from ScriptApiModChannels
void on_modchannel_message (const std::string &channel, const std::string &sender, const std::string &message)
 
void on_modchannel_signal (const std::string &channel, ModChannelSignal signal)
 

Protected Member Functions

bool checkPathInternal (const std::string &abs_path, bool write_required, bool *write_allowed) override
 Should check if the given path may be accessed.
 
bool modNamesAreTrusted () override
 Specify if the mod names during init time(!) can be trusted.
 
- Protected Member Functions inherited from ScriptApiBase
lua_State * getStack ()
 
void realityCheck ()
 
void scriptError (int result, const char *fxn)
 
void stackDump (std::ostream &o)
 
void setGameDef (IGameDef *gamedef)
 
EnvironmentgetEnv ()
 
void setEnv (Environment *env)
 
EmergeThreadgetEmergeThread ()
 
void setEmergeThread (EmergeThread *emerge)
 
void objectrefGetOrCreate (lua_State *L, ServerActiveObject *cobj)
 
void pushPlayerHPChangeReason (lua_State *L, const PlayerHPChangeReason &reason)
 
- Protected Member Functions inherited from LuaHelper
template<>
bool readParam (lua_State *L, int index)
 
template<>
s16 readParam (lua_State *L, int index)
 
template<>
int readParam (lua_State *L, int index)
 
template<>
float readParam (lua_State *L, int index)
 
template<>
v2s16 readParam (lua_State *L, int index)
 
template<>
v2f readParam (lua_State *L, int index)
 
template<>
v3f readParam (lua_State *L, int index)
 
template<>
std::string_view readParam (lua_State *L, int index)
 
template<>
std::string readParam (lua_State *L, int index)
 
template<>
std::string_view readParam (lua_State *L, int index)
 Read a string from Lua state L at index without copying it.
 

Private Member Functions

virtual void InitializeModApi (lua_State *L, int top)
 

Additional Inherited Members

- Static Public Member Functions inherited from ScriptApiBase
static std::string getCurrentModNameInsecure (lua_State *L)
 Returns the currently running mod, only during init time.
 
- Static Public Member Functions inherited from ScriptApiSecurity
static bool isSecure (lua_State *L)
 
static void getGlobalsBackup (lua_State *L)
 
static bool safeLoadString (lua_State *L, std::string_view code, const char *chunk_name)
 Loads a string as Lua code safely (doesn't allow bytecode).
 
static bool safeLoadFile (lua_State *L, const char *path, const char *display_name=nullptr)
 Loads a file as Lua code safely (doesn't allow bytecode).
 
static std::string getCurrentModName (lua_State *L)
 Returns the currently running mod, only during init time.
 
static bool checkWhitelisted (lua_State *L, const std::string &setting)
 Check if mod is whitelisted in the given setting.
 
static bool checkPath (lua_State *L, const char *path, bool write_required, bool *write_allowed=nullptr)
 Checks if mods are allowed to read (and optionally write) to the path.
 
- Static Protected Member Functions inherited from LuaHelper
template<typename T >
static T readParam (lua_State *L, int index)
 Read a value using a template type T from Lua state L at index.
 
template<typename T >
static T readParam (lua_State *L, int index, const T &default_value)
 Read a value using a template type T from Lua state L at index.
 
- Static Protected Member Functions inherited from ScriptApiSecurity
static bool checkPathWithGamedef (lua_State *L, const std::string &abs_path, bool write_required, bool *write_allowed)
 
- Protected Attributes inherited from ScriptApiBase
std::recursive_mutex m_luastackmutex
 
std::string m_last_run_mod
 
int m_lock_recursion_count {}
 
std::thread::id m_owning_thread
 

Constructor & Destructor Documentation

◆ ClientScripting()

ClientScripting::ClientScripting ( Client * client)

References infostream, InitializeModApi(), ScriptApiSecurity::initializeSecurityClient(), SCRIPTAPI_PRECHECKHEADER, and ScriptApiBase::setGameDef().

+ Here is the call graph for this function:

Member Function Documentation

◆ checkPathInternal()

bool ClientScripting::checkPathInternal ( const std::string & abs_path,
bool write_required,
bool * write_allowed )
inlineoverrideprotectedvirtual

Should check if the given path may be accessed.

If write_required is true test for write access, if false test for read access.

Parameters
abs_pathabsolute file/directory path, may not exist
write_requiredwas write access requested?
write_allowedoutput parameter (nullable): set to true if writing is allowed
Returns
true if access is allowed

Implements ScriptApiSecurity.

References warningstream.

◆ InitializeModApi()

void ClientScripting::InitializeModApi ( lua_State * L,
int top )
privatevirtual

References ModApiChannels::Initialize(), ModApiClient::Initialize(), ModApiClientSound::Initialize(), ModApiParticlesLocal::Initialize(), ModApiStorage::Initialize(), ModApiEnv::InitializeClient(), ModApiItem::InitializeClient(), ModApiUtil::InitializeClient(), ClientSoundHandle::Register(), ItemStackMetaRef::Register(), LuaCamera::Register(), LuaItemStack::Register(), LuaLocalPlayer::Register(), LuaMinimap::Register(), LuaRaycast::Register(), LuaSettings::Register(), ModChannelRef::Register(), StorageRef::Register(), and NodeMetaRef::RegisterClient().

Referenced by ClientScripting().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ modNamesAreTrusted()

bool ClientScripting::modNamesAreTrusted ( )
inlineoverrideprotectedvirtual

Specify if the mod names during init time(!) can be trusted.

It needs to be assured that no tampering happens before any call to loadMod().

Note
disabling this implies that mod whitelisting never works
Returns
boolean value

Reimplemented from ScriptApiSecurity.

◆ on_camera_ready()

void ClientScripting::on_camera_ready ( Camera * camera)

References LuaCamera::create(), and ScriptApiBase::getStack().

Referenced by Client::loadMods().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ on_client_ready()

void ClientScripting::on_client_ready ( LocalPlayer * localplayer)

References LuaLocalPlayer::create(), and ScriptApiBase::getStack().

Referenced by Client::afterContentReceived(), and Client::loadMods().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ on_minimap_ready()

void ClientScripting::on_minimap_ready ( Minimap * minimap)

References LuaMinimap::create(), and ScriptApiBase::getStack().

Referenced by Client::loadMods().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: