1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

[CSM] Add client-sided chat commands (#5092)

This commit is contained in:
red-001 2017-01-22 08:05:09 +00:00 committed by Loïc Blot
parent 9978f5af82
commit d7bc346981
9 changed files with 100 additions and 33 deletions

View file

@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "l_client.h"
#include "l_internal.h"
#include "util/string.h"
#include "cpp_api/s_base.h"
int ModApiClient::l_get_current_modname(lua_State *L)
{
@ -28,6 +29,26 @@ int ModApiClient::l_get_current_modname(lua_State *L)
return 1;
}
// get_last_run_mod()
int ModApiClient::l_get_last_run_mod(lua_State *L)
{
lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_CURRENT_MOD_NAME);
const char *current_mod = lua_tostring(L, -1);
if (current_mod == NULL || current_mod[0] == '\0') {
lua_pop(L, 1);
lua_pushstring(L, getScriptApiBase(L)->getOrigin().c_str());
}
return 1;
}
// set_last_run_mod(modname)
int ModApiClient::l_set_last_run_mod(lua_State *L)
{
const char *mod = lua_tostring(L, 1);
getScriptApiBase(L)->setOriginDirect(mod);
return 0;
}
// display_chat_message(message)
int ModApiClient::l_display_chat_message(lua_State *L)
{
@ -42,4 +63,6 @@ void ModApiClient::Initialize(lua_State *L, int top)
{
API_FCT(get_current_modname);
API_FCT(display_chat_message);
API_FCT(set_last_run_mod);
API_FCT(get_last_run_mod);
}

View file

@ -28,8 +28,16 @@ class ModApiClient : public ModApiBase
private:
// get_current_modname()
static int l_get_current_modname(lua_State *L);
// display_chat_message(message)
static int l_display_chat_message(lua_State *L);
// get_last_run_mod(n)
static int l_get_last_run_mod(lua_State *L);
// set_last_run_mod(modname)
static int l_set_last_run_mod(lua_State *L);
public:
static void Initialize(lua_State *L, int top);
};