Misc Fixes & Enhancements

master
Elias Fleckenstein 2020-05-10 17:58:23 +02:00
parent a3b44aa1d6
commit ed09d01004
5 changed files with 21 additions and 13 deletions

View File

@ -1,5 +1,5 @@
name = elidragon
description = The plugins for the Elidragon Server
author = Fleckenstein
depends = worldedit, moreores, moretrees, default, flowers
depends = worldedit, moreores, moretrees, default, flowers, areas
optional_depends = irc

View File

@ -8,7 +8,7 @@ local nodes = {
{"Anton", "elidragon_anton.png", "a"},
{"Max Glueckstaler", "elidragon_max_glueckstaler.png", "mg"},
{"Olliy", "elidragon_olliy.png", "o"},
{"Skyblock", "elidragon_skyblock.png", "sky"},
{"Island", "elidragon_island.png", "sky"},
{"Python", "default_rainforest_litter.png^elidragon_python.png", "py"},
{"Tux", "default_ice.png^elidragon_tux.png", "tux"},
}
@ -20,5 +20,7 @@ for _, def in pairs(nodes) do
groups = {cracky = 3, stone = 1},
stack_max = 1,
})
minetest.register_alias("elidragon_server:" .. def[3] .. "block", name)
if def[3] then
minetest.register_alias("elidragon_server:" .. def[3] .. "block", name)
end
end

View File

@ -37,12 +37,17 @@ elidragon.ranks = {
},
}
if not elidragon.savedata.ranks then
function elidragon.load_legacy_ranks()
local file = io.open(minetest.get_worldpath() .. "/ranks.json", "r")
local jsondata = file:read()
elidragon.savedata.ranks = minetest.parse_json(jsondata)
if file then
local ranks = minetest.parse_json(file:read())
file:close()
return ranks
end
end
elidragon.savedata.ranks = elidragon.savedata.ranks or elidragon.load_legacy_ranks() or {}
function elidragon.get_rank(name)
return elidragon.get_rank_by_name(elidragon.savedata.ranks[name] or "player")
end
@ -97,10 +102,11 @@ minetest.register_chatcommand("rank", {
description = "Set a player's rank (admin|moderator|helper|builder|vip|player)",
privs = {privs = true},
func = function(name, param)
local target = param:split(' ')[1]
local player = minetest.get_player_by_name(name)
local rank = param:split(' ')[2]
if not elidragon.get_rank_by_name(rank) then
local target = param:split(" ")[1]
local rank = param:split(" ")[2]
local target_ref = minetest.get_player_by_name(name)
local rank_ref = elidragon.get_rank_by_name(rank)
if not rank_ref then
minetest.chat_send_player(name, "Invalid Rank: " .. rank)
else
local privs = {}
@ -113,10 +119,10 @@ minetest.register_chatcommand("rank", {
end
end
minetest.set_player_privs(target, privs)
if player then
player:set_nametag_attributes({color = rank.color})
if target_ref then
target_ref:set_nametag_attributes({color = rank_ref.color})
end
minetest.chat_send_all(target .. " is now a " .. minetest.colorize(rank.color, rank.name))
minetest.chat_send_all(target .. " is now a " .. minetest.colorize(rank_ref.color, rank_ref.name))
end
end,
})

BIN
textures/elidragon_island.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB