48 lines
2.2 KiB
Lua
48 lines
2.2 KiB
Lua
--local bc = better_commands
|
|
local S = minetest.get_translator(minetest.get_current_modname())
|
|
|
|
better_commands.times = {
|
|
day = 7000/24000,
|
|
night = 19000/24000,
|
|
noon = 12000/24000,
|
|
midnight = 0/24000,
|
|
sunrise = 5000/24000,
|
|
sunset = 18000/24000
|
|
}
|
|
|
|
better_commands.register_command("time", {
|
|
params = S("add|set|query ..."),
|
|
description = S("Sets or gets the time"),
|
|
privs = {settime = true, server = true},
|
|
func = function(name, param, context)
|
|
local split_param = better_commands.parse_params(param)
|
|
if not (split_param[1] and split_param[2]) then return false, nil, 0 end
|
|
local action = split_param[1][3]:lower()
|
|
local time = split_param[2][3]:lower()
|
|
if action == "add" then
|
|
local new_time, err = better_commands.parse_time_string(time)
|
|
if err then return false, better_commands.error(err), 0 end
|
|
minetest.set_timeofday(new_time)
|
|
return true, S("Time set"), 1
|
|
elseif action == "query" then
|
|
if time == "daytime" then
|
|
if better_commands.settings.acovg_time then
|
|
return true, S("Current time: @1", math.floor(minetest.get_timeofday()*24000+18000) % 24000), 1
|
|
else
|
|
return true, S("Current time: @1", math.floor(minetest.get_timeofday()*24000)), 1
|
|
end
|
|
elseif time == "gametime" then
|
|
return true, S("Time since world creation: @1", (minetest.get_gametime() or 0)*24000), 1
|
|
elseif time == "day" then
|
|
return true, S("Day count: @1", minetest.get_day_count()), 1
|
|
end
|
|
return false, better_commands.error(S("Must be 'daytime', 'gametime', or 'day', got @1", time)), 0
|
|
elseif action == "set" then
|
|
local new_time, err = better_commands.parse_time_string(time, true)
|
|
if err then return false, better_commands.error(err), 0 end
|
|
minetest.set_timeofday(new_time)
|
|
return true, S("Time set"), 1
|
|
end
|
|
return false, better_commands.error(S("Must be 'add', 'set', or 'query'")), 0
|
|
end
|
|
}) |