diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-06-07 18:34:21 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-06-07 18:34:21 +0200 |
commit | 20b8961640b6c22d4149f7268d403cb4609a03fb (patch) | |
tree | 0acdb70090ee8db3e77b5a5ad4573cdd13503e8f /ranks.lua | |
parent | cc84f066b001f4ea875b115ace6d533d1bc8b4f3 (diff) | |
download | skycraft-20b8961640b6c22d4149f7268d403cb4609a03fb.tar.xz |
New file Structure
Diffstat (limited to 'ranks.lua')
-rwxr-xr-x | ranks.lua | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/ranks.lua b/ranks.lua deleted file mode 100755 index 5869edb..0000000 --- a/ranks.lua +++ /dev/null @@ -1,113 +0,0 @@ -skycraft.ranks = { - player = { - privs = {"interact", "shout", "skycraft"}, - color = "#FFFFFF", - tag = "", - }, - vip = { - color = "#4FFF00", - tag = "[VIP]", - }, - mvp = { - color = "#00B6B3", - tag = "[MVP]", - }, - creative = { - privs = {"give", "fly", "fast"}, - color = "#FF9C00", - tag = "[Creative]", - }, - mod = { - privs = {"kick", "ban", "noclip", "settime", "teleport", "bring", "protection_bypass", "worldedit"}, - color = "#006BFF", - tag = "[Mod]", - }, - dev = { - privs = {"server", "privs"}, - color = "#9D00FF", - tag = "[Dev]", - }, - admin = { - color = "#FF001C", - tag = "[Admin]", - }, - owner = { - color = "#D90059", - tag = "[Owner]", - }, -} - -skycraft.offline_ranks = { - offline = { - color = "#969696", - tag = "[Offline]", - }, - console = { - color = "#000000", - tag = "[Console]", - }, -} - -function skycraft.get_rank(name) - local player = minetest.get_player_by_name(name) - if not player then - return skycraft.offline_ranks[(minetest.settings:get("name") == name) and "console" or "offline"] - end - local rank = player:get_meta():get_string("rank") - rank = (rank == "") and "player" or rank - return skycraft.ranks[rank] -end - -function skycraft.get_player_name(name, brackets) - local rank = skycraft.get_rank(name) - local rank_tag = minetest.colorize(rank.color, rank.tag) - if not brackets then - brackets = {"",""} - end - return rank_tag .. brackets[1] .. name .. brackets[2] -end - -function skycraft.update_nametag(player) - player:set_nametag_attributes({color = skycraft.get_rank(player:get_player_name()).color}) -end - -minetest.register_on_leaveplayer(function(player) - minetest.chat_send_all(skycraft.get_player_name(player:get_player_name()) .. " left the Server") - skycraft.update_nametag(player) -end) - -minetest.register_on_chat_message(function(name, message) - minetest.chat_send_all(skycraft.get_player_name(name, {"<", ">"}) .. " " .. message) - return true -end) - -minetest.register_chatcommand("rank", { - params = "<player> <rank>", - description = "Set a player's rank (owner|admin|dev|mod|creative|mvp|vip|player)", - privs = {privs = true}, - func = function(name, param) - local target = param:split(" ")[1] or "" - local target_ref = minetest.get_player_by_name(target) - local rank = param:split(" ")[2] or "" - local rank_ref = skycraft.ranks[rank] - if not rank_ref then - return false, "Invalid Rank '" .. rank .. "'." - elseif not target_ref then - return false, "Player '" .. target .. "' is not online." - else - local privs = {} - for k, v in pairs(skycraft.ranks) do - for _, priv in pairs(v.privs or {}) do - privs[priv] = true - end - if k == rank then - break - end - end - target_ref:get_meta():set_string("rank", rank) - minetest.set_player_privs(target, privs) - skycraft.update_nametag(target_ref) - return true, "The rank of '" .. target .. "' has been updated to '" .. rank .. "'." - end - end, -}) |