package com.massivecraft.factions.cmd; import com.massivecraft.factions.ConfServer; import com.massivecraft.factions.FPerm; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; import com.massivecraft.factions.Perm; import com.massivecraft.factions.cmd.arg.ARFaction; import com.massivecraft.mcore.cmd.req.ReqHasPerm; import com.massivecraft.mcore.cmd.req.ReqIsPlayer; import com.massivecraft.mcore.ps.PS; public class CmdFactionsSethome extends FCommand { public CmdFactionsSethome() { this.addAliases("sethome"); this.addOptionalArg("faction", "you"); this.addRequirements(ReqIsPlayer.get()); this.addRequirements(ReqHasPerm.get(Perm.SETHOME.node)); } @Override public void perform() { // TODO: Make a command REQ instead? if ( ! ConfServer.homesEnabled) { fme.msg("Sorry, Faction homes are disabled on this server."); return; } Faction faction = this.arg(0, ARFaction.get(), myFaction); if (faction == null) return; // Has faction permission? if ( ! FPerm.SETHOME.has(sender, faction, true)) return; PS ps = PS.valueOf(me.getLocation()); // Can the player set the faction home HERE? if (!fme.isUsingAdminMode() && !faction.isValidHome(ps)) { fme.msg("Sorry, your faction home can only be set inside your own claimed territory."); return; } // if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay if ( ! payForCommand(ConfServer.econCostSethome, "to set the faction home", "for setting the faction home")) return; faction.setHome(ps); faction.msg("%s set the home for your faction. You can now use:", fme.describeTo(myFaction, true)); faction.sendMessage(Factions.get().getOuterCmdFactions().cmdFactionsHome.getUseageTemplate()); if (faction != myFaction) { fme.msg("You have set the home for the "+faction.getTag(fme)+" faction."); } } }