]> git.lizzy.rs Git - coronaserver.git/blob - ranks.lua
Gave the Player Rank a prefix
[coronaserver.git] / ranks.lua
1 coronaserver.ranks = {
2         {
3                 name = "owner",
4                 color = "#FF2D8D",
5                 tag = "[OWNER]",
6         },
7         {
8                 name = "admin",
9                 color = "#FF362D",
10                 tag = "[ADMIN]",
11         },
12         {
13                 name = "moderator",
14                 color = "#001FFF",
15                 tag = "[MODERATOR]",
16         },
17         {
18                 name = "supporter",
19                 color = "#EE6E00",
20                 tag = "[SUPPORTER]",
21         },
22         {
23         name = "player",
24         color = "#FFFFFF",
25         tag = "[PLAYER]",
26     }
27 }
28 coronaserver.savedata.ranks = coronaserver.savedata.ranks or {}
29 function coronaserver.get_rank(name)
30     return coronaserver.get_rank_by_name(coronaserver.savedata.ranks[name] or "player")
31 end
32 function coronaserver.get_rank_by_name(rankname)
33         for _, rank in pairs(coronaserver.ranks) do
34                 if rank.name == rankname then
35                         return rank
36                 end
37         end
38 end
39 function coronaserver.get_player_name(name, brackets)
40     local rank = coronaserver.get_rank(name)
41     local rank_tag = minetest.colorize(rank.color, rank.tag)
42         if not brackets then 
43                 brackets = {"",""}
44         end
45         return rank_tag .. brackets[1] .. name .. brackets[2] .. " "
46 end
47 minetest.register_on_joinplayer(function(player)
48         local name = player:get_player_name()
49     minetest.chat_send_all(coronaserver.get_player_name(name) .. "has joined the Server.")
50     player:set_nametag_attributes({color = coronaserver.get_rank(name).color})
51 end)
52 minetest.register_on_leaveplayer(function(player)
53         local name = player:get_player_name()
54     minetest.chat_send_all(coronaserver.get_player_name(name) .. "has left the Server.")
55 end)
56 minetest.register_on_chat_message(function(name, message)
57     minetest.chat_send_all(coronaserver.get_player_name(name, {"<", ">"}) .. message)
58     return true
59 end)
60 minetest.register_chatcommand("rank", {
61         params = "<player> <rank>",
62         description = "Einem Spieler einen Rang geben (owner|admin|moderator|supporter)",
63         privs = {privs = true},
64         func = function(admin, param)
65                 local name = param:split(' ')[1]
66                 local player = minetest.get_player_by_name(name)
67         local rank = coronaserver.get_rank_by_name(param:split(' ')[2])
68                 if not rank then 
69             minetest.chat_send_player(admin,"Invalid Rank.")
70         else
71                         coronaserver.savedata.ranks[name] = rank.name
72                         coronaserver.save()
73                         if player then
74                                 player:set_nametag_attributes({color = rank.color})
75                         end
76                         minetest.chat_send_all(name .. " ist jetzt ein " .. minetest.colorize(rank.color, rank.name))
77                 end
78         end,
79 })