package com.massivecraft.factions.cmd; import com.massivecraft.factions.ConfServer; import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.FPlayerColl; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Rel; import com.massivecraft.factions.integration.Econ; import com.massivecraft.mcore.cmd.MCommand; import com.massivecraft.mcore.util.Txt; public abstract class FCommand extends MCommand { public FPlayer fme; public Faction myFaction; @Override public void fixSenderVars() { this.fme = FPlayerColl.get().get(this.sender); this.myFaction = this.fme.getFaction(); } // -------------------------------------------- // // COMMONLY USED LOGIC // -------------------------------------------- // public boolean canIAdministerYou(FPlayer i, FPlayer you) { if ( ! i.getFaction().equals(you.getFaction())) { i.sendMessage(Txt.parse("%s is not in the same faction as you.",you.describeTo(i, true))); return false; } if (i.getRole().isMoreThan(you.getRole()) || i.getRole().equals(Rel.LEADER) ) { return true; } if (you.getRole().equals(Rel.LEADER)) { i.sendMessage(Txt.parse("Only the faction admin can do that.")); } else if (i.getRole().equals(Rel.OFFICER)) { if ( i == you ) { return true; //Moderators can control themselves } else { i.sendMessage(Txt.parse("Moderators can't control each other...")); } } else { i.sendMessage(Txt.parse("You must be a faction moderator to do that.")); } return false; } // if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost public boolean payForCommand(double cost, String toDoThis, String forDoingThis) { if ( ! Econ.shouldBeUsed() || this.fme == null || cost == 0.0 || fme.isUsingAdminMode()) return true; if(ConfServer.bankEnabled && ConfServer.bankFactionPaysCosts && fme.hasFaction()) return Econ.modifyMoney(myFaction, -cost, toDoThis, forDoingThis); else return Econ.modifyMoney(fme, -cost, toDoThis, forDoingThis); } // like above, but just make sure they can pay; returns true unless person can't afford the cost public boolean canAffordCommand(double cost, String toDoThis) { if ( ! Econ.shouldBeUsed() || this.fme == null || cost == 0.0 || fme.isUsingAdminMode()) return true; if(ConfServer.bankEnabled && ConfServer.bankFactionPaysCosts && fme.hasFaction()) return Econ.hasAtLeast(myFaction, cost, toDoThis); else return Econ.hasAtLeast(fme, cost, toDoThis); } }