From dd88c6100944630b780c689f326111ffb10ca9a0 Mon Sep 17 00:00:00 2001 From: Coder12a <38924418+Coder12a@users.noreply.github.com> Date: Sat, 26 Jan 2019 13:15:28 -0600 Subject: [PATCH] Bug: you can promote someone in another faction --- chatcommands.lua | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/chatcommands.lua b/chatcommands.lua index b5a7c57..e481860 100644 --- a/chatcommands.lua +++ b/chatcommands.lua @@ -1204,8 +1204,23 @@ factions.register_command("promote", { on_success = function(player, faction, pos, parcelpos, args) local rank = args.strings[1] if faction.ranks[rank] then - factions.promote(faction.name, args.players[1]:get_player_name(), rank) - return true + local player_to_promote = args.players[1] + local name = player_to_promote:get_player_name() + + local player_faction, facname = factions.get_player_faction(name) + + local promoter_faction, promoter_facname = factions.get_player_faction(player) + + if player_faction and promoter_facname == facname then + factions.promote(faction.name, name, rank) + return true + elseif not player_faction or promoter_facname ~= facname then + send_error(player, name .. " is not in your faction") + return false + else + send_error(player, name .. " cannot be promoted from your faction") + return false + end else send_error(player, "The specified rank does not exist.") return false