--- /dev/null
+coronaserver.savedata.birthday = coronaserver.savedata.birthday or {}
+function coronaserver.flower_rain(name)
+ local player = minetest.get_player_by_name(name)
+ if not player then
+ return
+ end
+ local pos = player:get_pos()
+ minetest.add_particlespawner({
+ amount = 50,
+ time = 2,
+ minpos = vector.add(pos, {x = -1, y = 2, z = -1}),
+ maxpos = vector.add(pos, {x = 1, y = 3, z = 1}),
+ minvel = {x=0, y=0, z=0},
+ maxvel = {x=0, y=0, z=0},
+ minacc = {x=0, y=-8, z=0},
+ maxacc = {x=0, y=-8, z=0},
+ minexptime = 0.7,
+ maxexptime = 1,
+ minsize = 5,
+ maxsize = 10,
+ collisiondetection = true,
+ vertical = true,
+ texture = "flowers_rose.png",
+ })
+ minetest.after(0.5, function() coronaserver.flower_rain(name) end)
+end
+minetest.register_on_joinplayer(function(player)
+ local name = player:get_player_name()
+ if coronaserver.savedata.birthday[name] == os.date("%d.%m") then
+ minetest.chat_send_all(minetest.colorize("#FF20FF", name .. " hat heute Geburtstag!"))
+ coronaserver.flower_rain(name)
+ player:hud_add({
+ hud_elem_type = "text",
+ position = {x = 1, y = 0},
+ offset = {x = -5, y = 5},
+ text = "Happy Birthday!",
+ alignment = {x = -1, y = 1},
+ scale = {x = 100, y = 100},
+ number = 0xFFF40A,
+ })
+ end
+end)
+minetest.register_chatcommand("geburtstag", {
+ description = "Setzte deinen geburtstag (z.b. 07.09 wenn du am 7. September Geburtstag hast)",
+ param = "TT.MM",
+ func = function(name, param)
+ coronaserver.savedata.birthday[name] = param
+ coronaserver.save()
+ minetest.chat_send_player(name, "Geburtstag auf den " .. param .. " gesetzt")
+ end
+})
--- /dev/null
+coronaserver.savedata.grantall = coronaserver.savedata.grantall or {}
+
+function coronaserver.update_privs(player)
+ local name = player:get_player_name()
+ local privs = minetest.get_player_privs(name)
+ for _, priv in pairs(coronaserver.savedata.grantall) do
+ privs[priv] = true
+ end
+ minetest.set_player_privs(name, privs)
+end
+
+minetest.register_on_joinplayer(coronaserver.update_privs)
+
+minetest.register_chatcommand("grantall", {
+ description = "Grant a privilegue to players when they join",
+ param = "<priv>",
+ privs = {privs = true},
+ func = function(name, param)
+ coronaserver.savedata.grantall[#coronaserver.savedata.grantall] = param
+ local players = minetest.get_connected_players()
+ for _, player in pairs(players) do
+ coronaserver.update_privs(player)
+ end
+ coronaserver.save()
+ end
+})
+
coronaserver = {}
-function coronaserver.load()
- local file = io.open(minetest.get_worldpath() .. "/coronaserver", "r")
- if file then
- coronaserver.savedata = minetest.deserialize(file:read())
- file:close()
- else
- coronaserver.savedata = {}
- end
-end
-function coronaserver.save()
- local file = io.open(minetest.get_worldpath() .. "/coronaserver", "w")
- file:write(minetest.serialize(coronaserver.savedata))
- file:close()
-end
-coronaserver.load()
-coronaserver.grantall = coronaserver.grantall or {}
+local modules = {"save", "grantall", "birthday"}
-function coronaserver.update_privs(player)
- local name = player:get_player_name()
- local privs = minetest.get_player_privs(name)
- for _, priv in pairs(coronaserver.grantall) do
- privs[priv] = true
- end
- minetest.set_player_privs(name, privs)
+for _, m in pairs(modules) do
+ dofile(minetest.get_modpath("coronaserver") .. "/" .. m .. ".lua")
end
-
-minetest.register_on_joinplayer(coronaserver.update_privs)
-
-minetest.register_chatcommand("grantall", {
- description = "Grant a privilegue to players when they join",
- param = "<priv>",
- privs = {privs = true},
- func = function(name, param)
- coronaserver.grantall[#coronaserver.grantall] = param
- local players = minetest.get_connected_players()
- for _, player in pairs(players) do
- coronaserver.update_privs(player)
- end
- coronaserver.save()
- end
-})
--- /dev/null
+function coronaserver.load()
+ local file = io.open(minetest.get_worldpath() .. "/coronaserver", "r")
+ if file then
+ coronaserver.savedata = minetest.deserialize(file:read())
+ file:close()
+ else
+ coronaserver.savedata = {}
+ end
+end
+function coronaserver.save()
+ local file = io.open(minetest.get_worldpath() .. "/coronaserver", "w")
+ file:write(minetest.serialize(coronaserver.savedata))
+ file:close()
+end
+coronaserver.load()