Facebook
From Szymusek07, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 180
  1. package net.ernioo.core.listeners.bukkit.entity;
  2.  
  3. import org.bukkit.entity.*;
  4. import net.ernioo.core.configuration.*;
  5. import org.bukkit.command.*;
  6. import org.bukkit.*;
  7. import net.ernioo.core.utils.*;
  8. import net.ernioo.core.objects.*;
  9. import org.bukkit.event.*;
  10. import org.bukkit.event.entity.*;
  11. import org.bukkit.enchantments.*;
  12. import org.bukkit.inventory.*;
  13. import net.ernioo.core.*;
  14. import org.bukkit.plugin.*;
  15. import net.ernioo.core.managers.*;
  16. import net.ernioo.core.objects.guild.*;
  17.  
  18. public class EntityDamageByEntityListener implements Listener
  19. {
  20.     public static Integer counter;
  21.    
  22.     @EventHandler(priority = EventPriority.HIGHEST)
  23.     public void EntityDamageByEntity(final EntityDamageByEntityEvent e) {
  24.         if (e.isCancelled()) {
  25.             return;
  26.         }
  27.         if (!(e.getEntity() instanceof Player)) {
  28.             return;
  29.         }
  30.         final Player d = ChatUtil.getDamager(e);
  31.         if (d == null) {
  32.             return;
  33.         }
  34.         final Player p = (Player)e.getEntity();
  35.         if (p.equals(d)) {
  36.             return;
  37.         }
  38.         final AntiLogout u = AntiLogoutManager.getCombat(p);
  39.         if (u == null) {
  40.             return;
  41.         }
  42.         if (this.is(p, d, e)) {
  43.             return;
  44.         }
  45.         if (!u.hasFight()) {
  46.             String msg = Settings.ANTILOGOUT_MESSAGE_START;
  47.             msg = msg.replace("{TIME}", Integer.toString(Settings.ANTILOGOUT_TIME));
  48.             ChatUtil.sendMessage((CommandSender)p, msg);
  49.         }
  50.         if (EntityDamageByEntityListener.counter != null) {
  51.             Bukkit.getScheduler().cancelTask((int)EntityDamageByEntityListener.counter);
  52.         }
  53.         this.counter(p, Settings.ANTILOGOUT_TIME);
  54.         u.setLastAttactTime(System.currentTimeMillis() + TimeUtil.SECOND.getTime(Settings.ANTILOGOUT_TIME));
  55.         if (u.getLastAttactkPlayer() != d) {
  56.             u.setLastAsystPlayer(u.getLastAttactkPlayer());
  57.             u.setLastAsystTime(System.currentTimeMillis() + TimeUtil.SECOND.getTime(Settings.ANTILOGOUT_TIME));
  58.         }
  59.         u.setLastAttactkPlayer(d);
  60.     }
  61.    
  62.     @EventHandler
  63.     public void EntityShootBow(final EntityShootBowEvent e) {
  64.         final ItemStack bow = e.getBow();
  65.         if (bow.containsEnchantment(Enchantment.ARROW_KNOCKBACK)) {
  66.             if (bow.containsEnchantment(Enchantment.DURABILITY)) {
  67.                 bow.removeEnchantment(Enchantment.DURABILITY);
  68.             }
  69.             if (bow.getDurability() < 339) {
  70.                 bow.setDurability((short)338);
  71.             }
  72.         }
  73.     }
  74.    
  75.     public void counter(final Player p, final int i) {
  76.         EntityDamageByEntityListener.counter = Bukkit.getScheduler().scheduleSyncRepeatingTask((Plugin)CorePlugin.getPlugin(), (Runnable)new Runnable(i) {
  77.             int time = n + 1;
  78.            
  79.             @Override
  80.             public void run() {
  81.                 --this.time;
  82.                 if (this.time > 0) {
  83.                     String message = Settings.ANTILOGOUT_ACTIONBAR_START;
  84.                     message = message.replace("{TIME}", Integer.toString(this.time));
  85.                     ChatUtil.sendActionBar(p, ChatUtil.fixColor(message));
  86.                 }
  87.                 if (this.time == 0) {
  88.                     String message = Settings.ANTILOGOUT_ACTIONBAR_END;
  89.                     message = message.replace("{TIME}", Integer.toString(this.time));
  90.                     ChatUtil.sendActionBar(p, ChatUtil.fixColor(message));
  91.                 }
  92.             }
  93.         }, 0L, 20L);
  94.     }
  95.    
  96.     private boolean is(final Player p, final Player d, final EntityDamageByEntityEvent e) {
  97.         final Guild g = GuildManager.getGuild(p);
  98.         final Guild o = GuildManager.getGuild(d);
  99.         if (g == null || o == null) {
  100.             return false;
  101.         }
  102.         if (g.equals(o)) {
  103.             if (g.isPvp()) {
  104.                 e.setDamage(0.0);
  105.             }
  106.             else {
  107.                 e.setCancelled(true);
  108.             }
  109.             return true;
  110.         }
  111.         if (g.getAlly().contains(o.getTag())) {
  112.             if (!g.isPvpAlly() || !o.isPvpAlly()) {
  113.                 e.setCancelled(true);
  114.             }
  115.             else {
  116.                 e.setDamage(0.0);
  117.             }
  118.             return true;
  119.         }
  120.         return false;
  121.     }
  122. }
  123.