Added /f promote and removed faction_user requirement

This commit is contained in:
shamoanjac 2016-08-08 23:25:31 +02:00
parent 3445066913
commit 48139c5877
2 changed files with 27 additions and 5 deletions

View File

@ -143,9 +143,9 @@ init_commands = function()
minetest.register_chatcommand("f", minetest.register_chatcommand("f",
{ {
params = "<factionname> text", params = "<command> parameters",
description = "send message to a specific faction", description = "Factions commands. Type /f help for available commands.",
privs = { faction_user=true }, privs = { interact=true},
func = factions_chat.cmdhandler, func = factions_chat.cmdhandler,
} }
) )
@ -470,6 +470,22 @@ factions.register_command("spawn", {
end end
}) })
factions.register_command("promote", {
description = "Promotes a player to a rank",
format = {"player", "string"},
faction_permissions = {"promote"},
on_success = function(player, faction, pos, chunkpos, args)
local rank = args.strings[1]
if faction.ranks[rank] then
faction:promote(args.players[1], rank)
return true
else
send_error(player, "The specified rank does not exist.")
return false
end
end
})
factions.register_command("power", { factions.register_command("power", {
description = "Display your faction's power", description = "Display your faction's power",
on_success = function(player, faction, pos, chunkpos, args) on_success = function(player, faction, pos, chunkpos, args)

View File

@ -50,7 +50,7 @@ function factions.Faction:new(faction)
faction = { faction = {
power = 0., power = 0.,
players = {}, players = {},
ranks = {["leader"] = {"disband", "claim", "playerslist", "build", "description", "ranks", "spawn", "banner"}, ranks = {["leader"] = {"disband", "claim", "playerslist", "build", "description", "ranks", "spawn", "banner", "promote"},
["moderator"] = {"claim", "playerslist", "build", "spawn"}, ["moderator"] = {"claim", "playerslist", "build", "spawn"},
["member"] = {"build"} ["member"] = {"build"}
}, },
@ -227,11 +227,14 @@ function factions.Faction.delete_rank(self, rank, newrank)
self:on_delete_rank(rank, newrank) self:on_delete_rank(rank, newrank)
factions.save() factions.save()
end end
function factions.Faction.set_banner(self, newbanner) function factions.Faction.set_banner(self, newbanner)
self.banner = newbanner self.banner = newbanner
self:on_new_banner() self:on_new_banner()
end end
function factions.Faction.promote(self, member, rank)
self.players[member] = rank
self:on_promote(member)
end
-------------------------- --------------------------
-- callbacks for events -- -- callbacks for events --
@ -283,6 +286,9 @@ end
function factions.Faction.on_new_banner(self) function factions.Faction.on_new_banner(self)
--TODO: implement --TODO: implement
end end
function factions.Faction.on_promote(self, member)
--TODO: implement
end
--?????????????? --??????????????