Add DisallowCause to EventFactionsPvpDisallowed.
This commit is contained in:
		
							
								
								
									
										17
									
								
								src/com/massivecraft/factions/engine/DisallowCause.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/com/massivecraft/factions/engine/DisallowCause.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					package com.massivecraft.factions.engine;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum DisallowCause
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						// ENUM
 | 
				
			||||||
 | 
						// -------------------------------------------- //
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						PEACEFUL_LAND,
 | 
				
			||||||
 | 
						FACTIONLESS,
 | 
				
			||||||
 | 
						FRIENDLYFIRE,
 | 
				
			||||||
 | 
						OWN_TERRITORY
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						// END OF LIST
 | 
				
			||||||
 | 
						;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -82,9 +82,9 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Utility method used in "canCombatDamageHappen" below.
 | 
						// Utility method used in "canCombatDamageHappen" below.
 | 
				
			||||||
	public static boolean falseUnlessDisallowedPvpEventCancelled(Player attacker, Player defender, EntityDamageByEntityEvent event)
 | 
						public static boolean falseUnlessDisallowedPvpEventCancelled(Player attacker, Player defender, DisallowCause reason, EntityDamageByEntityEvent event)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		EventFactionsPvpDisallowed dpe = new EventFactionsPvpDisallowed(attacker, defender, event);
 | 
							EventFactionsPvpDisallowed dpe = new EventFactionsPvpDisallowed(attacker, defender, reason, event);
 | 
				
			||||||
		dpe.run();
 | 
							dpe.run();
 | 
				
			||||||
		return dpe.isCancelled();
 | 
							return dpe.isCancelled();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -121,11 +121,11 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
			{
 | 
								{
 | 
				
			||||||
				// No attacker?
 | 
									// No attacker?
 | 
				
			||||||
				// Let's behave as if it were a player
 | 
									// Let's behave as if it were a player
 | 
				
			||||||
				return falseUnlessDisallowedPvpEventCancelled(null, defender, event);
 | 
									return falseUnlessDisallowedPvpEventCancelled(null, defender, DisallowCause.PEACEFUL_LAND, event);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (MUtil.isPlayer(eattacker))
 | 
								if (MUtil.isPlayer(eattacker))
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				ret = falseUnlessDisallowedPvpEventCancelled((Player)eattacker, defender, event);
 | 
									ret = falseUnlessDisallowedPvpEventCancelled((Player)eattacker, defender, DisallowCause.PEACEFUL_LAND, event);
 | 
				
			||||||
				if (!ret && notify)
 | 
									if (!ret && notify)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					MPlayer attacker = MPlayer.get(eattacker);
 | 
										MPlayer attacker = MPlayer.get(eattacker);
 | 
				
			||||||
@@ -153,7 +153,7 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
		// NOTE: This check is probably not that important but we could keep it anyways.
 | 
							// NOTE: This check is probably not that important but we could keep it anyways.
 | 
				
			||||||
		if (attackerPsFaction.getFlag(MFlag.getFlagPvp()) == false)
 | 
							if (attackerPsFaction.getFlag(MFlag.getFlagPvp()) == false)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, event);
 | 
								ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, DisallowCause.PEACEFUL_LAND, event);
 | 
				
			||||||
			if (!ret && notify) uattacker.msg("<i>PVP is disabled in %s.", attackerPsFaction.describeTo(uattacker));
 | 
								if (!ret && notify) uattacker.msg("<i>PVP is disabled in %s.", attackerPsFaction.describeTo(uattacker));
 | 
				
			||||||
			return ret;
 | 
								return ret;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -166,7 +166,7 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		if (attackFaction.isNone() && MConf.get().disablePVPForFactionlessPlayers)
 | 
							if (attackFaction.isNone() && MConf.get().disablePVPForFactionlessPlayers)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, event);
 | 
								ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, DisallowCause.FACTIONLESS, event);
 | 
				
			||||||
			if (!ret && notify) uattacker.msg("<i>You can't hurt other players until you join a faction.");
 | 
								if (!ret && notify) uattacker.msg("<i>You can't hurt other players until you join a faction.");
 | 
				
			||||||
			return ret;
 | 
								return ret;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -179,7 +179,7 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			else if (MConf.get().disablePVPForFactionlessPlayers)
 | 
								else if (MConf.get().disablePVPForFactionlessPlayers)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, event);
 | 
									ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, DisallowCause.FACTIONLESS, event);
 | 
				
			||||||
				if (!ret && notify) uattacker.msg("<i>You can't hurt players who are not currently in a faction.");
 | 
									if (!ret && notify) uattacker.msg("<i>You can't hurt players who are not currently in a faction.");
 | 
				
			||||||
				return ret;
 | 
									return ret;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -195,7 +195,7 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
		// Check the relation
 | 
							// Check the relation
 | 
				
			||||||
		if (relation.isFriend() && defenderPsFaction.getFlag(MFlag.getFlagFriendlyire()) == false)
 | 
							if (relation.isFriend() && defenderPsFaction.getFlag(MFlag.getFlagFriendlyire()) == false)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, event);
 | 
								ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, DisallowCause.FRIENDLYFIRE, event);
 | 
				
			||||||
			if (!ret && notify) uattacker.msg("<i>You can't hurt %s<i>.", relation.getDescPlayerMany());
 | 
								if (!ret && notify) uattacker.msg("<i>You can't hurt %s<i>.", relation.getDescPlayerMany());
 | 
				
			||||||
			return ret;
 | 
								return ret;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -205,7 +205,7 @@ public class EngineCanCombatHappen extends Engine
 | 
				
			|||||||
		
 | 
							
 | 
				
			||||||
		if (mdefender.hasFaction() && ownTerritory && relation == Rel.NEUTRAL)
 | 
							if (mdefender.hasFaction() && ownTerritory && relation == Rel.NEUTRAL)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, event);
 | 
								ret = falseUnlessDisallowedPvpEventCancelled(attacker, defender, DisallowCause.OWN_TERRITORY, event);
 | 
				
			||||||
			if (!ret && notify)
 | 
								if (!ret && notify)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				uattacker.msg("<i>You can't hurt %s<i> in their own territory unless you declare them as an enemy.", mdefender.describeTo(uattacker));
 | 
									uattacker.msg("<i>You can't hurt %s<i> in their own territory unless you declare them as an enemy.", mdefender.describeTo(uattacker));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@ import org.bukkit.entity.Player;
 | 
				
			|||||||
