Builtin: Sanity-check /time inputs (#11993)

This enforces the documented bounds for the /time command.
This commit is contained in:
SmallJoker 2022-01-27 22:23:14 +01:00 committed by GitHub
parent fe0b2d02bf
commit 47735c273c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1034,12 +1034,11 @@ core.register_chatcommand("time", {
end end
local hour, minute = param:match("^(%d+):(%d+)$") local hour, minute = param:match("^(%d+):(%d+)$")
if not hour then if not hour then
local new_time = tonumber(param) local new_time = tonumber(param) or -1
if not new_time then if new_time ~= new_time or new_time < 0 or new_time > 24000 then
return false, S("Invalid time.") return false, S("Invalid time (must be between 0 and 24000).")
end end
-- Backward compatibility. core.set_timeofday(new_time / 24000)
core.set_timeofday((new_time % 24000) / 24000)
core.log("action", name .. " sets time to " .. new_time) core.log("action", name .. " sets time to " .. new_time)
return true, S("Time of day changed.") return true, S("Time of day changed.")
end end