mymonths/command.lua

267 lines
5.9 KiB
Lua

--Sets the privs for changing settings
minetest.register_privilege("mymonths", {
description = "Change the weather and date",
give_to_singleplayer = false
})
-- Set weather
if mymonths.use_weather == true then
minetest.register_chatcommand("setweather", {
params = "<mymonths>",
description = "Set weather to rain, snow, wind or clear",
privs = {mymonths = true},
func = function(name, param)
if param == "rain"
or param == "storm"
or param == "snow"
or param == "snowstorm"
or param == "sandstorm"
or param == "hail"
or param == "clear" then
mymonths.weather = param
mymonths.save_table()
else
minetest.chat_send_player(name,
"invalid input - use rain, storm, snow, snowstorm, sandstorm, hail or clear.")
return
end
end
})
end -- END IF
--Set month
minetest.register_chatcommand("setmonth", {
params = "",
description = "Set the month. Use the number 1-12 or the name",
privs = {mymonths = true},
func = function(name, param)
if param == "1"
or param == "January"
or param == "january"
or param == "jan" then
mymonths.month = "January"
mymonths.month_counter = 1
minetest.chat_send_player(name," Month has been changed to January")
elseif param == "2"
or param == "February"
or param == "february"
or param == "feb" then
mymonths.month = "Febuary"
mymonths.month_counter = 2
minetest.chat_send_player(name, "Month has been changed to Febuary")
elseif param == "3"
or param == "March"
or param == "march"
or param == "mar" then
mymonths.month = "March"
mymonths.month_counter = 3
minetest.chat_send_player(name, "Month has been changed to March")
elseif param == "4"
or param == "April"
or param == "april"
or param == "apr" then
mymonths.month = "April"
mymonths.month_counter = 4
minetest.chat_send_player(name, "Month has been changed to April")
elseif param == "5"
or param == "May"
or param == "may" then
mymonths.month = "May"
mymonths.month_counter = 5
minetest.chat_send_player(name, "Month has been changed to May")
elseif param == "6"
or param == "June"
or param == "june"
or param == "jun" then
mymonths.month = "June"
mymonths.month_counter = 6
minetest.chat_send_player(name, "Month has been changed to June")
elseif param == "7"
or param == "July"
or param == "july"
or param == "jul" then
mymonths.month = "July"
mymonths.month_counter = 7
minetest.chat_send_player(name, "Month has been changed to July")
elseif param == "8"
or param == "August"
or param == "august"
or param == "aug" then
mymonths.month = "August"
mymonths.month_counter = 8
minetest.chat_send_player(name, "Month has been changed to August")
elseif param == "9"
or param == "September"
or param == "september"
or param == "sep" then
mymonths.month = "September"
mymonths.month_counter = 9
minetest.chat_send_player(name, "Month has been changed to September")
elseif param == "10"
or param == "October"
or param == "october"
or param == "oct" then
mymonths.month = "October"
mymonths.month_counter = 10
minetest.chat_send_player(name, "Month has been changed to October")
elseif param == "11"
or param == "November"
or param == "november"
or param == "nov" then
mymonths.month = "November"
mymonths.month_counter = 11
minetest.chat_send_player(name, "Month has been changed to November")
elseif param == "12"
or param == "December"
or param == "december"
or param == "dec"then
mymonths.month = "December"
mymonths.month_counter = 12
minetest.chat_send_player(name, "Month has been changed to December")
else
minetest.chat_send_player(name, "invalid input")
return
end
mymonths.save_table()
end
})
--Set Days
minetest.register_chatcommand("setday", {
params = "",
description = "Set the day of the month",
privs = {mymonths = true},
func = function(name, param)
local d = tonumber(param)
if d then
for day = 1, 14 do
if tonumber(param) >= 15 then
return
end
if tonumber(param) == day then
mymonths.day_counter = tonumber(day)
end
end
end
end
})
--Weather
if mymonths.use_weather == true then
minetest.register_chatcommand("weather", {
params = "",
description = "Tells player the weather",
func = function(name, param)
minetest.chat_send_player(name,"The weather is " .. mymonths.weather2)
end
})
end -- END IF
--Time and Date
minetest.register_chatcommand("date", {
params = "",
description = "Say the date in chat",
func = function(name, param)
local t = tostring(minetest.get_timeofday() * 2400)
local tt = string.find(t, "%p",1)
tt = tt or "0" -- if nil then force value
local th = string.sub(t, tt-4,tt-3)
local tm = string.sub(t, tt-2,tt-1)
local m = (tm/100)*60
local mx = m+1000
local my = ".00"
local mz = mx..my
local mf = string.find(mz, "%p",1)
local mi = string.sub(mx,mf-2,mf-1)
local ampm = "am"
th = th or 0 -- if nil then force value
if tonumber(th..tm) >= 1201
and tonumber(th) <= 2400 then
ampm = "pm"
th = th - 12
if th == 0 then
th = 12
end
else
ampm = "am"
if th == 0
or th == "" then
th = 12
end
end
minetest.chat_send_player(name, "The time is " ..th.. ":"
.. mi .. " " .. ampm .. " on " .. mymonths.day_name
.. " " .. mymonths.month .. " " .. mymonths.day_counter)
end
})
--Gives list of holidays
minetest.register_chatcommand("holidays", {
params = "",
description = "Say the date in chat",
func = function(name, param)
minetest.chat_send_player(name, "New Years Day - January 1")
minetest.chat_send_player(name, "Friendship Day - March 12")
minetest.chat_send_player(name, "Miners Day - April 10")
minetest.chat_send_player(name, "Minetest Day - June 5")
minetest.chat_send_player(name, "Builders Day - August 12")
minetest.chat_send_player(name, "Harvest Day - October 8")
minetest.chat_send_player(name, "New Years Eve - December 14")
end
})