import org.bukkit.event.HandlerList;
 | 
					import org.bukkit.event.HandlerList;
 | 
				
			||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
 | 
					import org.bukkit.event.entity.EntityDamageByEntityEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.engine.DisallowCause;
 | 
				
			||||||
import com.massivecraft.factions.entity.MPlayer;
 | 
					import com.massivecraft.factions.entity.MPlayer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -35,6 +36,9 @@ public class EventFactionsPvpDisallowed extends EventFactionsAbstract
 | 
				
			|||||||
	public Player getDefender() { return this.defender; }
 | 
						public Player getDefender() { return this.defender; }
 | 
				
			||||||
	public MPlayer getMDefender() { return this.defender == null ? null : MPlayer.get(this.defender); }
 | 
						public MPlayer getMDefender() { return this.defender == null ? null : MPlayer.get(this.defender); }
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						private final DisallowCause cause;
 | 
				
			||||||
 | 
						public DisallowCause getCause() { return this.cause; }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	private final EntityDamageByEntityEvent event;
 | 
						private final EntityDamageByEntityEvent event;
 | 
				
			||||||
	public EntityDamageByEntityEvent getEvent() { return this.event; }
 | 
						public EntityDamageByEntityEvent getEvent() { return this.event; }
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
@@ -42,10 +46,11 @@ public class EventFactionsPvpDisallowed extends EventFactionsAbstract
 | 
				
			|||||||
	// CONSTRUCT
 | 
						// CONSTRUCT
 | 
				
			||||||
	// -------------------------------------------- //
 | 
						// -------------------------------------------- //
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	public EventFactionsPvpDisallowed(Player attacker, Player defender, EntityDamageByEntityEvent event)
 | 
						public EventFactionsPvpDisallowed(Player attacker, Player defender, DisallowCause cause, EntityDamageByEntityEvent event)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		this.attacker = attacker;
 | 
							this.attacker = attacker;
 | 
				
			||||||
		this.defender = defender;
 | 
							this.defender = defender;
 | 
				
			||||||
 | 
							this.cause = cause;
 | 
				
			||||||
		this.event = event;
 | 
							this.event = event;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user