80 lines
2.2 KiB
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;
|
|
}
|
|
|
|
}
|