- package net.kopara.kguild.listeners.bukkit.entity;
- import net.kopara.kguild.objects.guild.Guild;
- import net.kopara.kguild.managers.GuildManager;
- import org.bukkit.plugin.Plugin;
- import net.kopara.kguild.Main;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.event.entity.EntityShootBowEvent;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.EventHandler;
- import net.kopara.kguild.objects.AntiLogout;
- import net.kopara.kguild.utils.TimeUtil;
- import org.bukkit.Bukkit;
- import org.bukkit.command.CommandSender;
- import net.kopara.kguild.configuration.Settings;
- import net.kopara.kguild.managers.AntiLogoutManager;
- import net.kopara.kguild.utils.ChatUtil;
- import org.bukkit.entity.Player;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.event.Listener;
- public class EntityDamageByEntityListener implements Listener
- {
- public static Integer counter;
- @EventHandler(priority = EventPriority.HIGHEST)
- public void EntityDamageByEntity(final EntityDamageByEntityEvent e) {
- if (e.isCancelled()) {
- return;
- }
- if (!(e.getEntity() instanceof Player)) {
- return;
- }
- final Player d = ChatUtil.getDamager(e);
- if (d == null) {
- return;
- }
- final Player p = (Player)e.getEntity();
- if (p.equals(d)) {
- return;
- }
- final AntiLogout u = AntiLogoutManager.getCombat(p);
- if (u == null) {
- return;
- }
- if (this.is(p, d, e)) {
- return;
- }
- if (!u.hasFight()) {
- String msg = Settings.ANTILOGOUT_MESSAGE_START;
- msg = msg.replace("{TIME}", Integer.toString(Settings.ANTILOGOUT_TIME));
- ChatUtil.sendMessage((CommandSender)p, msg);
- }
- if (EntityDamageByEntityListener.counter != null) {
- Bukkit.getScheduler().cancelTask((int)EntityDamageByEntityListener.counter);
- }
- this.counter(p, Settings.ANTILOGOUT_TIME);
- u.setLastAttactTime(System.currentTimeMillis() + TimeUtil.SECOND.getTime(Settings.ANTILOGOUT_TIME));
- if (u.getLastAttactkPlayer() != d) {
- u.setLastAsystPlayer(u.getLastAttactkPlayer());
- u.setLastAsystTime(System.currentTimeMillis() + TimeUtil.SECOND.getTime(Settings.ANTILOGOUT_TIME));
- }
- u.setLastAttactkPlayer(d);
- }
- @EventHandler
- public void EntityShootBow(final EntityShootBowEvent e) {
- final ItemStack bow = e.getBow();
- if (bow.containsEnchantment(Enchantment.ARROW_KNOCKBACK)) {
- if (bow.containsEnchantment(Enchantment.DURABILITY)) {
- bow.removeEnchantment(Enchantment.DURABILITY);
- }
- if (bow.getDurability() < 339) {
- bow.setDurability((short)338);
- }
- }
- }
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
- public void counter(final Player p, final int i) {
- EntityDamageByEntityListener.counter = Bukkit.getScheduler().scheduleSyncRepeatingTask((Plugin)Main.getPlugin(), (Runnable)new Runnable(i) {
- int time = n + 1;
- @Override
- public void run() {
- --this.time;
- if (this.time > 0) {
- String message = Settings.ANTILOGOUT_ACTIONBAR_START;
- message = message.replace("{TIME}", Integer.toString(this.time));
- ChatUtil.sendActionBar(p, ChatUtil.fixColor(message));
- }
- if (this.time == 0) {
- String message = Settings.ANTILOGOUT_ACTIONBAR_END;
- message = message.replace("{TIME}", Integer.toString(this.time));
- ChatUtil.sendActionBar(p, ChatUtil.fixColor(message));
- }
- }
- }, 0L, 20L);
- }
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
- Ta całość wyżej to błąd całe to jest błąd "The constructor Object(int) is undefined"
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=
- private boolean is(final Player p, final Player d, final EntityDamageByEntityEvent e) {
- final Guild g = GuildManager.getGuild(p);
- final Guild o = GuildManager.getGuild(d);
- if (g == null || o == null) {
- return false;
- }
- if (g.equals(o)) {
- if (g.isPvp()) {
- e.setDamage(0.0);
- }
- else {
- e.setCancelled(true);
- }
- return true;
- }
- if (g.getAlly().contains(o.getTag())) {
- if (!g.isPvpAlly() || !o.isPvpAlly()) {
- e.setCancelled(true);
- }
- else {
- e.setDamage(0.0);
- }
- return true;
- }
- return false;
- }
- }