Wheeerp
This commit is contained in:
		@@ -26,7 +26,6 @@ permissions:
 | 
				
			|||||||
      factions.kit.halfmod: true
 | 
					      factions.kit.halfmod: true
 | 
				
			||||||
      factions.disband.any: true
 | 
					      factions.disband.any: true
 | 
				
			||||||
      factions.setpermanent: true
 | 
					      factions.setpermanent: true
 | 
				
			||||||
      factions.setpermanentpower: true
 | 
					 | 
				
			||||||
      factions.setpeaceful: true
 | 
					      factions.setpeaceful: true
 | 
				
			||||||
      factions.sethome.any: true
 | 
					      factions.sethome.any: true
 | 
				
			||||||
      factions.money.*: true
 | 
					      factions.money.*: true
 | 
				
			||||||
@@ -37,6 +36,7 @@ permissions:
 | 
				
			|||||||
      factions.managesafezone: true
 | 
					      factions.managesafezone: true
 | 
				
			||||||
      factions.managewarzone: true
 | 
					      factions.managewarzone: true
 | 
				
			||||||
      factions.bypass: true
 | 
					      factions.bypass: true
 | 
				
			||||||
 | 
					      factions.flag.any: true
 | 
				
			||||||
      factions.kick.any: true
 | 
					      factions.kick.any: true
 | 
				
			||||||
      factions.ownershipbypass: true
 | 
					      factions.ownershipbypass: true
 | 
				
			||||||
  factions.kit.fullplayer:
 | 
					  factions.kit.fullplayer:
 | 
				
			||||||
@@ -55,6 +55,7 @@ permissions:
 | 
				
			|||||||
      factions.deinvite: true
 | 
					      factions.deinvite: true
 | 
				
			||||||
      factions.description: true
 | 
					      factions.description: true
 | 
				
			||||||
      factions.disband: true
 | 
					      factions.disband: true
 | 
				
			||||||
 | 
					      factions.flag: true
 | 
				
			||||||
      factions.help: true
 | 
					      factions.help: true
 | 
				
			||||||
      factions.home: true
 | 
					      factions.home: true
 | 
				
			||||||
      factions.invite: true
 | 
					      factions.invite: true
 | 
				
			||||||
@@ -101,6 +102,10 @@ permissions:
 | 
				
			|||||||
    description: disband a faction
 | 
					    description: disband a faction
 | 
				
			||||||
  factions.disband.any:
 | 
					  factions.disband.any:
 | 
				
			||||||
    description: disband an other faction
 | 
					    description: disband an other faction
 | 
				
			||||||
 | 
					  factions.flag:
 | 
				
			||||||
 | 
					    description: change faction flags
 | 
				
			||||||
 | 
					  factions.flag.any:
 | 
				
			||||||
 | 
					    description: change all flags for all factions
 | 
				
			||||||
  factions.help:
 | 
					  factions.help:
 | 
				
			||||||
    description: display a help page
 | 
					    description: display a help page
 | 
				
			||||||
  factions.home:
 | 
					  factions.home:
 | 
				
			||||||
@@ -176,8 +181,6 @@ permissions:
 | 
				
			|||||||
    description: designate a faction as peaceful
 | 
					    description: designate a faction as peaceful
 | 
				
			||||||
  factions.setpermanent:
 | 
					  factions.setpermanent:
 | 
				
			||||||
    description: designate a faction as permanent
 | 
					    description: designate a faction as permanent
 | 
				
			||||||
  factions.setpermanentpower:
 | 
					 | 
				
			||||||
    description: set permanent power for a faction
 | 
					 | 
				
			||||||
  factions.power:
 | 
					  factions.power:
 | 
				
			||||||
    description: show player power info
 | 
					    description: show player power info
 | 
				
			||||||
  factions.power.any:
 | 
					  factions.power.any:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,8 @@ import java.util.*;
 | 
				
			|||||||
import org.bukkit.*;
 | 
					import org.bukkit.*;
 | 
				
			||||||
import org.bukkit.entity.CreatureType;
 | 
					import org.bukkit.entity.CreatureType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class Conf
 | 
					public class Conf
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	public static List<String> baseCommandAliases = new ArrayList<String>();
 | 
						public static List<String> baseCommandAliases = new ArrayList<String>();
 | 
				
			||||||
@@ -20,6 +22,16 @@ public class Conf
 | 
				
			|||||||
	public static ChatColor colorWar = ChatColor.DARK_RED;
 | 
						public static ChatColor colorWar = ChatColor.DARK_RED;
 | 
				
			||||||
	//public static ChatColor colorWilderness = ChatColor.DARK_GREEN;
 | 
						//public static ChatColor colorWilderness = ChatColor.DARK_GREEN;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// REFACTOR ASJDKJASDKFJKASDF
 | 
				
			||||||
 | 
						public static Map<FactionFlag, Boolean> factionFlagDefaults;
 | 
				
			||||||
 | 
						public static Map<FactionFlag, Boolean> factionFlagIsChangeable;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// REFACTOR ASJDKJASDKFJKASDF EEEEEENNNNDD
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	// Power
 | 
						// Power
 | 
				
			||||||
	public static double powerPlayerMax = 10.0;
 | 
						public static double powerPlayerMax = 10.0;
 | 
				
			||||||
	public static double powerPlayerMin = -10.0;
 | 
						public static double powerPlayerMin = -10.0;
 | 
				
			||||||
