summaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorPierre-Adrien Langrognet <upsilon@langg.net>2017-05-21 23:06:51 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-05-21 23:06:51 +0200
commit39f4a2f607d44738d60db84eba4b30e3d7450204 (patch)
tree63a72301d3c53917b99fe0607f48219372f85b6f /src/script
parentec490abf5889e06c88887e17f1746043de3b10fe (diff)
downloadminetest-39f4a2f607d44738d60db84eba4b30e3d7450204.tar.gz
minetest-39f4a2f607d44738d60db84eba4b30e3d7450204.tar.bz2
minetest-39f4a2f607d44738d60db84eba4b30e3d7450204.zip
[CSM] Add send_chat_message and run_server_chatcommand API functions (#5747)
* [CSM] Add send_chat_message and run_server_chatcommand API functions * Add client-side chat message rate limiting * Limit out chat queue size * [CSM] Add minetest.clear_out_chat_queue API function and .clear_chat_queue chatcommand * Last fixes/cleanups before merge
Diffstat (limited to 'src/script')
-rw-r--r--src/script/lua_api/l_client.cpp19
-rw-r--r--src/script/lua_api/l_client.h6
2 files changed, 25 insertions, 0 deletions
diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp
index 09b832ccf..0b7450af2 100644
--- a/src/script/lua_api/l_client.cpp
+++ b/src/script/lua_api/l_client.cpp
@@ -85,6 +85,23 @@ int ModApiClient::l_display_chat_message(lua_State *L)
return 1;
}
+// send_chat_message(message)
+int ModApiClient::l_send_chat_message(lua_State *L)
+{
+ if (!lua_isstring(L,1))
+ return 0;
+ std::string message = luaL_checkstring(L, 1);
+ getClient(L)->sendChatMessage(utf8_to_wide(message));
+ return 0;
+}
+
+// clear_out_chat_queue()
+int ModApiClient::l_clear_out_chat_queue(lua_State *L)
+{
+ getClient(L)->clearOutChatQueue();
+ return 0;
+}
+
// get_player_names()
int ModApiClient::l_get_player_names(lua_State *L)
{
@@ -317,6 +334,8 @@ void ModApiClient::Initialize(lua_State *L, int top)
API_FCT(get_current_modname);
API_FCT(print);
API_FCT(display_chat_message);
+ API_FCT(send_chat_message);
+ API_FCT(clear_out_chat_queue);
API_FCT(get_player_names);
API_FCT(set_last_run_mod);
API_FCT(get_last_run_mod);
diff --git a/src/script/lua_api/l_client.h b/src/script/lua_api/l_client.h
index 09b74addd..fe5780fb1 100644
--- a/src/script/lua_api/l_client.h
+++ b/src/script/lua_api/l_client.h
@@ -37,6 +37,12 @@ private:
// display_chat_message(message)
static int l_display_chat_message(lua_State *L);
+ // send_chat_message(message)
+ static int l_send_chat_message(lua_State *L);
+
+ // clear_out_chat_queue()
+ static int l_clear_out_chat_queue(lua_State *L);
+
// get_player_names()
static int l_get_player_names(lua_State *L);