No compiletime errors anymore, how kewl. Let's test.
This commit is contained in:
		
							
								
								
									
										14
									
								
								plugin.yml
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								plugin.yml
									
									
									
									
									
								
							@@ -44,13 +44,13 @@ permissions:
 | 
				
			|||||||
  factions.list: {description: see a list of the factions}
 | 
					  factions.list: {description: see a list of the factions}
 | 
				
			||||||
  factions.lock: {description: lock all write stuff}
 | 
					  factions.lock: {description: lock all write stuff}
 | 
				
			||||||
  factions.map: {description: show the territory map, and set optional auto update}
 | 
					  factions.map: {description: show the territory map, and set optional auto update}
 | 
				
			||||||
  factions.money.balance: {description: show your factions current money balance}
 | 
					  factions.money.balance: {description: show money balance for a faction}
 | 
				
			||||||
  factions.money.balance.any: {description: show money balance for factions other than your own}
 | 
					  factions.money.balance.any: {description: show money balance for another faction}
 | 
				
			||||||
  factions.money.deposit: {description: deposit money into a faction bank}
 | 
					  factions.money.deposit: {description: deposit money to faction bank}
 | 
				
			||||||
  factions.money.f2f: {description: transfer money from faction to faction}
 | 
					  factions.money.f2f: {description: transfer f --> f}
 | 
				
			||||||
  factions.money.f2p: {description: transfer money from faction to player}
 | 
					  factions.money.f2p: {description: transfer f --> p}
 | 
				
			||||||
  factions.money.p2f: {description: transfer money from player to faction}
 | 
					  factions.money.p2f: {description: transfer p --> f}
 | 
				
			||||||
  factions.money.withdraw: {description: withdraw money from your faction bank}
 | 
					  factions.money.withdraw: {description: withdraw money from faction bank}
 | 
				
			||||||
  factions.officer: {description: give or revoke officer rights}
 | 
					  factions.officer: {description: give or revoke officer rights}
 | 
				
			||||||
  factions.officer.any: {description: give or revoke officer rights for any player in any faction}
 | 
					  factions.officer.any: {description: give or revoke officer rights for any player in any faction}
 | 
				
			||||||
  factions.open: {description: switch if invitation is required to join}
 | 
					  factions.open: {description: switch if invitation is required to join}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										49
									
								
								src/com/massivecraft/factions/FactionListComparator.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								src/com/massivecraft/factions/FactionListComparator.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					package com.massivecraft.factions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Comparator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.mcore.util.MUtil;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class FactionListComparator implements Comparator<Faction>
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// INSTANCE & CONSTRUCT
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private static FactionListComparator i = new FactionListComparator();
 | 
				
			||||||
 | 
						public static FactionListComparator get() { return i; }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// OVERRIDE: COMPARATOR
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public int compare(Faction f1, Faction f2)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							int ret = 0;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							// Null --> Low
 | 
				
			||||||
 | 
							if (f1 == null && f2 == null) ret = 0;
 | 
				
			||||||
 | 
							if (f1 == null) ret = -1;
 | 
				
			||||||
 | 
							if (f2 == null) ret = +1;
 | 
				
			||||||
 | 
							if (ret != 0) return ret;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							// None --> High
 | 
				
			||||||
 | 
							if (f1.isNone() && f2.isNone()) ret = 0;
 | 
				
			||||||
 | 
							if (f1.isNone()) ret = +1;
 | 
				
			||||||
 | 
							if (f2.isNone()) ret = -1;
 | 
				
			||||||
 | 
							if (ret != 0) return ret;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							// Players Online --> High
 | 
				
			||||||
 | 
							ret = f1.getFPlayersWhereOnline(true).size() - f2.getFPlayersWhereOnline(true).size();
 | 
				
			||||||
 | 
							if (ret != 0) return ret;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							// Players Total --> High
 | 
				
			||||||
 | 
							ret = f1.getFPlayers().size() - f2.getFPlayers().size();
 | 
				
			||||||
 | 
							if (ret != 0) return ret;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							// Tie by Id
 | 
				
			||||||
 | 
							return MUtil.compare(f1.getId(), f2.getId());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -3,9 +3,7 @@ package com.massivecraft.factions.cmd;
 | 
				
			|||||||
import java.util.Collections;
 | 
					import java.util.Collections;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.ConfServer;
 | 
					import com.massivecraft.factions.ConfServer;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					 | 
				
			||||||
import com.massivecraft.mcore.cmd.HelpCommand;
 | 
					import com.massivecraft.mcore.cmd.HelpCommand;
 | 
				
			||||||
