]> git.lizzy.rs Git - coronaserver.git/commitdiff
Added birthday, split code into files and fix saving of grantall
authorElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 4 May 2020 11:52:22 +0000 (13:52 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 4 May 2020 11:52:22 +0000 (13:52 +0200)
birthday.lua [new file with mode: 0644]
grantall.lua [new file with mode: 0644]
init.lua [changed mode: 0644->0755]
save.lua [new file with mode: 0644]

diff --git a/birthday.lua b/birthday.lua
new file mode 100644 (file)
index 0000000..6ba87ea
--- /dev/null
@@ -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 (file)
index 0000000..0e034a2
--- /dev/null
@@ -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 = "<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
+})
+
old mode 100644 (file)
new mode 100755 (executable)
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 = "<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
-})
diff --git a/save.lua b/save.lua
new file mode 100644 (file)
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()