summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallJoker <SmallJoker@users.noreply.github.com>2018-07-01 12:31:28 +0200
committerGitHub <noreply@github.com>2018-07-01 12:31:28 +0200
commit6f22d14206824911b620ecec450689f84e6d278b (patch)
treefc639bddfc7e73e5479e6307d4e06039d94792fc
parent7d20ff47d7ce83825ccad81427fc8b45f80a2a2c (diff)
downloadminetest-6f22d14206824911b620ecec450689f84e6d278b.tar.gz
minetest-6f22d14206824911b620ecec450689f84e6d278b.tar.bz2
minetest-6f22d14206824911b620ecec450689f84e6d278b.zip
Make the server status message customizable (#7357)
Remove now redundant setting show_statusline_on_connect Improve documentation of `minetest.get_server_status`
-rw-r--r--builtin/game/chatcommands.lua6
-rw-r--r--builtin/game/misc.lua6
-rw-r--r--builtin/settingtypes.txt3
-rw-r--r--doc/lua_api.txt8
-rw-r--r--minetest.conf.example4
-rw-r--r--src/defaultsettings.cpp1
-rw-r--r--src/server.cpp5
7 files changed, 18 insertions, 15 deletions
diff --git a/builtin/game/chatcommands.lua b/builtin/game/chatcommands.lua
index d56f2112b..4aef063de 100644
--- a/builtin/game/chatcommands.lua
+++ b/builtin/game/chatcommands.lua
@@ -799,7 +799,11 @@ core.register_chatcommand("rollback", {
core.register_chatcommand("status", {
description = "Show server status",
func = function(name, param)
- return true, core.get_server_status()
+ local status = core.get_server_status(name, false)
+ if status and status ~= "" then
+ return true, status
+ end
+ return false, "This command was disabled by a mod or game"
end,
})
diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua
index 2e05cdc41..1d60f1958 100644
--- a/builtin/game/misc.lua
+++ b/builtin/game/misc.lua
@@ -62,6 +62,12 @@ end
core.register_on_joinplayer(function(player)
local player_name = player:get_player_name()
player_list[player_name] = player
+ if not minetest.is_singleplayer() then
+ local status = core.get_server_status(player_name, true)
+ if status and status ~= "" then
+ core.chat_send_player(player_name, status)
+ end
+ end
core.send_join_message(player_name)
end)
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index b43d66838..0b0ec4a4c 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -950,9 +950,6 @@ map-dir (Map directory) path
# Setting it to -1 disables the feature.
item_entity_ttl (Item entity TTL) int 900
-# If enabled, show the server status message on player connection.
-show_statusline_on_connect (Status message on connection) bool true
-
# Enable players getting damage and dying.
enable_damage (Damage) bool false
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index 9fb22556b..d7f45fb1b 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -3997,7 +3997,13 @@ These functions return the leftover itemstack.
Negative delay cancels the current active shutdown.
Zero delay triggers an immediate shutdown.
* `minetest.cancel_shutdown_requests()`: cancel current delayed shutdown
-* `minetest.get_server_status()`: returns server status string
+* `minetest.get_server_status(name, joined)`
+ * Returns the server status string when a player joins or when the command
+ `/status` is called. Returns `nil` or an empty string when the message is
+ disabled.
+ * `joined`: Boolean value, indicates whether the function was called when
+ a player joined.
+ * This function may be overwritten by mods to customize the status message.
* `minetest.get_server_uptime()`: returns the server uptime in seconds
* `minetest.remove_player(name)`: remove player from database (if they are not
connected).
diff --git a/minetest.conf.example b/minetest.conf.example
index 266c9fd8c..493c4a648 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -1142,10 +1142,6 @@
# type: int
# item_entity_ttl = 900
-# If enabled, show the server status message on player connection.
-# type: bool
-# show_statusline_on_connect = true
-
# Enable players getting damage and dying.
# type: bool
# enable_damage = false
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 1d1da5128..8bcded9cd 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -305,7 +305,6 @@ void set_default_settings(Settings *settings)
settings->setDefault("motd", "");
settings->setDefault("max_users", "15");
settings->setDefault("creative_mode", "false");
- settings->setDefault("show_statusline_on_connect", "true");
settings->setDefault("enable_damage", "true");
settings->setDefault("default_password", "");
settings->setDefault("default_privs", "interact, shout");
diff --git a/src/server.cpp b/src/server.cpp
index 753c71701..38d2c5e94 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1059,11 +1059,6 @@ PlayerSAO* Server::StageTwoClientInit(session_t peer_id)
// Send Breath
SendPlayerBreath(playersao);
- // Note things in chat if not in simple singleplayer mode
- if (!m_simple_singleplayer_mode && g_settings->getBool("show_statusline_on_connect")) {
- // Send information about server to player in chat
- SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_SYSTEM, getStatusString()));
- }
Address addr = getPeerAddress(player->getPeerId());
std::string ip_str = addr.serializeString();
actionstream<<player->getName() <<" [" << ip_str << "] joins game. " << std::endl;