import com.massivecraft.mcore.util.Txt;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CmdFactions extends FCommand
 | 
					public class CmdFactions extends FCommand
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -57,8 +55,8 @@ public class CmdFactions extends FCommand
 | 
				
			|||||||
		// TODO: When is this required? Should this be added to MCore?
 | 
							// TODO: When is this required? Should this be added to MCore?
 | 
				
			||||||
		this.aliases.removeAll(Collections.singletonList(null));
 | 
							this.aliases.removeAll(Collections.singletonList(null));
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.setHelpShort("The faction base command");
 | 
							this.setDesc("The faction base command");
 | 
				
			||||||
		this.helpLong.add(Txt.parse("<i>This command contains all faction stuff."));
 | 
							this.setHelp("This command contains all faction stuff.");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addSubCommand(HelpCommand.get());
 | 
							this.addSubCommand(HelpCommand.get());
 | 
				
			||||||
		this.addSubCommand(this.cmdFactionsList);
 | 
							this.addSubCommand(this.cmdFactionsList);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,8 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.TerritoryAccess;
 | 
					import com.massivecraft.factions.TerritoryAccess;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
					import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
				
			||||||
import com.massivecraft.mcore.ps.PS;
 | 
					import com.massivecraft.mcore.ps.PS;
 | 
				
			||||||
@@ -21,9 +23,9 @@ public class CmdFactionsAccess extends FCommand
 | 
				
			|||||||
		this.addOptionalArg("view|p|player|f|faction", "view");
 | 
							this.addOptionalArg("view|p|player|f|faction", "view");
 | 
				
			||||||
		this.addOptionalArg("name", "you");
 | 
							this.addOptionalArg("name", "you");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.setHelpShort("view or grant access for the claimed territory you are in");
 | 
							this.setDesc("view or grant access for the claimed territory you are in");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// TODO: Missing permission node here!
 | 
							// TODO: Missing permission node here!?
 | 
				
			||||||
		this.addRequirements(ReqIsPlayer.get());
 | 
							this.addRequirements(ReqIsPlayer.get());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
@@ -71,14 +73,14 @@ public class CmdFactionsAccess extends FCommand
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		if (doPlayer)
 | 
							if (doPlayer)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			FPlayer targetPlayer = this.argAsBestFPlayerMatch(1, fme);
 | 
								FPlayer targetPlayer = this.arg(1, ARFPlayer.getStartAny(), fme);
 | 
				
			||||||
			if (targetPlayer == null) return;
 | 
								if (targetPlayer == null) return;
 | 
				
			||||||
			added = territory.toggleFPlayer(targetPlayer);
 | 
								added = territory.toggleFPlayer(targetPlayer);
 | 
				
			||||||
			target = "Player \""+targetPlayer.getName()+"\"";
 | 
								target = "Player \""+targetPlayer.getName()+"\"";
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Faction targetFaction = this.argAsFaction(1, myFaction);
 | 
								Faction targetFaction = this.arg(1, ARFaction.get(), myFaction);
 | 
				
			||||||
			if (targetFaction == null) return;
 | 
								if (targetFaction == null) return;
 | 
				
			||||||
			added = territory.toggleFaction(targetFaction);
 | 
								added = territory.toggleFaction(targetFaction);
 | 
				
			||||||
			target = "Faction \""+targetFaction.getTag()+"\"";
 | 
								target = "Faction \""+targetFaction.getTag()+"\"";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,9 @@ package com.massivecraft.factions.cmd;
 | 
				
			|||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
					import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CmdFactionsDeinvite extends FCommand
 | 
					public class CmdFactionsDeinvite extends FCommand
 | 
				
			||||||
@@ -16,11 +18,7 @@ public class CmdFactionsDeinvite extends FCommand
 | 
				
			|||||||
		this.addRequiredArg("player");
 | 
							this.addRequiredArg("player");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.DEINVITE.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.DEINVITE.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		// TODO: Base on faction permissions instead?
 | 
					 | 
				
			||||||
		senderMustBeMember = false;
 | 
					 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
		senderMustBeLeader = false;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,8 @@ import com.massivecraft.factions.ConfServer;
 | 
				
			|||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.FPlayerColl;
 | 
					import com.massivecraft.factions.FPlayerColl;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
