Add DisallowCause to EventFactionsPvpDisallowed.
This commit is contained in:
parent
7076ffbc5d
commit
6f782b8503
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user