@@ -245,6 +257,32 @@ public class Conf
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		baseCommandAliases.add("f");
 | 
							baseCommandAliases.add("f");
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
 | 
							factionFlagDefaults = new LinkedHashMap<FactionFlag, Boolean>();
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.PERMANENT, FactionFlag.PERMANENT.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.PEACEFUL, FactionFlag.PEACEFUL.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.INFPOWER, FactionFlag.INFPOWER.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.POWERLOSS, FactionFlag.POWERLOSS.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.PVP, FactionFlag.PVP.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.FRIENDLYFIRE, FactionFlag.FRIENDLYFIRE.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.MONSTERS, FactionFlag.MONSTERS.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.EXPLOSIONS, FactionFlag.EXPLOSIONS.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.FIRESPREAD, FactionFlag.FIRESPREAD.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.LIGHTNING, FactionFlag.LIGHTNING.defaultDefaultValue);
 | 
				
			||||||
 | 
							factionFlagDefaults.put(FactionFlag.ENDERGRIEF, FactionFlag.ENDERGRIEF.defaultDefaultValue);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							factionFlagIsChangeable = new LinkedHashMap<FactionFlag, Boolean>();
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.PERMANENT, FactionFlag.PERMANENT.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.PEACEFUL, FactionFlag.PEACEFUL.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.INFPOWER, FactionFlag.INFPOWER.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.POWERLOSS, FactionFlag.POWERLOSS.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.PVP, FactionFlag.PVP.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.FRIENDLYFIRE, FactionFlag.FRIENDLYFIRE.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.MONSTERS, FactionFlag.MONSTERS.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.EXPLOSIONS, FactionFlag.EXPLOSIONS.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.FIRESPREAD, FactionFlag.FIRESPREAD.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.LIGHTNING, FactionFlag.LIGHTNING.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							factionFlagIsChangeable.put(FactionFlag.ENDERGRIEF, FactionFlag.ENDERGRIEF.defaultDefaultChangeable);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		territoryEnemyDenyCommands.add("home");
 | 
							territoryEnemyDenyCommands.add("home");
 | 
				
			||||||
		territoryEnemyDenyCommands.add("sethome");
 | 
							territoryEnemyDenyCommands.add("sethome");
 | 
				
			||||||
		territoryEnemyDenyCommands.add("spawn");
 | 
							territoryEnemyDenyCommands.add("spawn");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,7 @@ import com.massivecraft.factions.integration.Econ;
 | 
				
			|||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
import com.massivecraft.factions.integration.Worldguard;
 | 
					import com.massivecraft.factions.integration.Worldguard;
 | 
				
			||||||
import com.massivecraft.factions.struct.ChatMode;
 | 
					import com.massivecraft.factions.struct.ChatMode;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
import com.massivecraft.factions.struct.Rel;
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
import com.massivecraft.factions.util.RelationUtil;
 | 
					import com.massivecraft.factions.util.RelationUtil;
 | 
				
			||||||
@@ -574,7 +575,7 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator
 | 
				
			|||||||
	public void leave(boolean makePay)
 | 
						public void leave(boolean makePay)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		Faction myFaction = this.getFaction();
 | 
							Faction myFaction = this.getFaction();
 | 
				
			||||||
		boolean perm = myFaction.isPermanent();
 | 
							boolean perm = myFaction.getFlag(FactionFlag.PERMANENT);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if (!perm && this.getRole() == Rel.LEADER && myFaction.getFPlayers().size() > 1)
 | 
							if (!perm && this.getRole() == Rel.LEADER && myFaction.getFPlayers().size() > 1)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ import org.bukkit.entity.Player;
 | 
				
			|||||||
import com.massivecraft.factions.iface.EconomyParticipator;
 | 
					import com.massivecraft.factions.iface.EconomyParticipator;
 | 
				
			||||||
import com.massivecraft.factions.iface.RelationParticipator;
 | 
					import com.massivecraft.factions.iface.RelationParticipator;
 | 
				
			||||||
import com.massivecraft.factions.integration.Econ;
 | 
					import com.massivecraft.factions.integration.Econ;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
import com.massivecraft.factions.struct.Rel;
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
import com.massivecraft.factions.util.*;
 | 
					import com.massivecraft.factions.util.*;
 | 
				
			||||||
@@ -53,9 +54,9 @@ public class Faction extends Entity implements EconomyParticipator
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// FIELD: permanent
 | 
						// FIELD: permanent
 | 
				
			||||||
	// "permanent" status can only be set by server admins/moderators/ops, and allows the faction to remain even with 0 members
 | 
						// "permanent" status can only be set by server admins/moderators/ops, and allows the faction to remain even with 0 members
 | 
				
			||||||
	private boolean permanent;
 | 
						//private boolean permanent;
 | 
				
			||||||
	public boolean isPermanent() { return permanent; }
 | 
						//public boolean isPermanent() { return permanent; }
 | 
				
			||||||
	public void setPermanent(boolean isPermanent) { permanent = isPermanent; }
 | 
						//public void setPermanent(boolean isPermanent) { permanent = isPermanent; }
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// FIELD: tag
 | 
						// FIELD: tag
 | 
				
			||||||
	private String tag;
 | 
						private String tag;
 | 
				
			||||||
