hubeb

SmokeEffect

Apr 19th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. package com.atherys.effects;
  2.  
  3. import com.atherys.skills.SkillSmoke;
  4. import com.herocraftonline.heroes.characters.Hero;
  5. import com.herocraftonline.heroes.characters.effects.EffectType;
  6. import com.herocraftonline.heroes.characters.effects.ExpirableEffect;
  7. import com.herocraftonline.heroes.characters.skill.Skill;
  8. import com.herocraftonline.heroes.util.Messaging;
  9. import org.bukkit.entity.*;
  10.  
  11. import java.util.HashSet;
  12. import java.util.Set;
  13.  
  14. import com.herocraftonline.heroes.Heroes;
  15. import com.herocraftonline.heroes.characters.Hero;
  16. import com.herocraftonline.heroes.characters.effects.EffectType;
  17. import com.herocraftonline.heroes.characters.effects.ExpirableEffect;
  18. import com.herocraftonline.heroes.characters.skill.Skill;
  19. import com.herocraftonline.heroes.util.Messaging;
  20. import java.util.HashSet;
  21. import java.util.Set;
  22. import org.bukkit.Server;
  23. import org.bukkit.entity.Entity;
  24. import org.bukkit.entity.EntityType;
  25. import org.bukkit.entity.LivingEntity;
  26. import org.bukkit.entity.Monster;
  27. import org.bukkit.entity.Player;
  28. import org.bukkit.entity.Spider;
  29. import org.bukkit.event.Event;
  30. import org.bukkit.event.EventHandler;
  31. import org.bukkit.event.EventPriority;
  32. import org.bukkit.event.player.PlayerInteractEvent;
  33.  
  34. public class SmokeEffect extends ExpirableEffect
  35. {
  36. public static final Set<String> hiddenPlayers = new HashSet();
  37. private final String applyText;
  38. private final String expireText;
  39.  
  40. public SmokeEffect(Skill skill, long duration, String applyText, String expireText)
  41. {
  42. super(skill, "smoke", duration);
  43. this.applyText = applyText;
  44. this.expireText = expireText;
  45.  
  46. this.types.add(EffectType.BENEFICIAL);
  47. this.types.add(EffectType.INVIS);
  48. this.types.add(EffectType.UNTARGETABLE_NO_MSG);
  49. }
  50.  
  51. public void applyToHero(Hero hero)
  52. {
  53. super.applyToHero(hero);
  54. Player player = hero.getPlayer();
  55. for (Player onlinePlayer : this.plugin.getServer().getOnlinePlayers()) {
  56. if ((!onlinePlayer.equals(player)) && (!onlinePlayer.hasPermission("heroes.admin.seeinvis"))) {
  57. onlinePlayer.hidePlayer(player);
  58. }
  59. }
  60. hiddenPlayers.add(player.getName());
  61. for (Entity entity : player.getNearbyEntities(50.0D, 30.0D, 50.0D)) {
  62. if ((entity instanceof Monster)) {
  63. if ((entity.getType().equals(EntityType.SPIDER)) || (entity.getType().equals(EntityType.CAVE_SPIDER)))
  64. {
  65. Spider spider = (Spider)entity;
  66. if (spider.getTarget() != null) {
  67. if (spider.getTarget().equals(player)) {
  68. spider.setTarget(null);
  69. }
  70. }
  71. }
  72. else
  73. {
  74. Monster monster = (Monster)entity;
  75. LivingEntity target = monster.getTarget();
  76. if (target.equals(player)) {
  77. monster.setTarget(null);
  78. }
  79. }
  80. }
  81. }
  82. if ((this.applyText != null) && (this.applyText.length() > 0)) {
  83. Messaging.send(player, this.applyText, new Object[]{player.getDisplayName()});
  84. }
  85. }
  86.  
  87.  
  88. public void removeFromHero(Hero hero)
  89. {
  90. super.removeFromHero(hero);
  91. Player player = hero.getPlayer();
  92.  
  93.  
  94. for (Player onlinePlayer : this.plugin.getServer().getOnlinePlayers()) {
  95. if (!onlinePlayer.equals(player)) {
  96. onlinePlayer.showPlayer(player);
  97. }
  98. }
  99. hiddenPlayers.remove(player.getName());
  100. if ((this.expireText != null) && (this.expireText.length() > 0)) {
  101. Messaging.send(player, this.expireText, new Object[] { player.getDisplayName() });
  102. }
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment