summaryrefslogtreecommitdiff
path: root/src/script/cpp_api
diff options
context:
space:
mode:
authorANAND <ClobberXD@gmail.com>2019-08-08 21:34:46 +0530
committerrubenwardy <rw@rubenwardy.com>2019-08-08 17:04:46 +0100
commitd1c27c7e8037e9f438741ee5f7d3b6bda22d22a0 (patch)
treefa04794d876ec4c912add9fcca36eff4a18df016 /src/script/cpp_api
parentcc610c74a742511e04dce91b24d09c860ca7fa1b (diff)
downloadminetest-d1c27c7e8037e9f438741ee5f7d3b6bda22d22a0.tar.gz
minetest-d1c27c7e8037e9f438741ee5f7d3b6bda22d22a0.tar.bz2
minetest-d1c27c7e8037e9f438741ee5f7d3b6bda22d22a0.zip
Allow customizing chat message format (#8529)
Diffstat (limited to 'src/script/cpp_api')
-rw-r--r--src/script/cpp_api/s_server.cpp22
-rw-r--r--src/script/cpp_api/s_server.h12
2 files changed, 30 insertions, 4 deletions
diff --git a/src/script/cpp_api/s_server.cpp b/src/script/cpp_api/s_server.cpp
index 3b461a2a3..1ce2f9d45 100644
--- a/src/script/cpp_api/s_server.cpp
+++ b/src/script/cpp_api/s_server.cpp
@@ -168,3 +168,25 @@ void ScriptApiServer::on_shutdown()
runCallbacks(0, RUN_CALLBACKS_MODE_FIRST);
}
+std::string ScriptApiServer::formatChatMessage(const std::string &name,
+ const std::string &message)
+{
+ SCRIPTAPI_PRECHECKHEADER
+
+ // Push function onto stack
+ lua_getglobal(L, "core");
+ lua_getfield(L, -1, "format_chat_message");
+
+ // Push arguments onto stack
+ lua_pushstring(L, name.c_str());
+ lua_pushstring(L, message.c_str());
+
+ // Actually call the function
+ lua_call(L, 2, 1);
+
+ // Fetch return value
+ std::string ret = lua_tostring(L, -1);
+ lua_pop(L, 1);
+
+ return ret;
+}
diff --git a/src/script/cpp_api/s_server.h b/src/script/cpp_api/s_server.h
index 769939d3f..a4cede84d 100644
--- a/src/script/cpp_api/s_server.h
+++ b/src/script/cpp_api/s_server.h
@@ -36,14 +36,18 @@ public:
// Calls on_shutdown handlers
void on_shutdown();
+ // Calls core.format_chat_message
+ std::string formatChatMessage(const std::string &name,
+ const std::string &message);
+
/* auth */
bool getAuth(const std::string &playername,
- std::string *dst_password,
- std::set<std::string> *dst_privs);
+ std::string *dst_password,
+ std::set<std::string> *dst_privs);
void createAuth(const std::string &playername,
- const std::string &password);
+ const std::string &password);
bool setPassword(const std::string &playername,
- const std::string &password);
+ const std::string &password);
private:
void getAuthHandler();
void readPrivileges(int index, std::set<std::string> &result);