Factions3/src/main/java/com/massivecraft/factions/event/EventFactionsPvpDisallowed.java

80 lines
2.2 KiB
Java

package com.massivecraft.factions.event;
import com.massivecraft.factions.engine.DisallowCause;
import com.massivecraft.factions.entity.MPlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
/**
* This event is fired when PVP is disallowed between players due to any rules in Factions.
* Canceling this event allows the PVP in spite of this and stops text messages from being sent.
* <p>
* Note that the defender field always is set but the attacker can be null.
* Some other plugins seem to fire EntityDamageByEntityEvent without an attacker.
*/
public class EventFactionsPvpDisallowed extends EventFactionsAbstract {
// -------------------------------------------- //
// REQUIRED EVENT CODE
// -------------------------------------------- //
private static final HandlerList handlers = new HandlerList();
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
// -------------------------------------------- //
// FIELDS
// -------------------------------------------- //
private final Player attacker;
public Player getAttacker() {
return this.attacker;
}
public MPlayer getMAttacker() {
return this.attacker == null ? null : MPlayer.get(this.attacker);
}
private final Player defender;
public Player getDefender() {
return 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;
public EntityDamageByEntityEvent getEvent() {
return this.event;
}
// -------------------------------------------- //
// CONSTRUCT
// -------------------------------------------- //
public EventFactionsPvpDisallowed(Player attacker, Player defender, DisallowCause cause, EntityDamageByEntityEvent event) {
this.attacker = attacker;
this.defender = defender;
this.cause = cause;
this.event = event;
}
}