Make the server status message customizable (#7357)

Remove now redundant setting show_statusline_on_connect
Improve documentation of `minetest.get_server_status`
This commit is contained in:
SmallJoker 2018-07-01 12:31:28 +02:00 committed by GitHub
parent 7d20ff47d7
commit 6f22d14206
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 18 additions and 15 deletions

@ -799,7 +799,11 @@ core.register_chatcommand("rollback", {
core.register_chatcommand("status", { core.register_chatcommand("status", {
description = "Show server status", description = "Show server status",
func = function(name, param) 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, end,
}) })

@ -62,6 +62,12 @@ end
core.register_on_joinplayer(function(player) core.register_on_joinplayer(function(player)
local player_name = player:get_player_name() local player_name = player:get_player_name()
player_list[player_name] = player 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) core.send_join_message(player_name)
end) end)

@ -950,9 +950,6 @@ map-dir (Map directory) path
# Setting it to -1 disables the feature. # Setting it to -1 disables the feature.
item_entity_ttl (Item entity TTL) int 900 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 players getting damage and dying.
enable_damage (Damage) bool false enable_damage (Damage) bool false

@ -3997,7 +3997,13 @@ These functions return the leftover itemstack.
Negative delay cancels the current active shutdown. Negative delay cancels the current active shutdown.
Zero delay triggers an immediate shutdown. Zero delay triggers an immediate shutdown.
* `minetest.cancel_shutdown_requests()`: cancel current delayed 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.get_server_uptime()`: returns the server uptime in seconds
* `minetest.remove_player(name)`: remove player from database (if they are not * `minetest.remove_player(name)`: remove player from database (if they are not
connected). connected).

@ -1142,10 +1142,6 @@
# type: int # type: int
# item_entity_ttl = 900 # 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. # Enable players getting damage and dying.
# type: bool # type: bool
# enable_damage = false # enable_damage = false

@ -305,7 +305,6 @@ void set_default_settings(Settings *settings)
settings->setDefault("motd", ""); settings->setDefault("motd", "");
settings->setDefault("max_users", "15"); settings->setDefault("max_users", "15");
settings->setDefault("creative_mode", "false"); settings->setDefault("creative_mode", "false");
settings->setDefault("show_statusline_on_connect", "true");
settings->setDefault("enable_damage", "true"); settings->setDefault("enable_damage", "true");
settings->setDefault("default_password", ""); settings->setDefault("default_password", "");
settings->setDefault("default_privs", "interact, shout"); settings->setDefault("default_privs", "interact, shout");

@ -1059,11 +1059,6 @@ PlayerSAO* Server::StageTwoClientInit(session_t peer_id)
// Send Breath // Send Breath
SendPlayerBreath(playersao); 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()); Address addr = getPeerAddress(player->getPeerId());
std::string ip_str = addr.serializeString(); std::string ip_str = addr.serializeString();
actionstream<<player->getName() <<" [" << ip_str << "] joins game. " << std::endl; actionstream<<player->getName() <<" [" << ip_str << "] joins game. " << std::endl;