aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/lua_api/l_server.cpp')
-rw-r--r--src/script/lua_api/l_server.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp
index eff212653..67916e074 100644
--- a/src/script/lua_api/l_server.cpp
+++ b/src/script/lua_api/l_server.cpp
@@ -85,7 +85,14 @@ int ModApiServer::l_chat_send_all(lua_State *L)
// Get server from registry
Server *server = getServer(L);
// Send
- server->notifyPlayers(utf8_to_wide(text));
+ try {
+ server->notifyPlayers(utf8_to_wide(text));
+ } catch (PacketError &e) {
+ warningstream << "Exception caught: " << e.what() << std::endl
+ << script_get_backtrace(L) << std::endl;
+ server->notifyPlayers(utf8_to_wide(std::string("Internal error: ") + e.what()));
+ }
+
return 0;
}
@@ -99,7 +106,13 @@ int ModApiServer::l_chat_send_player(lua_State *L)
// Get server from registry
Server *server = getServer(L);
// Send
- server->notifyPlayer(name, utf8_to_wide(text));
+ try {
+ server->notifyPlayer(name, utf8_to_wide(text));
+ } catch (PacketError &e) {
+ warningstream << "Exception caught: " << e.what() << std::endl
+ << script_get_backtrace(L) << std::endl;
+ server->notifyPlayer(name, utf8_to_wide(std::string("Internal error: ") + e.what()));
+ }
return 0;
}