@@ -128,11 +129,27 @@ public class Faction extends Entity implements EconomyParticipator
 | 
				
			|||||||
		return Econ.getMethod().getAccount(aid);
 | 
							return Econ.getMethod().getAccount(aid);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// FIELD: permanentPower
 | 
						// FIELDS: Flag management
 | 
				
			||||||
	private Integer permanentPower;
 | 
						// TODO: This will save... defaults if they where changed to...
 | 
				
			||||||
	public Integer getPermanentPower() { return this.permanentPower; }
 | 
						private Map<FactionFlag, Boolean> flagOverrides; // Contains the modifications to the default values
 | 
				
			||||||
	public void setPermanentPower(Integer permanentPower) { this.permanentPower = permanentPower; }
 | 
						public boolean getFlag(FactionFlag flag)
 | 
				
			||||||
	public boolean hasPermanentPower() { return this.permanentPower != null; }
 | 
						{
 | 
				
			||||||
 | 
							Boolean ret = this.flagOverrides.get(flag);
 | 
				
			||||||
 | 
							if (ret == null) ret = flag.getDefault();
 | 
				
			||||||
 | 
							return ret;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						public void setFlag(FactionFlag flag, boolean value)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (Conf.factionFlagDefaults.get(flag) == value)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								this.flagOverrides.remove(flag);
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							this.flagOverrides.put(flag, value);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// FIELDS: Permission <-> Groups management
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	// Construct
 | 
						// Construct
 | 
				
			||||||
@@ -148,8 +165,8 @@ public class Faction extends Entity implements EconomyParticipator
 | 
				
			|||||||
		this.lastPlayerLoggedOffTime = 0;
 | 
							this.lastPlayerLoggedOffTime = 0;
 | 
				
			||||||
		this.peaceful = false;
 | 
							this.peaceful = false;
 | 
				
			||||||
		this.peacefulExplosionsEnabled = false;
 | 
							this.peacefulExplosionsEnabled = false;
 | 
				
			||||||
		this.permanent = false;
 | 
					 | 
				
			||||||
		this.money = 0.0;
 | 
							this.money = 0.0;
 | 
				
			||||||
 | 
							this.flagOverrides = new LinkedHashMap<FactionFlag, Boolean>();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
@@ -166,6 +183,8 @@ public class Faction extends Entity implements EconomyParticipator
 | 
				
			|||||||
	// Understand the types
 | 
						// Understand the types
 | 
				
			||||||
	// -------------------------------
 | 
						// -------------------------------
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						// TODO: These should be gone after the refactoring...
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	public boolean isNormal()
 | 
						public boolean isNormal()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return ! (this.isNone() || this.isSafeZone() || this.isWarZone());
 | 
							return ! (this.isNone() || this.isSafeZone() || this.isWarZone());
 | 
				
			||||||
@@ -252,9 +271,9 @@ public class Faction extends Entity implements EconomyParticipator
 | 
				
			|||||||
	//----------------------------------------------//
 | 
						//----------------------------------------------//
 | 
				
			||||||
	public double getPower()
 | 
						public double getPower()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (this.hasPermanentPower())
 | 
							if (this.getFlag(FactionFlag.INFPOWER))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			return this.getPermanentPower();
 | 
								return 999999;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		double ret = 0;
 | 
							double ret = 0;
 | 
				
			||||||
@@ -271,9 +290,9 @@ public class Faction extends Entity implements EconomyParticipator
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	public double getPowerMax()
 | 
						public double getPowerMax()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (this.hasPermanentPower())
 | 
							if (this.getFlag(FactionFlag.INFPOWER))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			return this.getPermanentPower();
 | 
								return 999999;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		double ret = 0;
 | 
							double ret = 0;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -151,7 +151,7 @@ public class P extends MPlugin
 | 
				
			|||||||
		.excludeFieldsWithModifiers(Modifier.TRANSIENT, Modifier.VOLATILE)
 | 
							.excludeFieldsWithModifiers(Modifier.TRANSIENT, Modifier.VOLATILE)
 | 
				
			||||||
		.registerTypeAdapter(Location.class, new MyLocationTypeAdapter())
 | 
							.registerTypeAdapter(Location.class, new MyLocationTypeAdapter())
 | 
				
			||||||
		.registerTypeAdapter(mapFLocToStringSetType, new MapFLocToStringSetTypeAdapter())
 | 
							.registerTypeAdapter(mapFLocToStringSetType, new MapFLocToStringSetTypeAdapter())
 | 
				
			||||||
		.registerTypeAdapter(Rel.class, new MyRelTypeAdapter());
 | 
							.registerTypeAdapter(Rel.class, new MyRelTypeAdapter()); // This one is for users upgrading from 1.6 to 1.7... should be removed some time in the future.
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import com.massivecraft.factions.Faction;
 | 
				
			|||||||
import com.massivecraft.factions.P;
 | 
					import com.massivecraft.factions.P;
 | 
				
			||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.integration.SpoutFeatures;
 | 
					import com.massivecraft.factions.integration.SpoutFeatures;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
import com.massivecraft.factions.struct.Rel;
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -49,7 +50,7 @@ public class CmdDisband extends FCommand
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (faction.isPermanent())
 | 
							if (faction.getFlag(FactionFlag.PERMANENT))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			msg("<i>This faction is designated as permanent, so you cannot disband it.");
 | 
								msg("<i>This faction is designated as permanent, so you cannot disband it.");
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										88
									
								
								src/com/massivecraft/factions/cmd/CmdFlag.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								src/com/massivecraft/factions/cmd/CmdFlag.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class CmdFlag extends FCommand
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public CmdFlag()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							super();
 | 
				
			||||||
 | 
							this.aliases.add("flag");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//this.requiredArgs.add("");
 | 
				
			||||||
 | 
							this.optionalArgs.put("faction", "your");
 | 
				
			||||||
 | 
							this.optionalArgs.put("flag", "all");
 | 
				
			||||||
 | 
							this.optionalArgs.put("on/off", "read");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							this.permission = Permission.FLAG.node;
 | 
				
			||||||
 | 
							this.disableOnLock = true;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							senderMustBePlayer = false;
 | 
				
			||||||
 | 
							senderMustBeMember = false;
 | 
				
			||||||
 | 
							senderMustBeOfficer = false;
 | 
				
			||||||
 | 
							senderMustBeLeader = false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public void perform()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							Faction faction = myFaction;
 | 
				
			||||||
 | 
							if (this.argIsSet(0))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								faction = this.argAsFaction(0);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if (faction == null) return;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							msg(p.txt.titleize("Flag(s) for " + faction.describeTo(fme)));
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if ( ! this.argIsSet(1))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								for (FactionFlag flag : FactionFlag.values())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									msg(flag.getStateInfo(faction.getFlag(flag), true));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							FactionFlag flag = this.argAsFactionFlag(1);
 | 
				
			||||||
 | 
							if (flag == null) return;
 | 
				
			||||||
 | 
							if ( ! this.argIsSet(2))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								msg(flag.getStateInfo(faction.getFlag(flag), true));
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							Boolean targetValue = this.argAsBool(2);
 | 
				
			||||||
 | 
							if (targetValue == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Do the sender have the right to change flags for this faction?
 | 
				
			||||||
 | 
							if (Permission.FLAG_ANY.has(sender))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								// This sender may modify any flag for anyone
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else if ( ! flag.isChangeable())
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								msg("<b>Only server operators can change this flag.");
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else if (faction != myFaction)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								msg("<b>You are not a member in that faction.");
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else if (fme.getRole().isLessThan(Rel.OFFICER))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								msg("<b>You must be faction leader or officer to change your faction flags.");
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							// Do the change
 | 
				
			||||||
 | 
							faction.setFlag(flag, targetValue);
 | 
				
			||||||
 | 
							msg(flag.getStateInfo(faction.getFlag(flag), true));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -168,8 +168,6 @@ public class CmdHelp extends FCommand
 | 
				
			|||||||
		pageLines = new ArrayList<String>();
 | 
							pageLines = new ArrayList<String>();
 | 
				
			||||||
		pageLines.add(p.txt.parse("<i>More commands for server admins:"));
 | 
							pageLines.add(p.txt.parse("<i>More commands for server admins:"));
 | 
				
			||||||
		pageLines.add( p.cmdBase.cmdPeaceful.getUseageTemplate(true) );
 | 
							pageLines.add( p.cmdBase.cmdPeaceful.getUseageTemplate(true) );
 | 
				
			||||||
		pageLines.add( p.cmdBase.cmdPermanent.getUseageTemplate(true) );
 | 
					 | 
				
			||||||
		pageLines.add( p.cmdBase.cmdPermanentPower.getUseageTemplate(true) );
 | 
					 | 
				
			||||||
		pageLines.add(p.txt.parse("<i>Peaceful factions are protected from PvP and land capture."));
 | 
							pageLines.add(p.txt.parse("<i>Peaceful factions are protected from PvP and land capture."));
 | 
				
			||||||
		pageLines.add( p.cmdBase.cmdLock.getUseageTemplate(true) );
 | 
							pageLines.add( p.cmdBase.cmdLock.getUseageTemplate(true) );
 | 
				
			||||||
		pageLines.add( p.cmdBase.cmdReload.getUseageTemplate(true) );
 | 
							pageLines.add( p.cmdBase.cmdReload.getUseageTemplate(true) );
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@ import com.massivecraft.factions.Conf;
 | 
				
			|||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.FPlayers;
 | 
					import com.massivecraft.factions.FPlayers;
 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CmdKick extends FCommand
 | 
					public class CmdKick extends FCommand
 | 
				
			||||||
@@ -77,7 +78,7 @@ public class CmdKick extends FCommand
 | 
				
			|||||||
		yourFaction.deinvite(you);
 | 
							yourFaction.deinvite(you);
 | 
				
			||||||
		you.resetFactionData();
 | 
							you.resetFactionData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (yourFaction.getFPlayers().isEmpty() && !yourFaction.isPermanent())
 | 
							if (yourFaction.getFPlayers().isEmpty() && !yourFaction.getFlag(FactionFlag.PERMANENT))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			// Remove this faction
 | 
								// Remove this faction
 | 
				
			||||||
			for (FPlayer fplayer : FPlayers.i.getOnline())
 | 
								for (FPlayer fplayer : FPlayers.i.getOnline())
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,59 +0,0 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FPlayers;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FPlayer;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class CmdPermanent extends FCommand
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	public CmdPermanent()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		super();
 | 
					 | 
				
			||||||
		this.aliases.add("permanent");
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		this.requiredArgs.add("faction tag");
 | 
					 | 
				
			||||||
		//this.optionalArgs.put("", "");
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		this.permission = Permission.SET_PERMANENT.node;
 | 
					 | 
				
			||||||
		this.disableOnLock = true;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		senderMustBePlayer = false;
 | 
					 | 
				
			||||||
		senderMustBeMember = false;
 | 
					 | 
				
			||||||
		senderMustBeOfficer = false;
 | 
					 | 
				
			||||||
		senderMustBeLeader = false;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public void perform()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		Faction faction = this.argAsFaction(0);
 | 
					 | 
				
			||||||
		if (faction == null) return;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		String change;
 | 
					 | 
				
			||||||
		if(faction.isPermanent())
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			change = "removed permanent status from";
 | 
					 | 
				
			||||||
			faction.setPermanent(false);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			change = "added permanent status to";
 | 
					 | 
				
			||||||
			faction.setPermanent(true);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		// Inform all players
 | 
					 | 
				
			||||||
		for (FPlayer fplayer : FPlayers.i.getOnline())
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			if (fplayer.getFaction() == faction)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				fplayer.msg((fme == null ? "A server admin" : fme.describeTo(fplayer, true))+"<i> has "+change+" your faction.");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			else
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				fplayer.msg((fme == null ? "A server admin" : fme.describeTo(fplayer, true))+"<i> has "+change+" the faction \"" + faction.getTag(fplayer) + "\".");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,50 +0,0 @@
 | 
				
			|||||||
package com.massivecraft.factions.cmd;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.FPlayer;
 | 
					 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class CmdPermanentPower extends FCommand
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	public CmdPermanentPower()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		super();
 | 
					 | 
				
			||||||
		this.aliases.add("permanentpower");
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		this.requiredArgs.add("faction");
 | 
					 | 
				
			||||||
		this.optionalArgs.put("power", "reset");
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		this.permission = Permission.SET_PERMANENTPOWER.node;
 | 
					 | 
				
			||||||
		this.disableOnLock = true;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		senderMustBePlayer = false;
 | 
					 | 
				
			||||||
		senderMustBeMember = false;
 | 
					 | 
				
			||||||
		senderMustBeOfficer = false;
 | 
					 | 
				
			||||||
		senderMustBeLeader = false;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	@Override
 | 
					 | 
				
			||||||
	public void perform()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		Faction targetFaction = this.argAsFaction(0);
 | 
					 | 
				
			||||||
		if (targetFaction == null) return;
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		Integer targetPower = this.argAsInt(1);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		targetFaction.setPermanentPower(targetPower);
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		String change = "removed permanentpower status from";
 | 
					 | 
				
			||||||
		if(targetFaction.hasPermanentPower())
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			change = "added permanentpower status to";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		msg("<i>You %s <h>%s<i>.", change, targetFaction.describeTo(fme));
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		// Inform all players
 | 
					 | 
				
			||||||
		for (FPlayer fplayer : targetFaction.getFPlayersWhereOnline(true))
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			fplayer.msg((fme == null ? "A server admin" : fme.describeTo(fplayer, true))+"<i> "+change+" your faction.");
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										12
									
								
								src/com/massivecraft/factions/cmd/CmdRelationTruce.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/com/massivecraft/factions/cmd/CmdRelationTruce.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class CmdRelationTruce extends FRelationCommand
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public CmdRelationTruce()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							aliases.add("neutral");
 | 
				
			||||||
 | 
							targetRelation = Rel.NEUTRAL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -7,6 +7,7 @@ import com.massivecraft.factions.integration.Econ;
 | 
				
			|||||||
import com.massivecraft.factions.FPlayer;
 | 
					import com.massivecraft.factions.FPlayer;
 | 
				
			||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
import com.massivecraft.factions.struct.Permission;
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
import com.massivecraft.factions.struct.Rel;
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -63,7 +64,7 @@ public class CmdShow extends FCommand
 | 
				
			|||||||
		msg("<a>Joining: <i>"+(faction.getOpen() ? "no invitation is needed" : "invitation is required")+peaceStatus);
 | 
							msg("<a>Joining: <i>"+(faction.getOpen() ? "no invitation is needed" : "invitation is required")+peaceStatus);
 | 
				
			||||||
		msg("<a>Land / Power / Maxpower: <i> %d/%d/%d", faction.getLandRounded(), faction.getPowerRounded(), faction.getPowerMaxRounded());
 | 
							msg("<a>Land / Power / Maxpower: <i> %d/%d/%d", faction.getLandRounded(), faction.getPowerRounded(), faction.getPowerMaxRounded());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (faction.isPermanent())
 | 
							if (faction.getFlag(FactionFlag.PERMANENT))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			msg("<a>This faction is permanent, remaining even with no members.");
 | 
								msg("<a>This faction is permanent, remaining even with no members.");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,7 @@ public class FCmdRoot extends FCommand
 | 
				
			|||||||
	public CmdDeinvite cmdDeinvite = new CmdDeinvite();
 | 
						public CmdDeinvite cmdDeinvite = new CmdDeinvite();
 | 
				
			||||||
	public CmdDescription cmdDescription = new CmdDescription();
 | 
						public CmdDescription cmdDescription = new CmdDescription();
 | 
				
			||||||
	public CmdDisband cmdDisband = new CmdDisband();
 | 
						public CmdDisband cmdDisband = new CmdDisband();
 | 
				
			||||||
 | 
						public CmdFlag cmdFlag = new CmdFlag();
 | 
				
			||||||
	public CmdHelp cmdHelp = new CmdHelp();
 | 
						public CmdHelp cmdHelp = new CmdHelp();
 | 
				
			||||||
	public CmdHome cmdHome = new CmdHome();
 | 
						public CmdHome cmdHome = new CmdHome();
 | 
				
			||||||
	public CmdInvite cmdInvite = new CmdInvite();
 | 
						public CmdInvite cmdInvite = new CmdInvite();
 | 
				
			||||||
@@ -32,8 +33,6 @@ public class FCmdRoot extends FCommand
 | 
				
			|||||||
	public CmdOwner cmdOwner = new CmdOwner();
 | 
						public CmdOwner cmdOwner = new CmdOwner();
 | 
				
			||||||
	public CmdOwnerList cmdOwnerList = new CmdOwnerList();
 | 
						public CmdOwnerList cmdOwnerList = new CmdOwnerList();
 | 
				
			||||||
	public CmdPeaceful cmdPeaceful = new CmdPeaceful();
 | 
						public CmdPeaceful cmdPeaceful = new CmdPeaceful();
 | 
				
			||||||
	public CmdPermanent cmdPermanent = new CmdPermanent();
 | 
					 | 
				
			||||||
	public CmdPermanentPower cmdPermanentPower = new CmdPermanentPower();
 | 
					 | 
				
			||||||
	public CmdPower cmdPower = new CmdPower();
 | 
						public CmdPower cmdPower = new CmdPower();
 | 
				
			||||||
	public CmdRelationAlly cmdRelationAlly = new CmdRelationAlly();
 | 
						public CmdRelationAlly cmdRelationAlly = new CmdRelationAlly();
 | 
				
			||||||
	public CmdRelationEnemy cmdRelationEnemy = new CmdRelationEnemy();
 | 
						public CmdRelationEnemy cmdRelationEnemy = new CmdRelationEnemy();
 | 
				
			||||||
@@ -83,6 +82,7 @@ public class FCmdRoot extends FCommand
 | 
				
			|||||||
		this.addSubCommand(this.cmdDeinvite);
 | 
							this.addSubCommand(this.cmdDeinvite);
 | 
				
			||||||
		this.addSubCommand(this.cmdDescription);
 | 
							this.addSubCommand(this.cmdDescription);
 | 
				
			||||||
		this.addSubCommand(this.cmdDisband);
 | 
							this.addSubCommand(this.cmdDisband);
 | 
				
			||||||
 | 
							this.addSubCommand(this.cmdFlag);
 | 
				
			||||||
		this.addSubCommand(this.cmdHelp);
 | 
							this.addSubCommand(this.cmdHelp);
 | 
				
			||||||
		this.addSubCommand(this.cmdHome);
 | 
							this.addSubCommand(this.cmdHome);
 | 
				
			||||||
		this.addSubCommand(this.cmdInvite);
 | 
							this.addSubCommand(this.cmdInvite);
 | 
				
			||||||
@@ -98,8 +98,6 @@ public class FCmdRoot extends FCommand
 | 
				
			|||||||
		this.addSubCommand(this.cmdOwner);
 | 
							this.addSubCommand(this.cmdOwner);
 | 
				
			||||||
		this.addSubCommand(this.cmdOwnerList);
 | 
							this.addSubCommand(this.cmdOwnerList);
 | 
				
			||||||
		this.addSubCommand(this.cmdPeaceful);
 | 
							this.addSubCommand(this.cmdPeaceful);
 | 
				
			||||||
		this.addSubCommand(this.cmdPermanent);
 | 
					 | 
				
			||||||
		this.addSubCommand(this.cmdPermanentPower);
 | 
					 | 
				
			||||||
		this.addSubCommand(this.cmdPower);
 | 
							this.addSubCommand(this.cmdPower);
 | 
				
			||||||
		this.addSubCommand(this.cmdRelationAlly);
 | 
							this.addSubCommand(this.cmdRelationAlly);
 | 
				
			||||||
		this.addSubCommand(this.cmdRelationEnemy);
 | 
							this.addSubCommand(this.cmdRelationEnemy);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@ import com.massivecraft.factions.FPlayers;
 | 
				
			|||||||
import com.massivecraft.factions.Faction;
 | 
					import com.massivecraft.factions.Faction;
 | 
				
			||||||
import com.massivecraft.factions.Factions;
 | 
					import com.massivecraft.factions.Factions;
 | 
				
			||||||
import com.massivecraft.factions.P;
 | 
					import com.massivecraft.factions.P;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.FactionFlag;
 | 
				
			||||||
import com.massivecraft.factions.struct.Rel;
 | 
					import com.massivecraft.factions.struct.Rel;
 | 
				
			||||||
import com.massivecraft.factions.zcore.MCommand;
 | 
					import com.massivecraft.factions.zcore.MCommand;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -273,6 +274,41 @@ public abstract class FCommand extends MCommand<P>
 | 
				
			|||||||
		return this.argAsFaction(idx, null);
 | 
							return this.argAsFaction(idx, null);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						// FACTION FLAG ======================
 | 
				
			||||||
 | 
						public FactionFlag strAsFactionFlag(String name, FactionFlag def, boolean msg)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							FactionFlag ret = def;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if (name != null)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								FactionFlag flag = FactionFlag.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 FactionFlag argAsFactionFlag(int idx, FactionFlag def, boolean msg)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return this.strAsFactionFlag(this.argAsString(idx), def, msg);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						public FactionFlag argAsFactionFlag(int idx, FactionFlag def)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return this.argAsFactionFlag(idx, def, true);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						public FactionFlag argAsFactionFlag(int idx)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return this.argAsFactionFlag(idx, null);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	// Commonly used logic
 | 
						// Commonly used logic
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,7 @@
 | 
				
			|||||||
package com.massivecraft.factions.struct;
 | 
					package com.massivecraft.factions.struct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.Conf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Flags that describe the nature of a faction and it's territory.
 | 
					 * Flags that describe the nature of a faction and it's territory.
 | 
				
			||||||
 * Can monsters spawn there? May fire spread etc? Is the faction permanent?
 | 
					 * Can monsters spawn there? May fire spread etc? Is the faction permanent?
 | 
				
			||||||
@@ -10,27 +12,51 @@ package com.massivecraft.factions.struct;
 | 
				
			|||||||
public enum FactionFlag
 | 
					public enum FactionFlag
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	// Faction flags
 | 
						// Faction flags
 | 
				
			||||||
	PERMANENT,
 | 
						PERMANENT("permanent", "<i>A permanent faction will never be deleted.", false, false),
 | 
				
			||||||
	PEACEFUL, // This faction is friends with everyone
 | 
						PEACEFUL("peaceful", "<i>Allways in truce with other factions.", false, false),
 | 
				
			||||||
	INFPOWER, // This faction has infinite power: TODO: Add faction has enough method. Replace the permanentpower level 
 | 
						INFPOWER("infpower", "<i>This flag gives the faction infinite power.", false, false),
 | 
				
			||||||
 | 
						// This faction has infinite power: TODO: Add faction has enough method. Replace the permanentpower level 
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// (Faction) Territory flags
 | 
						// (Faction) Territory flags
 | 
				
			||||||
	POWERLOSS, // Regardless of death-reason players loose power on death IF powerloss is true in this territory
 | 
						POWERLOSS("powerloss", "<i>Is power lost on death in this territory?", true, false),
 | 
				
			||||||
	PVP,
 | 
						PVP("pvp", "<i>Can you PVP in territory?", true, false),
 | 
				
			||||||
	FRIENDLYFIRE, // Can members/allies/friends damage eachother in this territory?
 | 
						FRIENDLYFIRE("friendlyfire", "<i>Can friends hurt eachother here?", false, false),
 | 
				
			||||||
	MONSTERS,
 | 
						MONSTERS("monsters", "<i>Can monsters spawn in this territory?", true, false),
 | 
				
			||||||
	EXPLOSIONS,
 | 
						EXPLOSIONS("explosions", "<i>Can explosions occur in this territory?", true, false),
 | 
				
			||||||
	FIRESPREAD,
 | 
						FIRESPREAD("firespread", "<i>Can fire spread in territory?", true, false),
 | 
				
			||||||
	LIGHTNING,
 | 
						LIGHTNING("lightning", "<i>Can lightning strike in this territory?", true, false),
 | 
				
			||||||
 | 
						ENDERGRIEF("endergrief", "<i>Can endermen grief in this territory?", false, true),
 | 
				
			||||||
	;
 | 
						;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						private final String nicename;
 | 
				
			||||||
 | 
						private final String desc;
 | 
				
			||||||
 | 
						public final boolean defaultDefaultValue;
 | 
				
			||||||
 | 
						public final boolean defaultDefaultChangeable;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private FactionFlag(final String nicename, final String desc, final boolean defaultDefaultValue, final boolean defaultDefaultChangeable)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							this.nicename = nicename;
 | 
				
			||||||
 | 
							this.desc = desc;
 | 
				
			||||||
 | 
							this.defaultDefaultValue = defaultDefaultValue;
 | 
				
			||||||
 | 
							this.defaultDefaultChangeable = defaultDefaultChangeable;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public String getNicename()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return this.nicename;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public String getDescription()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return this.desc;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * The state for newly created factions.
 | 
						 * The state for newly created factions.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public boolean getDefault()
 | 
						public boolean getDefault()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// Use config file for this later.
 | 
							return Conf.factionFlagDefaults.get(this);
 | 
				
			||||||
		return true;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
@@ -40,7 +66,32 @@ public enum FactionFlag
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
	public boolean isChangeable()
 | 
						public boolean isChangeable()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// TODO: Use config file
 | 
							return Conf.factionFlagIsChangeable.get(this);
 | 
				
			||||||
		return true;
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public static FactionFlag parse(String str)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							str = str.toLowerCase();
 | 
				
			||||||
 | 
							if (str.startsWith("per")) return PERMANENT;
 | 
				
			||||||
 | 
							if (str.startsWith("pea")) return PEACEFUL;
 | 
				
			||||||
 | 
							if (str.startsWith("i")) return INFPOWER;
 | 
				
			||||||
 | 
							if (str.startsWith("pow")) return POWERLOSS;
 | 
				
			||||||
 | 
							if (str.startsWith("pvp")) return PVP;
 | 
				
			||||||
 | 
							if (str.startsWith("fr") || str.startsWith("ff")) return FRIENDLYFIRE;
 | 
				
			||||||
 | 
							if (str.startsWith("m")) return MONSTERS;
 | 
				
			||||||
 | 
							if (str.startsWith("e")) return EXPLOSIONS;
 | 
				
			||||||
 | 
							if (str.startsWith("fi")) return FIRESPREAD;
 | 
				
			||||||
 | 
							if (str.startsWith("l")) return LIGHTNING;
 | 
				
			||||||
 | 
							return null;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public String getStateInfo(boolean value, boolean withDesc)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							String ret = (value ? "<g>YES" : "<b>NOT") + "<h> " + this.getNicename();
 | 
				
			||||||
 | 
							if (withDesc)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								ret += " " + this.getDescription();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,10 +2,9 @@ package com.massivecraft.factions.struct;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Permissions that you (a player) may or may not have in the territory of a certain faction.
 | 
					 * Permissions that you (a player) may or may not have in the territory of a certain faction.
 | 
				
			||||||
 * 
 | 
					 * Each faction have many Rel's assigned to each one of these Perms. 
 | 
				
			||||||
 * You need a certain rel to be able
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public enum FactionPlayerPerm
 | 
					public enum FactionPerm
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	BUILD, // This player can build in the faction
 | 
						BUILD, // This player can build in the faction
 | 
				
			||||||
	PAINBUILD, // This player can build in the faction BUT will take damage each time. This is overridden by BUILD if player has both
 | 
						PAINBUILD, // This player can build in the faction BUT will take damage each time. This is overridden by BUILD if player has both
 | 
				
			||||||
@@ -20,6 +20,8 @@ public enum Permission
 | 
				
			|||||||
	DESCRIPTION("description"),
 | 
						DESCRIPTION("description"),
 | 
				
			||||||
	DISBAND("disband"),
 | 
						DISBAND("disband"),
 | 
				
			||||||
	DISBAND_ANY("disband.any"),
 | 
						DISBAND_ANY("disband.any"),
 | 
				
			||||||
 | 
						FLAG("flag"),
 | 
				
			||||||
 | 
						FLAG_ANY("flag.any"),
 | 
				
			||||||
	HELP("help"),
 | 
						HELP("help"),
 | 
				
			||||||
	HOME("home"),
 | 
						HOME("home"),
 | 
				
			||||||
	INVITE("invite"),
 | 
						INVITE("invite"),
 | 
				
			||||||
@@ -44,8 +46,6 @@ public enum Permission
 | 
				
			|||||||
	OWNER("owner"),
 | 
						OWNER("owner"),
 | 
				
			||||||
	OWNERLIST("ownerlist"),
 | 
						OWNERLIST("ownerlist"),
 | 
				
			||||||
	SET_PEACEFUL("setpeaceful"),
 | 
						SET_PEACEFUL("setpeaceful"),
 | 
				
			||||||
	SET_PERMANENT("setpermanent"),
 | 
					 | 
				
			||||||
	SET_PERMANENTPOWER("setpermanentpower"),
 | 
					 | 
				
			||||||
	POWER("power"),
 | 
						POWER("power"),
 | 
				
			||||||
	POWER_ANY("power.any"),
 | 
						POWER_ANY("power.any"),
 | 
				
			||||||
	RELATION("relation"),
 | 
						RELATION("relation"),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,6 +15,11 @@ public class RelationUtil
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		String ret = "";
 | 
							String ret = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (that == null)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return "A server admin";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		Faction thatFaction = getFaction(that);
 | 
							Faction thatFaction = getFaction(that);
 | 
				
			||||||
		if (thatFaction == null) return "ERROR"; // ERROR
 | 
							if (thatFaction == null) return "ERROR"; // ERROR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user