Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z AntyLogout na BarAPI


SkredoX

Rekomendowane odpowiedzi

Opublikowano

Witam, mam problem z moim pluginem na AntyLogout. Otoz wszystko dziala, bar sie wyswietla ale w konsoli wyskakuja ciagle owe denerwujace logi:

 

[08:09:43 WARN]: java.lang.NoSuchMethodException: net.minecraft.server.v1_7_R4.PacketPlayOutEntityTeleport.<init>(int, int, int, int, byte, byte)
[08:09:43 WARN]: 	at java.lang.Class.getConstructor0(Class.java:3082)
[08:09:43 WARN]: 	at java.lang.Class.getConstructor(Class.java:1825)
[08:09:43 WARN]: 	at me.confuser.barapi.nms.v1_7.getTeleportPacket(v1_7.java:139)
[08:09:43 WARN]: 	at me.confuser.barapi.BarAPI.sendDragon(BarAPI.java:332)
[08:09:43 WARN]: 	at me.confuser.barapi.BarAPI.setMessage(BarAPI.java:86)
[08:09:43 WARN]: 	at pl.sxCore.antylogout.manager.PvpManager.run(PvpManager.java:73)
[08:09:43 WARN]: 	at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71)
[08:09:43 WARN]: 	at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
[08:09:43 WARN]: 	at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641)
[08:09:43 WARN]: 	at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289)
[08:09:43 WARN]: 	at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584)
[08:09:43 WARN]: 	at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490)
[08:09:43 WARN]: 	at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628)


Klasa PvpManager:

 

package pl.sxCore.antylogout.manager;

import java.util.HashMap;
import java.util.Set;
import me.confuser.barapi.BarAPI;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.scheduler.BukkitTask;
import pl.sxCore.Main;
import pl.sxCore.antylogout.util.BossBar;
import pl.sxCore.data.Config;
import pl.sxCore.util.Utils;

public class PvpManager
  implements Runnable
{
  private static HashMap<Player, Player> damagers = new HashMap();
  private static HashMap<Player, Integer> times = new HashMap();
  private static HashMap<Player, Integer> nopvp = new HashMap();
  private static BukkitTask task;
  
  public static void setPvpStatus(Player a, Player v)
  {
    Config c = Config.getInst();
    if (!v.hasPermission("antylogout.bypass"))
    {
      BarAPI.setMessage(v, Utils.fixColors(c.PVP_MESSAGE), Float.valueOf(100.0F).floatValue());
      
      setLastDamager(v, a);
      setPvpTime(v, 200);
    }
    if (!a.hasPermission("antylogout.bypass"))
    {
      BarAPI.setMessage(a, Utils.fixColors(c.PVP_MESSAGE), Float.valueOf(100.0F).floatValue());
      setLastDamager(a, v);
      setPvpTime(a, 200);
    }
  }
  
  public static void removePvpStatus(Player p)
  {
    setLastDamager(p, null);
    setPvpTime(p, 0);
  }
  
  public static void start()
  {
    task = Bukkit.getScheduler().runTaskTimer(Main.getInst(), new PvpManager(), 20L, 20L);
  }
  
  public static void stop()
  {
    if (task != null) {
      task.cancel();
    }
  }
  
  public void run()
  {
    Config c = Config.getInst();
    for (final Player p : times.keySet())
    {
      int t = getPvpTime(p) - 10;
      int perc = t / 2;
      if ((getLastDamager(p) != null) && (p.getLocation().distance(getLastDamager(p).getLocation()) >= 50.0D))
      {
        t -= 10;
        perc = t / 2;
      }
      if (t < 1)
      {
        removePvpStatus(p);
        
        BarAPI.setHealth(p, 0.0F);
        BarAPI.setMessage(p, Utils.fixColors(c.NOPVP_MESSAGE));
        Bukkit.getScheduler().runTaskLater(Main.getInst(), new Runnable()
        {
          public void run()
          {
            if (BarAPI.getMessage(p).equals(Utils.fixColors(Config.getInst().NOPVP_MESSAGE))) {
              BossBar.remove(p);
            }
          }
        }, 100L);
        for (int i = 0; i < 3; i++) {
          p.playSound(p.getLocation(), Sound.ORB_PICKUP, 100.0F, 2.0F);
        }
      }
      else
      {
        setPvpTime(p, t);
        
        BarAPI.setMessage(p, Utils.fixColors(c.PVP_MESSAGE), Float.valueOf(perc).floatValue());
      }
    }
  }
  
  public static void setLastDamager(Player p, Player d)
  {
    if (d == null) {
      damagers.remove(p);
    } else if (p != d) {
      damagers.put(p, d);
    }
  }
  
  public static Player getLastDamager(Player p)
  {
    return (Player)damagers.get(p);
  }
  
  public static void setNoPvpTime(Player p, int t)
  {
    if (t < 1) {
      nopvp.remove(p);
    } else {
      nopvp.put(p, Integer.valueOf(t));
    }
  }
  
  public static int getNoPvpTime(Player p)
  {
    if (nopvp.get(p) == null) {
      return 0;
    }
    return ((Integer)nopvp.get(p)).intValue();
  }
  
  public static void setPvpTime(Player p, int t)
  {
    if (t < 1) {
      times.remove(p);
    } else {
      times.put(p, Integer.valueOf(t));
    }
  }
  
  public static int getPvpTime(Player p)
  {
    if (times.get(p) == null) {
      return 0;
    }
    return ((Integer)times.get(p)).intValue();
  }
  
  public static Set<Player> getTimes()
  {
    return times.keySet();
  }
}

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...