import com.massivecraft.mcore.util.Txt;
 | 
					import com.massivecraft.mcore.util.Txt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -17,8 +19,7 @@ public class CmdFactionsDescription extends FCommand
 | 
				
			|||||||
		this.setErrorOnToManyArgs(false);
 | 
							this.setErrorOnToManyArgs(false);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.DESCRIPTION.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.DESCRIPTION.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,7 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.Rel;
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.factions.integration.EssentialsFeatures;
 | 
					import com.massivecraft.factions.integration.EssentialsFeatures;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
					import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
				
			||||||
@@ -31,8 +32,7 @@ public class CmdFactionsHome extends FCommand
 | 
				
			|||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.HOME.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.HOME.node));
 | 
				
			||||||
		this.addRequirements(ReqIsPlayer.get());
 | 
							this.addRequirements(ReqIsPlayer.get());
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.RECRUIT));
 | 
				
			||||||
		senderMustBeMember = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,11 +3,11 @@ package com.massivecraft.factions.cmd;
 | 
				
			|||||||
import com.massivecraft.factions.ConfServer;
 | 
					import com.massivecraft.factions.ConfServer;
 | 
				
			||||||
import com.massivecraft.factions.FPerm;
 | 
					import com.massivecraft.factions.FPerm;
 | 
				
			||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
					import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
					import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -21,8 +21,7 @@ public class CmdFactionsInvite extends FCommand
 | 
				
			|||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.INVITE.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.INVITE.node));
 | 
				
			||||||
		this.addRequirements(ReqIsPlayer.get());
 | 
							this.addRequirements(ReqIsPlayer.get());
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,7 @@ public class CmdFactionsLeader extends FCommand
 | 
				
			|||||||
			// Follow the standard rules
 | 
								// Follow the standard rules
 | 
				
			||||||
			if (fme.getRole() != Rel.LEADER || targetFaction != myFaction)
 | 
								if (fme.getRole() != Rel.LEADER || targetFaction != myFaction)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				sender.sendMessage(Txt.parse("<b>You must be leader of the faction to %s.", this.getHelpShort()));
 | 
									sender.sendMessage(Txt.parse("<b>You must be leader of the faction to %s.", this.getDesc()));
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CmdFactionsLeave extends FCommand {
 | 
					public class CmdFactionsLeave extends FCommand {
 | 
				
			||||||
@@ -10,8 +12,7 @@ public class CmdFactionsLeave extends FCommand {
 | 
				
			|||||||
		this.addAliases("leave");
 | 
							this.addAliases("leave");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.LEAVE.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.LEAVE.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.RECRUIT));
 | 
				
			||||||
		senderMustBeMember = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,14 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.Collections;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Comparator;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.ConfServer;
 | 
					import com.massivecraft.factions.ConfServer;
 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.FactionColl;
 | 
					import com.massivecraft.factions.FactionColl;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.FactionListComparator;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.mcore.cmd.arg.ARInteger;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
import com.massivecraft.mcore.util.Txt;
 | 
					import com.massivecraft.mcore.util.Txt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,78 +28,30 @@ public class CmdFactionsList extends FCommand
 | 
				
			|||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public void perform()
 | 
						public void perform()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
							Integer pageHumanBased = this.arg(0, ARInteger.get(), 1);
 | 
				
			||||||
 | 
							if (pageHumanBased == null) return;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
 | 
							// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
 | 
				
			||||||
		if ( ! payForCommand(ConfServer.econCostList, "to list the factions", "for listing the factions")) return;
 | 
							if ( ! payForCommand(ConfServer.econCostList, "to list the factions", "for listing the factions")) return;
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		ArrayList<Faction> factionList = new ArrayList<Faction>(FactionColl.get().getAll());
 | 
							// Create Messages
 | 
				
			||||||
 | 
							List<String> lines = new ArrayList<String>();
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		factionList.remove(FactionColl.get().getNone());
 | 
							ArrayList<Faction> factionList = new ArrayList<Faction>(FactionColl.get().getAll(null, FactionListComparator.get()));
 | 
				
			||||||
		// TODO: Add flag SECRET To factions instead.
 | 
					 | 
				
			||||||
		//factionList.remove(Factions.i.getSafeZone());
 | 
					 | 
				
			||||||
		//factionList.remove(Factions.i.getWarZone());
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		// Sort by total followers first
 | 
					 | 
				
			||||||
		Collections.sort(factionList, new Comparator<Faction>(){
 | 
					 | 
				
			||||||
			@Override
 | 
					 | 
				
			||||||
			public int compare(Faction f1, Faction f2) {
 | 
					 | 
				
			||||||
				int f1Size = f1.getFPlayers().size();
 | 
					 | 
				
			||||||
				int f2Size = f2.getFPlayers().size();
 | 
					 | 
				
			||||||
				if (f1Size < f2Size)
 | 
					 | 
				
			||||||
					return 1;
 | 
					 | 
				
			||||||
				else if (f1Size > f2Size)
 | 
					 | 
				
			||||||
					return -1;
 | 
					 | 
				
			||||||
				return 0;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		// Then sort by how many members are online now
 | 
					 | 
				
			||||||
		Collections.sort(factionList, new Comparator<Faction>(){
 | 
					 | 
				
			||||||
			@Override
 | 
					 | 
				
			||||||
			public int compare(Faction f1, Faction f2) {
 | 
					 | 
				
			||||||
				int f1Size = f1.getFPlayersWhereOnline(true).size();
 | 
					 | 
				
			||||||
				int f2Size = f2.getFPlayersWhereOnline(true).size();
 | 
					 | 
				
			||||||
				if (f1Size < f2Size)
 | 
					 | 
				
			||||||
					return 1;
 | 
					 | 
				
			||||||
				else if (f1Size > f2Size)
 | 
					 | 
				
			||||||
					return -1;
 | 
					 | 
				
			||||||
				return 0;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		});
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		ArrayList<String> lines = new ArrayList<String>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*		// this code was really slow on large servers, getting full info for every faction and then only showing 9 of them; rewritten below
 | 
					 | 
				
			||||||
		lines.add(Txt.parse("<i>Factionless<i> %d online", Factions.i.getNone().getFPlayersWhereOnline(true).size()));
 | 
					 | 
				
			||||||
		for (Faction faction : factionList)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			lines.add(Txt.parse("%s<i> %d/%d online, %d/%d/%d",
 | 
					 | 
				
			||||||
				faction.getTag(fme),
 | 
					 | 
				
			||||||
				faction.getFPlayersWhereOnline(true).size(),
 | 
					 | 
				
			||||||
				faction.getFPlayers().size(),
 | 
					 | 
				
			||||||
				faction.getLandRounded(),
 | 
					 | 
				
			||||||
				faction.getPowerRounded(),
 | 
					 | 
				
			||||||
				faction.getPowerMaxRounded())
 | 
					 | 
				
			||||||
			);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		sendMessage(Txt.getPage(lines, this.argAsInt(0, 1), "Faction List"));
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		factionList.add(0, FactionColl.get().getNone());
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		final int pageheight = 9;
 | 
							final int pageheight = 9;
 | 
				
			||||||
		int pagenumber = this.argAsInt(0, 1);
 | 
							
 | 
				
			||||||
		int pagecount = (factionList.size() / pageheight) + 1;
 | 
							int pagecount = (factionList.size() / pageheight) + 1;
 | 
				
			||||||
		if (pagenumber > pagecount)
 | 
							if (pageHumanBased > pagecount)
 | 
				
			||||||
			pagenumber = pagecount;
 | 
								pageHumanBased = pagecount;
 | 
				
			||||||
		else if (pagenumber < 1)
 | 
							else if (pageHumanBased < 1)
 | 
				
			||||||
			pagenumber = 1;
 | 
								pageHumanBased = 1;
 | 
				
			||||||
		int start = (pagenumber - 1) * pageheight;
 | 
							int start = (pageHumanBased - 1) * pageheight;
 | 
				
			||||||
		int end = start + pageheight;
 | 
							int end = start + pageheight;
 | 
				
			||||||
		if (end > factionList.size())
 | 
							if (end > factionList.size())
 | 
				
			||||||
			end = factionList.size();
 | 
								end = factionList.size();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		lines.add(Txt.titleize("Faction List "+pagenumber+"/"+pagecount));
 | 
							lines.add(Txt.titleize("Faction List "+pageHumanBased+"/"+pagecount));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for (Faction faction : factionList.subList(start, end))
 | 
							for (Faction faction : factionList.subList(start, end))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,7 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.HelpCommand;
 | 
					import com.massivecraft.mcore.cmd.HelpCommand;
 | 
				
			||||||
import com.massivecraft.mcore.util.Txt;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CmdFactionsMoney extends FCommand
 | 
					public class CmdFactionsMoney extends FCommand
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -17,15 +16,10 @@ public class CmdFactionsMoney extends FCommand
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		this.addAliases("money");
 | 
							this.addAliases("money");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.isMoneyCommand = true;
 | 
							this.setDesc("faction money commands");
 | 
				
			||||||
 | 
							this.setHelp("The faction money commands.");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		senderMustBePlayer = false;
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		senderMustBeMember = false;
 | 
					 | 
				
			||||||
		senderMustBeOfficer = false;
 | 
					 | 
				
			||||||
		senderMustBeLeader = false;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		this.setHelpShort("faction money commands");
 | 
					 | 
				
			||||||
		this.helpLong.add(Txt.parse("<i>The faction money commands."));
 | 
					 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addSubCommand(this.cmdMoneyBalance);
 | 
							this.addSubCommand(this.cmdMoneyBalance);
 | 
				
			||||||
		this.addSubCommand(this.cmdMoneyDeposit);
 | 
							this.addSubCommand(this.cmdMoneyDeposit);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
@@ -15,8 +16,7 @@ public class CmdFactionsMoneyBalance extends FCommand
 | 
				
			|||||||
		this.addOptionalArg("faction", "you");
 | 
							this.addOptionalArg("faction", "you");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.MONEY_BALANCE.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.MONEY_BALANCE.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		this.setHelpShort("show faction balance");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
import com.massivecraft.factions.iface.EconomyParticipator;
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
					import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
@@ -25,8 +25,7 @@ public class CmdFactionsMoneyDeposit extends FCommand
 | 
				
			|||||||
		this.addOptionalArg("faction", "you");
 | 
							this.addOptionalArg("faction", "you");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.MONEY_DEPOSIT.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.MONEY_DEPOSIT.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		this.setHelpShort("deposit money");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ import com.massivecraft.factions.ConfServer;
 | 
				
			|||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
import com.massivecraft.factions.iface.EconomyParticipator;
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
					import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
				
			||||||
@@ -25,8 +25,7 @@ public class CmdFactionsMoneyTransferFf extends FCommand
 | 
				
			|||||||
		this.addRequiredArg("faction");
 | 
							this.addRequiredArg("faction");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.MONEY_F2F.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.MONEY_F2F.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		this.setHelpShort("transfer f -> f");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
					import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
import com.massivecraft.factions.iface.EconomyParticipator;
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
					import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
				
			||||||
@@ -27,8 +27,7 @@ public class CmdFactionsMoneyTransferFp extends FCommand
 | 
				
			|||||||
		this.addRequiredArg("player");
 | 
							this.addRequiredArg("player");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.MONEY_F2P.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.MONEY_F2P.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		this.setHelpShort("transfer f -> p");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
					import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
import com.massivecraft.factions.iface.EconomyParticipator;
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
					import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
				
			||||||
@@ -27,8 +27,7 @@ public class CmdFactionsMoneyTransferPf extends FCommand
 | 
				
			|||||||
		this.addRequiredArg("faction");
 | 
							this.addRequiredArg("faction");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.MONEY_P2F.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.MONEY_P2F.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		this.setHelpShort("transfer p -> f");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ import com.massivecraft.factions.ConfServer;
 | 
				
			|||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
import com.massivecraft.factions.iface.EconomyParticipator;
 | 
					import com.massivecraft.factions.cmd.req.ReqBankCommandsEnabled;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
					import com.massivecraft.mcore.cmd.arg.ARDouble;
 | 
				
			||||||
@@ -24,8 +24,7 @@ public class CmdFactionsMoneyWithdraw extends FCommand
 | 
				
			|||||||
		this.addOptionalArg("faction", "you");
 | 
							this.addOptionalArg("faction", "you");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.MONEY_WITHDRAW.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.MONEY_WITHDRAW.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqBankCommandsEnabled.get());
 | 
				
			||||||
		this.setHelpShort("withdraw money");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,8 @@ import com.massivecraft.factions.ConfServer;
 | 
				
			|||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.FactionColl;
 | 
					import com.massivecraft.factions.FactionColl;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARBoolean;
 | 
					import com.massivecraft.mcore.cmd.arg.ARBoolean;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,8 +18,7 @@ public class CmdFactionsOpen extends FCommand
 | 
				
			|||||||
		this.addOptionalArg("yes/no", "toggle");
 | 
							this.addOptionalArg("yes/no", "toggle");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.OPEN.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.OPEN.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,10 +8,10 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
import com.massivecraft.factions.Rel;
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
					import com.massivecraft.factions.cmd.arg.ARFaction;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.factions.event.FactionRelationEvent;
 | 
					import com.massivecraft.factions.event.FactionRelationEvent;
 | 
				
			||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqIsPlayer;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class CmdFactionsRelationAbstract extends FCommand
 | 
					public abstract class CmdFactionsRelationAbstract extends FCommand
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -22,8 +22,7 @@ public abstract class CmdFactionsRelationAbstract extends FCommand
 | 
				
			|||||||
		this.addAliases("faction");
 | 
							this.addAliases("faction");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.RELATION.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.RELATION.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,8 @@ import com.massivecraft.factions.ConfServer;
 | 
				
			|||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.FactionColl;
 | 
					import com.massivecraft.factions.FactionColl;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.factions.event.FactionRenameEvent;
 | 
					import com.massivecraft.factions.event.FactionRenameEvent;
 | 
				
			||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
import com.massivecraft.factions.util.MiscUtil;
 | 
					import com.massivecraft.factions.util.MiscUtil;
 | 
				
			||||||
@@ -23,8 +25,7 @@ public class CmdFactionsTag extends FCommand
 | 
				
			|||||||
		this.addRequiredArg("new tag");
 | 
							this.addRequiredArg("new tag");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.TAG.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.TAG.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,11 +3,12 @@ package com.massivecraft.factions.cmd;
 | 
				
			|||||||
import com.massivecraft.factions.ConfServer;
 | 
					import com.massivecraft.factions.ConfServer;
 | 
				
			||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
					import com.massivecraft.factions.cmd.arg.ARFPlayer;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.arg.ARString;
 | 
					import com.massivecraft.mcore.cmd.arg.ARString;
 | 
				
			||||||
import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
					import com.massivecraft.mcore.cmd.req.ReqHasPerm;
 | 
				
			||||||
import com.massivecraft.mcore.util.Txt;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CmdFactionsTitle extends FCommand
 | 
					public class CmdFactionsTitle extends FCommand
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -19,8 +20,7 @@ public class CmdFactionsTitle extends FCommand
 | 
				
			|||||||
		this.addOptionalArg("title", "");
 | 
							this.addOptionalArg("title", "");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.TITLE.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.TITLE.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,8 @@ import com.massivecraft.factions.BoardColl;
 | 
				
			|||||||
import com.massivecraft.factions.ConfServer;
 | 
					import com.massivecraft.factions.ConfServer;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.Perm;
 | 
					import com.massivecraft.factions.Perm;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Rel;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.cmd.req.ReqRoleIsAtLeast;
 | 
				
			||||||
import com.massivecraft.factions.event.LandUnclaimAllEvent;
 | 
					import com.massivecraft.factions.event.LandUnclaimAllEvent;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
@@ -18,8 +20,7 @@ public class CmdFactionsUnclaimall extends FCommand
 | 
				
			|||||||
		this.addAliases("unclaimall", "declaimall");
 | 
							this.addAliases("unclaimall", "declaimall");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		this.addRequirements(ReqHasPerm.get(Perm.UNCLAIM_ALL.node));
 | 
							this.addRequirements(ReqHasPerm.get(Perm.UNCLAIM_ALL.node));
 | 
				
			||||||
		
 | 
							this.addRequirements(ReqRoleIsAtLeast.get(Rel.OFFICER));
 | 
				
			||||||
		senderMustBeOfficer = true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,383 +0,0 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.massivecraft.factions.ConfServer;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FFlag;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FPerm;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FPlayer;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FPlayerColl;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FactionColl;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.Rel;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.zcore.MCommand;
 | 
					 | 
				
			||||||
import com.massivecraft.mcore.util.Txt;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public abstract class FCommandOld extends MCommand<Factions>
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	public FPlayer fme;
 | 
					 | 
				
			||||||
	public Faction myFaction;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// TODO: All these are "command reqs"
 | 
					 | 
				
			||||||
	public boolean senderMustBeMember;
 | 
					 | 
				
			||||||
	public boolean senderMustBeOfficer;
 | 
					 | 
				
			||||||
	public boolean senderMustBeLeader;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public boolean isMoneyCommand;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	public FCommandOld()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		super(Factions.get());
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		// The money commands must be disabled if money should not be used.
 | 
					 | 
				
			||||||
		isMoneyCommand = false;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		senderMustBeMember = false;
 | 
					 | 
				
			||||||
		senderMustBeOfficer = false;
 | 
					 | 
				
			||||||
		senderMustBeLeader = false;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public void execute(CommandSender sender, List<String> args, List<MCommand<?>> commandChain)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (sender instanceof Player)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.fme = FPlayerColl.get().get(sender);
 | 
					 | 
				
			||||||
			this.myFaction = this.fme.getFaction();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.fme = null;
 | 
					 | 
				
			||||||
			this.myFaction = null;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		super.execute(sender, args, commandChain);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public boolean isEnabled()
 | 
					 | 
				
			||||||
	{	
 | 
					 | 
				
			||||||
		if (this.isMoneyCommand && ! ConfServer.econEnabled)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			msg("<b>Faction economy features are disabled on this server.");
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (this.isMoneyCommand && ! ConfServer.bankEnabled)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			msg("<b>The faction bank system is disabled on this server.");
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return true;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public boolean validSenderType(CommandSender sender, boolean informSenderIfNot)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		boolean superValid = super.validSenderType(sender, informSenderIfNot);
 | 
					 | 
				
			||||||
		if ( ! superValid) return false;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if ( ! (this.senderMustBeMember || this.senderMustBeOfficer || this.senderMustBeLeader)) return true;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if ( ! (sender instanceof Player)) return false;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		FPlayer fplayer = FPlayerColl.get().get((Player)sender);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if ( ! fplayer.hasFaction())
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			sender.sendMessage(Txt.parse("<b>You are not member of any faction."));
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (this.senderMustBeOfficer && ! fplayer.getRole().isAtLeast(Rel.OFFICER))
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			sender.sendMessage(Txt.parse("<b>Only faction moderators can %s.", this.getHelpShort()));
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (this.senderMustBeLeader && ! fplayer.getRole().isAtLeast(Rel.LEADER))
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			sender.sendMessage(Txt.parse("<b>Only faction admins can %s.", this.getHelpShort()));
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
		return true;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// -------------------------------------------- //
 | 
					 | 
				
			||||||
	// Assertions
 | 
					 | 
				
			||||||
	// -------------------------------------------- //
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// These are not used. Remove in the future if no need for them arises.
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	public boolean assertHasFaction()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (me == null) return true;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if ( ! fme.hasFaction())
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			sendMessage("You are not member of any faction.");
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return true;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	public boolean assertMinRole(Rel role)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (me == null) return true;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (fme.getRole().isLessThan(role))
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			msg("<b>You <h>must be "+role+"<b> to "+this.getHelpShort()+".");
 | 
					 | 
				
			||||||
			return false;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return true;
 | 
					 | 
				
			||||||
	}*/
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// -------------------------------------------- //
 | 
					 | 
				
			||||||
	// Argument Readers
 | 
					 | 
				
			||||||
	// -------------------------------------------- //
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// TODO: Convert these arg-readers to MCore ArgReaders.
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// FPLAYER ======================
 | 
					 | 
				
			||||||
	public FPlayer strAsFPlayer(String name, FPlayer def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		FPlayer ret = def;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (name != null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			FPlayer fplayer = FPlayerColl.get().get(name);
 | 
					 | 
				
			||||||
			if (fplayer != null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				ret = fplayer;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (msg && ret == null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.msg("<b>No player \"<p>%s<b>\" could be found.", name);			
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return ret;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPlayer argAsFPlayer(int idx, FPlayer def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.strAsFPlayer(this.argAsString(idx), def, msg);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPlayer argAsFPlayer(int idx, FPlayer def)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFPlayer(idx, def, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPlayer argAsFPlayer(int idx)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFPlayer(idx, null);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// BEST FPLAYER MATCH ======================
 | 
					 | 
				
			||||||
	public FPlayer strAsBestFPlayerMatch(String name, FPlayer def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		FPlayer ret = def;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (name != null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			// TODO: Easy fix for now
 | 
					 | 
				
			||||||
			//FPlayer fplayer = FPlayerColl.get().getBestIdMatch(name);
 | 
					 | 
				
			||||||
			FPlayer fplayer = FPlayerColl.get().getId2entity().get(name);
 | 
					 | 
				
			||||||
			if (fplayer != null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				ret = fplayer;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (msg && ret == null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.msg("<b>No player match found for \"<p>%s<b>\".", name);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return ret;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.strAsBestFPlayerMatch(this.argAsString(idx), def, msg);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPlayer argAsBestFPlayerMatch(int idx, FPlayer def)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsBestFPlayerMatch(idx, def, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPlayer argAsBestFPlayerMatch(int idx)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsBestFPlayerMatch(idx, null);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// FACTION ======================
 | 
					 | 
				
			||||||
	public Faction strAsFaction(String name, Faction def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		Faction ret = def;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (name != null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			Faction faction = null;
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			// First we try an exact match
 | 
					 | 
				
			||||||
			if (faction == null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				faction = FactionColl.get().getByTag(name);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			// Next we match faction tags
 | 
					 | 
				
			||||||
			if (faction == null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				faction = FactionColl.get().getBestTagMatch(name);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
			// Next we match player names
 | 
					 | 
				
			||||||
			if (faction == null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				// TODO: Easy fix for now
 | 
					 | 
				
			||||||
				//FPlayer fplayer = FPlayerColl.get().getBestIdMatch(name);
 | 
					 | 
				
			||||||
				FPlayer fplayer = FPlayerColl.get().getId2entity().get(name);
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
				if (fplayer != null)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					faction = fplayer.getFaction();
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			if (faction != null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				ret = faction;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (msg && ret == null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.msg("<b>The faction or player \"<p>%s<b>\" could not be found.", name);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return ret;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public Faction argAsFaction(int idx, Faction def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.strAsFaction(this.argAsString(idx), def, msg);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public Faction argAsFaction(int idx, Faction def)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFaction(idx, def, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public Faction argAsFaction(int idx)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFaction(idx, null);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// FACTION FLAG ======================
 | 
					 | 
				
			||||||
	public FFlag strAsFactionFlag(String name, FFlag def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		FFlag ret = def;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (name != null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			FFlag flag = FFlag.parse(name);
 | 
					 | 
				
			||||||
			if (flag != null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				ret = flag;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (msg && ret == null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.msg("<b>The faction-flag \"<p>%s<b>\" could not be found.", name);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return ret;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FFlag argAsFactionFlag(int idx, FFlag def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.strAsFactionFlag(this.argAsString(idx), def, msg);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FFlag argAsFactionFlag(int idx, FFlag def)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFactionFlag(idx, def, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FFlag argAsFactionFlag(int idx)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFactionFlag(idx, null);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// FACTION PERM ======================
 | 
					 | 
				
			||||||
	public FPerm strAsFactionPerm(String name, FPerm def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		FPerm ret = def;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (name != null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			FPerm perm = FPerm.parse(name);
 | 
					 | 
				
			||||||
			if (perm != null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				ret = perm;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (msg && ret == null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.msg("<b>The faction-perm \"<p>%s<b>\" could not be found.", name);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return ret;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPerm argAsFactionPerm(int idx, FPerm def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.strAsFactionPerm(this.argAsString(idx), def, msg);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPerm argAsFactionPerm(int idx, FPerm def)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFactionPerm(idx, def, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public FPerm argAsFactionPerm(int idx)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsFactionPerm(idx, null);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// FACTION REL ======================
 | 
					 | 
				
			||||||
	public Rel strAsRel(String name, Rel def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		Rel ret = def;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (name != null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			Rel perm = Rel.parse(name);
 | 
					 | 
				
			||||||
			if (perm != null)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				ret = perm;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		if (msg && ret == null)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			this.msg("<b>The role \"<p>%s<b>\" could not be found.", name);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		return ret;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public Rel argAsRel(int idx, Rel def, boolean msg)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.strAsRel(this.argAsString(idx), def, msg);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public Rel argAsRel(int idx, Rel def)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsRel(idx, def, true);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	public Rel argAsRel(int idx)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		return this.argAsRel(idx, null);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					package com.massivecraft.factions.cmd.req;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.ConfServer;
 | 
				
			||||||
 | 
					import com.massivecraft.mcore.cmd.MCommand;
 | 
				
			||||||
 | 
					import com.massivecraft.mcore.cmd.req.ReqAbstract;
 | 
				
			||||||
 | 
					import com.massivecraft.mcore.util.Txt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class ReqBankCommandsEnabled extends ReqAbstract
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						private static final long serialVersionUID = 1L;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// INSTANCE & CONSTRUCT
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private static ReqBankCommandsEnabled i = new ReqBankCommandsEnabled();
 | 
				
			||||||
 | 
						public static ReqBankCommandsEnabled get() { return i; }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// OVERRIDE
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public boolean apply(CommandSender sender, MCommand command)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return ConfServer.econEnabled && ConfServer.bankEnabled;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public String createErrorMessage(CommandSender sender, MCommand command)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (!ConfServer.bankEnabled)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return Txt.parse("<b>The Factions bank system is disabled on this server.");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							return Txt.parse("<b>The Factions economy features are disabled on this server.");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -40,7 +40,7 @@ public class ReqRoleIsAtLeast extends ReqAbstract
 | 
				
			|||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public String createErrorMessage(CommandSender sender, MCommand command)
 | 
						public String createErrorMessage(CommandSender sender, MCommand command)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return Txt.parse("<b>You must be <h>%s <b>or higher to do this.", Txt.getNicedEnum(this.rel));
 | 
							return Txt.parse("<b>You must be <h>%s <b>or higher to "+(command == null ? "do that" : command.getDesc())+".", Txt.getNicedEnum(this.rel));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user