forked from Mirrorlandia_minetest/minetest
Chatcommands: Show the execution time if the command takes a long time (#10472)
This commit is contained in:
parent
051bc9e662
commit
88b052cbea
@ -47,6 +47,8 @@ end
|
||||
|
||||
core.chatcommands = core.registered_chatcommands -- BACKWARDS COMPATIBILITY
|
||||
|
||||
local msg_time_threshold =
|
||||
tonumber(core.settings:get("chatcommand_msg_time_threshold")) or 0.1
|
||||
core.register_on_chat_message(function(name, message)
|
||||
if message:sub(1,1) ~= "/" then
|
||||
return
|
||||
@ -73,7 +75,9 @@ core.register_on_chat_message(function(name, message)
|
||||
local has_privs, missing_privs = core.check_player_privs(name, cmd_def.privs)
|
||||
if has_privs then
|
||||
core.set_last_run_mod(cmd_def.mod_origin)
|
||||
local t_before = minetest.get_us_time()
|
||||
local success, result = cmd_def.func(name, param)
|
||||
local delay = (minetest.get_us_time() - t_before) / 1000000
|
||||
if success == false and result == nil then
|
||||
core.chat_send_player(name, "-!- "..S("Invalid command usage."))
|
||||
local help_def = core.registered_chatcommands["help"]
|
||||
@ -83,9 +87,21 @@ core.register_on_chat_message(function(name, message)
|
||||
core.chat_send_player(name, helpmsg)
|
||||
end
|
||||
end
|
||||
elseif result then
|
||||
else
|
||||
if delay > msg_time_threshold then
|
||||
-- Show how much time it took to execute the command
|
||||
if result then
|
||||
result = result ..
|
||||
minetest.colorize("#f3d2ff", " (%.5g s)"):format(delay)
|
||||
else
|
||||
result = minetest.colorize("#f3d2ff",
|
||||
"Command execution took %.5f s"):format(delay)
|
||||
end
|
||||
end
|
||||
if result then
|
||||
core.chat_send_player(name, result)
|
||||
end
|
||||
end
|
||||
else
|
||||
core.chat_send_player(name,
|
||||
S("You don't have permission to run this command "
|
||||
|
@ -1136,6 +1136,10 @@ enable_rollback_recording (Rollback recording) bool false
|
||||
# @name, @message, @timestamp (optional)
|
||||
chat_message_format (Chat message format) string <@name> @message
|
||||
|
||||
# If the execution of a chat command takes longer than this specified time in
|
||||
# seconds, add the time information to the chat command message
|
||||
chatcommand_msg_time_threshold (Chat command time message threshold) float 0.1
|
||||
|
||||
# A message to be displayed to all clients when the server shuts down.
|
||||
kick_msg_shutdown (Shutdown message) string Server shutting down.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user