package com.nisovin.magicspells.factions;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import com.massivecraft.factions.FFlag;
import com.massivecraft.factions.Rel;
import com.massivecraft.factions.entity.BoardColls;
import com.massivecraft.factions.entity.Faction;
import com.massivecraft.factions.entity.UPlayer;
import com.massivecraft.mcore.ps.PS;
import com.nisovin.magicspells.events.SpellTargetEvent;
public class MagicSpellsFactions extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onSpellTarget(SpellTargetEvent event) {
if (event.getCaster() == null) return;
if (!(event.getTarget() instanceof Player)) return;
boolean beneficial = event.getSpell().isBeneficial();
UPlayer caster = UPlayer.get(event.getCaster());
UPlayer target = UPlayer.get(event.getTarget());
Rel rel = caster.getRelationTo(target);
if (rel.isFriend() && !beneficial) {
event.setCancelled(true);
} else if (!rel.isFriend() && beneficial) {
event.setCancelled(true);
}
Faction faction = BoardColls.get().getFactionAt(PS.valueOf(event.getCaster().getLocation()));
if (faction != null && !faction.getFlag(FFlag.PVP)) {
event.setCancelled(true);
}
faction = BoardColls.get().getFactionAt(PS.valueOf(event.getTarget().getLocation()));
if (faction != null && !faction.getFlag(FFlag.PVP)) {
event.setCancelled(true);
}
}
}