From: Elias Fleckenstein Date: Mon, 4 May 2020 11:52:22 +0000 (+0200) Subject: Added birthday, split code into files and fix saving of grantall X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=97f2905a5a1b31fdc88648950bc0f82e1d721a1b;p=coronaserver.git Added birthday, split code into files and fix saving of grantall --- diff --git a/birthday.lua b/birthday.lua new file mode 100644 index 0000000..6ba87ea --- /dev/null +++ b/birthday.lua @@ -0,0 +1,51 @@ +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 +}) diff --git a/grantall.lua b/grantall.lua new file mode 100644 index 0000000..0e034a2 --- /dev/null +++ b/grantall.lua @@ -0,0 +1,27 @@ +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 = "", + 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 +}) + diff --git a/init.lua b/init.lua old mode 100644 new mode 100755 index 931d134..3b177a5 --- a/init.lua +++ b/init.lua @@ -1,43 +1,7 @@ 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 = "", - 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 -}) diff --git a/save.lua b/save.lua new file mode 100644 index 0000000..b22a639 --- /dev/null +++ b/save.lua @@ -0,0 +1,15 @@ +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()