From 66bc42745490c97b811094d6dda7fa02a95b3585 Mon Sep 17 00:00:00 2001 From: Brettflan Date: Wed, 20 Jul 2011 15:42:51 -0500 Subject: [PATCH] Added optional faction tag entry to /f sethome command to set the home of any faction, which is only allowed if the user has adminBypass permission --- .../factions/commands/FCommandSethome.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/com/massivecraft/factions/commands/FCommandSethome.java b/src/com/massivecraft/factions/commands/FCommandSethome.java index cec3f8bb..bcbbc5ce 100644 --- a/src/com/massivecraft/factions/commands/FCommandSethome.java +++ b/src/com/massivecraft/factions/commands/FCommandSethome.java @@ -2,6 +2,7 @@ package com.massivecraft.factions.commands; import com.massivecraft.factions.Conf; import com.massivecraft.factions.Faction; +import com.massivecraft.factions.Factions; import com.massivecraft.factions.struct.Role; public class FCommandSethome extends FBaseCommand { @@ -9,6 +10,8 @@ public class FCommandSethome extends FBaseCommand { public FCommandSethome() { aliases.add("sethome"); + optionalParameters.add("faction tag"); + helpDescription = "Set the faction home"; } @@ -32,16 +35,34 @@ public class FCommandSethome extends FBaseCommand { return; } - if (Conf.homesMustBeInClaimedTerritory && !me.isInOwnTerritory()) { + Faction myFaction = me.getFaction(); + + if (parameters.size() > 0) { + if (!Factions.hasPermAdminBypass(player)) { + me.sendMessage("You cannot set the home of another faction without adminBypass permission."); + return; + } + + myFaction = findFaction(parameters.get(0), true); + + if (myFaction == null) { + me.sendMessage("No such faction seems to exist."); + return; + } + } + + if (Conf.homesMustBeInClaimedTerritory && !me.isInOwnTerritory() && !Factions.hasPermAdminBypass(player)) { me.sendMessage("Sorry, your faction home can only be set inside your own claimed territory."); return; } - Faction myFaction = me.getFaction(); myFaction.setHome(player.getLocation()); myFaction.sendMessage(me.getNameAndRelevant(myFaction)+Conf.colorSystem+" set the home for your faction. You can now use:"); myFaction.sendMessage(new FCommandHome().getUseageTemplate()); + if (myFaction != me.getFaction()) { + me.sendMessage("You have set the home for the "+myFaction.getTag(me)+Conf.colorSystem+" faction."); + } } }