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

#include <scripting_mainmenu.h>

+ Inheritance diagram for MainMenuScripting:
+ Collaboration diagram for MainMenuScripting:

Public Member Functions

 MainMenuScripting (GUIEngine *guiengine)
 
void step ()
 
void beforeClose ()
 
u32 queueAsync (std::string &&serialized_func, std::string &&serialized_param)
 
- 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 ScriptApiMainMenu
void setMainMenuData (const MainMenuDataForScript *data)
 Hand over MainMenuDataForScript to lua to inform lua of the content.
 
void handleMainMenuEvent (const std::string &text)
 process events received from formspec
 
void handleMainMenuButtons (const StringMap &fields)
 process field data received from formspec
 
- Public Member Functions inherited from ScriptApiSecurity
void initializeSecurity ()
 
void initializeSecurityClient ()
 

Static Public Member Functions

static bool mayModifyPath (const std::string &path)
 
static bool checkPathAccess (const std::string &abs_path, bool write_required, bool *write_allowed)
 
- 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.
 

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.
 
- 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.
 
- Protected Member Functions inherited from ScriptApiSecurity
virtual bool modNamesAreTrusted ()
 Specify if the mod names during init time(!) can be trusted.
 

Private Member Functions

void initializeModApi (lua_State *L, int top)
 

Static Private Member Functions

static void registerLuaClasses (lua_State *L, int top)
 

Private Attributes

AsyncEngine asyncEngine
 

Additional Inherited Members

- 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

◆ MainMenuScripting()

MainMenuScripting::MainMenuScripting ( GUIEngine * guiengine)

References infostream, initializeModApi(), ScriptApiSecurity::initializeSecurity(), and SCRIPTAPI_PRECHECKHEADER.

+ Here is the call graph for this function:

Member Function Documentation

◆ beforeClose()

void MainMenuScripting::beforeClose ( )

References PCALL_RES, PUSH_ERROR_HANDLER, and SCRIPTAPI_PRECHECKHEADER.

Referenced by GUIEngine::run().

+ Here is the caller graph for this function:

◆ checkPathAccess()

bool MainMenuScripting::checkPathAccess ( const std::string & abs_path,
bool write_required,
bool * write_allowed )
static

References mayModifyPath().

Referenced by AsyncWorkerThread::checkPathInternal(), and checkPathInternal().

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

◆ checkPathInternal()

bool MainMenuScripting::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 checkPathAccess().

+ Here is the call graph for this function:

◆ initializeModApi()

void MainMenuScripting::initializeModApi ( lua_State * L,
int top )
private

References asyncEngine, ModApiHttp::Initialize(), ModApiMainMenu::Initialize(), ModApiMainMenuSound::Initialize(), ModApiUtil::Initialize(), AsyncEngine::initialize(), ModApiHttp::InitializeAsync(), ModApiMainMenu::InitializeAsync(), ModApiUtil::InitializeAsync(), MAINMENU_NUM_ASYNC_THREADS, registerLuaClasses(), and AsyncEngine::registerStateInitializer().

Referenced by MainMenuScripting().

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

◆ mayModifyPath()

bool MainMenuScripting::mayModifyPath ( const std::string & path)
static

References DIR_DELIM, porting::path_cache, porting::path_user, fs::PathStartsWith(), fs::RemoveRelativePathComponents(), and fs::TempPath().

Referenced by checkPathAccess().

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

◆ queueAsync()

u32 MainMenuScripting::queueAsync ( std::string && serialized_func,
std::string && serialized_param )

References asyncEngine, and AsyncEngine::queueAsyncJob().

Referenced by ModApiMainMenu::l_do_async_callback().

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

◆ registerLuaClasses()

void MainMenuScripting::registerLuaClasses ( lua_State * L,
int top )
staticprivate

References LuaSettings::Register(), and MainMenuSoundHandle::Register().

Referenced by initializeModApi().

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

◆ step()

void MainMenuScripting::step ( )

References asyncEngine, ScriptApiBase::getStack(), and AsyncEngine::step().

Referenced by GUIEngine::run().

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

Member Data Documentation

◆ asyncEngine

AsyncEngine MainMenuScripting::asyncEngine
private

Referenced by initializeModApi(), queueAsync(), and step().


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