Guest User

Untitled

a guest
May 26th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.65 KB | None | 0 0
  1. package com.herocraftonline.dev.heroes.skill.skills;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.configuration.ConfigurationSection;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.Event.Priority;
  7. import org.bukkit.event.Event.Type;
  8. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  9.  
  10. import com.herocraftonline.dev.heroes.Heroes;
  11. import com.herocraftonline.dev.heroes.api.HeroesEventListener;
  12. import com.herocraftonline.dev.heroes.api.WeaponDamageEvent;
  13. import com.herocraftonline.dev.heroes.effects.EffectType;
  14. import com.herocraftonline.dev.heroes.hero.Hero;
  15. import com.herocraftonline.dev.heroes.skill.PassiveSkill;
  16. import com.herocraftonline.dev.heroes.skill.Skill;
  17. import com.herocraftonline.dev.heroes.skill.SkillConfigManager;
  18. import com.herocraftonline.dev.heroes.skill.SkillType;
  19.  
  20. public class SkillBarrier extends PassiveSkill {
  21.  
  22.     public SkillBarrier(Heroes plugin) {
  23.         super(plugin, "Barrier");
  24.         setDescription("You are protected by a barrier, reducing incoming damage!");
  25.         setArgumentRange(0, 0);
  26.         setEffectTypes(EffectType.BENEFICIAL, EffectType.PHYSICAL);
  27.         setTypes(SkillType.PHYSICAL);
  28.  
  29.         registerEvent(Type.CUSTOM_EVENT, new CustomListener(this), Priority.Highest);
  30.     }
  31.  
  32.     @Override
  33.     public ConfigurationSection getDefaultConfig() {
  34.         ConfigurationSection node = super.getDefaultConfig();
  35.         node.set("damage-muliplier", 0.6);
  36.         return node;
  37.     }
  38.  
  39.     public class CustomListener extends HeroesEventListener {
  40.  
  41.         private final Skill skill;
  42.        
  43.         public CustomListener(Skill skill) {
  44.             this.skill = skill;
  45.         }
  46.  
  47.         @Override
  48.         public void onWeaponDamage(WeaponDamageEvent event) {
  49.             Heroes.debug.startTask("HeroesSkillListener");
  50.             if (event.getCause() != DamageCause.ENTITY_ATTACK || event.getDamage() == 0 || !(event.getEntity() instanceof Player)) {
  51.                 Heroes.debug.stopTask("HeroesSkillListener");
  52.                 return;
  53.             }
  54.  
  55.             Player player = (Player) event.getEntity();
  56.             Hero hero = plugin.getHeroManager().getHero(player);
  57.             if (hero.hasEffect(getName())) {
  58.                 double multiplier = 1;
  59.                 {
  60.                     multiplier = SkillConfigManager.getUseSetting(hero, skill, "damage-multiplier", 0.6, true);
  61.                  {
  62.                 event.setDamage((int) (event.getDamage() * multiplier));
  63.             }
  64.             Heroes.debug.stopTask("HeroesSkillListener");
  65.         }
  66.    
  67.  
  68.     @Override
  69.     public String getDescription(Hero hero) {
  70.         return getDescription();
  71.     }
  72. }
Add Comment
Please, Sign In to add comment