Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.atherys.effects;
- import com.atherys.skills.SkillSmoke;
- import com.herocraftonline.heroes.characters.Hero;
- import com.herocraftonline.heroes.characters.effects.EffectType;
- import com.herocraftonline.heroes.characters.effects.ExpirableEffect;
- import com.herocraftonline.heroes.characters.skill.Skill;
- import com.herocraftonline.heroes.util.Messaging;
- import org.bukkit.entity.*;
- import java.util.HashSet;
- import java.util.Set;
- import com.herocraftonline.heroes.Heroes;
- import com.herocraftonline.heroes.characters.Hero;
- import com.herocraftonline.heroes.characters.effects.EffectType;
- import com.herocraftonline.heroes.characters.effects.ExpirableEffect;
- import com.herocraftonline.heroes.characters.skill.Skill;
- import com.herocraftonline.heroes.util.Messaging;
- import java.util.HashSet;
- import java.util.Set;
- import org.bukkit.Server;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Monster;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Spider;
- import org.bukkit.event.Event;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.player.PlayerInteractEvent;
- public class SmokeEffect extends ExpirableEffect
- {
- public static final Set<String> hiddenPlayers = new HashSet();
- private final String applyText;
- private final String expireText;
- public SmokeEffect(Skill skill, long duration, String applyText, String expireText)
- {
- super(skill, "smoke", duration);
- this.applyText = applyText;
- this.expireText = expireText;
- this.types.add(EffectType.BENEFICIAL);
- this.types.add(EffectType.INVIS);
- this.types.add(EffectType.UNTARGETABLE_NO_MSG);
- }
- public void applyToHero(Hero hero)
- {
- super.applyToHero(hero);
- Player player = hero.getPlayer();
- for (Player onlinePlayer : this.plugin.getServer().getOnlinePlayers()) {
- if ((!onlinePlayer.equals(player)) && (!onlinePlayer.hasPermission("heroes.admin.seeinvis"))) {
- onlinePlayer.hidePlayer(player);
- }
- }
- hiddenPlayers.add(player.getName());
- for (Entity entity : player.getNearbyEntities(50.0D, 30.0D, 50.0D)) {
- if ((entity instanceof Monster)) {
- if ((entity.getType().equals(EntityType.SPIDER)) || (entity.getType().equals(EntityType.CAVE_SPIDER)))
- {
- Spider spider = (Spider)entity;
- if (spider.getTarget() != null) {
- if (spider.getTarget().equals(player)) {
- spider.setTarget(null);
- }
- }
- }
- else
- {
- Monster monster = (Monster)entity;
- LivingEntity target = monster.getTarget();
- if (target.equals(player)) {
- monster.setTarget(null);
- }
- }
- }
- }
- if ((this.applyText != null) && (this.applyText.length() > 0)) {
- Messaging.send(player, this.applyText, new Object[]{player.getDisplayName()});
- }
- }
- public void removeFromHero(Hero hero)
- {
- super.removeFromHero(hero);
- Player player = hero.getPlayer();
- for (Player onlinePlayer : this.plugin.getServer().getOnlinePlayers()) {
- if (!onlinePlayer.equals(player)) {
- onlinePlayer.showPlayer(player);
- }
- }
- hiddenPlayers.remove(player.getName());
- if ((this.expireText != null) && (this.expireText.length() > 0)) {
- Messaging.send(player, this.expireText, new Object[] { player.getDisplayName() });
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment