forked from Upstream/mmocore
fixed citizens compatibility with passive skills
This commit is contained in:
parent
dc351ed10f
commit
564a5dede3
@ -168,10 +168,9 @@ public class MMOCoreUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param player Player casting a spell/basic attack
|
* @param player Player casting a spell/basic attack
|
||||||
* @param target The target entity
|
* @param target The target entity
|
||||||
* @return If the player can target the entity given the attack type
|
* @return If the player can attack the entity
|
||||||
* (buff or attack)
|
|
||||||
*/
|
*/
|
||||||
public static boolean canTarget(PlayerData player, Entity target) {
|
public static boolean canTarget(PlayerData player, Entity target) {
|
||||||
return canTarget(player, target, false);
|
return canTarget(player, target, false);
|
||||||
@ -188,15 +187,12 @@ public class MMOCoreUtils {
|
|||||||
*/
|
*/
|
||||||
// TODO worldguard flags support for no target
|
// TODO worldguard flags support for no target
|
||||||
public static boolean canTarget(PlayerData player, Entity target, boolean buff) {
|
public static boolean canTarget(PlayerData player, Entity target, boolean buff) {
|
||||||
if (!player.isOnline())
|
|
||||||
|
// Basic checks
|
||||||
|
if (!player.isOnline() || !(target instanceof LivingEntity) || player.getPlayer().equals(target) || target.isDead() || MythicLib.plugin.getEntities().findCustom(target))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// basic checks
|
// Party check
|
||||||
if (!(target instanceof LivingEntity) || player.getPlayer().equals(target) || target.isDead()
|
|
||||||
|| MythicLib.plugin.getEntities().findCustom(target))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// party check
|
|
||||||
if (!buff && target instanceof Player) {
|
if (!buff && target instanceof Player) {
|
||||||
PlayerData targetData = PlayerData.get((Player) target);
|
PlayerData targetData = PlayerData.get((Player) target);
|
||||||
return !targetData.hasParty() || !targetData.getParty().getMembers().has(player);
|
return !targetData.hasParty() || !targetData.getParty().getMembers().has(player);
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package net.Indyuce.mmocore.comp.mythicmobs.skill.handlers;
|
package net.Indyuce.mmocore.comp.mythicmobs.skill.handlers;
|
||||||
|
|
||||||
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
|
import net.Indyuce.mmocore.api.util.MMOCoreUtils;
|
||||||
|
import net.Indyuce.mmocore.comp.mythicmobs.skill.MythicMobSkill;
|
||||||
|
import net.Indyuce.mmocore.comp.mythicmobs.skill.PassiveMythicMobSkillHandler;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
|
||||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
|
||||||
import net.Indyuce.mmocore.comp.mythicmobs.skill.MythicMobSkill;
|
|
||||||
import net.Indyuce.mmocore.comp.mythicmobs.skill.PassiveMythicMobSkillHandler;
|
|
||||||
|
|
||||||
public class PlayerDamageByEntitySkillHandler extends PassiveMythicMobSkillHandler {
|
public class PlayerDamageByEntitySkillHandler extends PassiveMythicMobSkillHandler {
|
||||||
/**
|
/**
|
||||||
* Used to handle passive skills which trigger when a player takes damage
|
* Used to handle passive skills which trigger when a player takes damage
|
||||||
@ -19,8 +19,8 @@ public class PlayerDamageByEntitySkillHandler extends PassiveMythicMobSkillHandl
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void event(EntityDamageByEntityEvent e) {
|
private void a(EntityDamageByEntityEvent event) {
|
||||||
if (e.getEntity().getType() == EntityType.PLAYER)
|
if (event.getEntity().getType() == EntityType.PLAYER && MMOCoreUtils.canTarget(PlayerData.get(event.getEntity().getUniqueId()), event.getDamager()))
|
||||||
castSkill(PlayerData.get((Player) e.getEntity()), e.getDamager());
|
castSkill(PlayerData.get((Player) event.getEntity()), event.getDamager());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,7 @@ public abstract class PlayerDataManager {
|
|||||||
* @return Player data, if it's loaded
|
* @return Player data, if it's loaded
|
||||||
*/
|
*/
|
||||||
public PlayerData get(UUID uuid) {
|
public PlayerData get(UUID uuid) {
|
||||||
Validate.isTrue(data.containsKey(uuid), "Player data is not loaded");
|
return Objects.requireNonNull(data.get(uuid), "Player data is not loaded");
|
||||||
return data.get(uuid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remove(UUID uuid) {
|
public void remove(UUID uuid) {
|
||||||
|
Loading…
Reference in New Issue
Block a user