Advertisement
FiddlerGun

[Bukkit] LagcyPvp Mount 3 (CooldownModule)

Nov 20th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 KB | None | 0 0
  1. package fr.fiddlergun.tomahawk.api.pvp;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.attribute.Attribute;
  5. import org.bukkit.attribute.AttributeInstance;
  6. import org.bukkit.entity.Entity;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.event.EventHandler;
  9. import org.bukkit.event.EventPriority;
  10. import org.bukkit.event.Listener;
  11. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  12. import org.bukkit.event.entity.EntityDamageEvent;
  13. import org.bukkit.event.player.PlayerJoinEvent;
  14. import org.bukkit.inventory.ItemStack;
  15.  
  16. public class CooldownModule implements Listener{
  17.  
  18.     private int[] data = new int[Material.values().length];
  19.  
  20.     public CooldownModule( ){
  21.  
  22.         data[Material.WOOD_AXE.ordinal()] = 1;
  23.         data[Material.GOLD_AXE.ordinal()] = 2;
  24.         data[Material.WOOD_SWORD.ordinal()] = 3;
  25.         data[Material.GOLD_SWORD.ordinal()] = 4;
  26.         data[Material.STONE_AXE.ordinal()] = 5;
  27.         data[Material.STONE_SWORD.ordinal()] = 6;
  28.         data[Material.IRON_AXE.ordinal()] = 7;
  29.         data[Material.IRON_SWORD.ordinal()] = 8;
  30.         data[Material.DIAMOND_AXE.ordinal()] = 9;
  31.         data[Material.DIAMOND_SWORD.ordinal()] = 10;
  32.     }
  33.  
  34.     @EventHandler(priority = EventPriority.MONITOR)
  35.     public void onPlayerJoin(PlayerJoinEvent event){
  36.         Player player = event.getPlayer();
  37.             AttributeInstance genericAttackSpeedAttribute = player.getAttribute(Attribute.GENERIC_ATTACK_SPEED);
  38.             if (genericAttackSpeedAttribute != null)
  39.                 genericAttackSpeedAttribute.setBaseValue(1024.0D);
  40.         }
  41.  
  42.     @EventHandler(priority = EventPriority.LOWEST)
  43.     public void onEntityDamageByEntity(EntityDamageByEntityEvent event){
  44.             Entity attacker = event.getDamager();
  45.             if (attacker instanceof Player) {
  46.                 Player player = (Player) attacker;
  47.                 ItemStack inHand = player.getInventory().getItemInMainHand();
  48.                 if (inHand != null) {
  49.                     double baseDamage = event.getDamage(EntityDamageEvent.DamageModifier.BASE);
  50.                     double currentDamage = this.getCurrentDamage(inHand.getType());
  51.                     if (currentDamage != 0.0D) {
  52.                         double damageFactor = baseDamage / currentDamage;
  53.                         double legacyDamage = this.getLegacyDamage(inHand.getType()) * damageFactor;
  54.                         event.setDamage(EntityDamageEvent.DamageModifier.BASE, legacyDamage);
  55.                     }
  56.                 }
  57.             }
  58.         }
  59.  
  60.     private double getLegacyDamage(Material type) {
  61.         switch(data[type.ordinal()]) {
  62.             case 1:
  63.             case 2:
  64.                 return 4.0D;
  65.             case 3:
  66.             case 4:
  67.             case 5:
  68.                 return 5.0D;
  69.             case 6:
  70.             case 7:
  71.                 return 6.0D;
  72.             case 8:
  73.             case 9:
  74.                 return 7.0D;
  75.             case 10:
  76.                 return 8.0D;
  77.             default:
  78.                 return 0.0D;
  79.         }
  80.     }
  81.  
  82.     private double getCurrentDamage(Material type) {
  83.         switch(data[type.ordinal()]) {
  84.             case 1:
  85.             case 2:
  86.             case 10:
  87.                 return 7.0D;
  88.             case 3:
  89.             case 4:
  90.                 return 4.0D;
  91.             case 5:
  92.             case 7:
  93.             case 9:
  94.                 return 9.0D;
  95.             case 6:
  96.                 return 5.0D;
  97.             case 8:
  98.                 return 6.0D;
  99.             default:
  100.                 return 0.0D;
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement