Improved Shadow Veil after 2 YEARS of not having PvM support!

- Made Shadow Veil stop future and current mobs from targeting you!
This commit is contained in:
HexedHero 2019-09-14 12:48:25 +00:00
parent 3c3f39c01a
commit 21ff801949

View File

@ -8,10 +8,12 @@ import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Particle; import org.bukkit.Particle;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Mob;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.MMOItems;
@ -41,6 +43,9 @@ public class Shadow_Veil extends Ability implements Listener {
stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 3, 0); stats.getPlayer().getWorld().playSound(stats.getPlayer().getLocation(), VersionSound.ENTITY_ENDERMAN_TELEPORT.toSound(), 3, 0);
for (Player online : Bukkit.getOnlinePlayers()) for (Player online : Bukkit.getOnlinePlayers())
online.hidePlayer(MMOItems.plugin, stats.getPlayer()); online.hidePlayer(MMOItems.plugin, stats.getPlayer());
for (Mob serverEntities : stats.getPlayer().getWorld().getEntitiesByClass(Mob.class))
if (serverEntities.getTarget() != null && serverEntities.getTarget().equals(stats.getPlayer()))
serverEntities.setTarget(null);
new BukkitRunnable() { new BukkitRunnable() {
double ti = 0; double ti = 0;
double y = 0; double y = 0;
@ -89,4 +94,14 @@ public class Shadow_Veil extends Ability implements Listener {
if (shadowVeil.contains(player.getUniqueId())) if (shadowVeil.contains(player.getUniqueId()))
shadowVeil.remove(player.getUniqueId()); shadowVeil.remove(player.getUniqueId());
} }
@EventHandler
public void b(EntityTargetEvent event) {
if (!(event.getTarget() instanceof Player))
return;
Player player = (Player) event.getTarget();
if (shadowVeil.contains(player.getUniqueId()))
event.setCancelled(true);
}
} }