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 komenda /tpaccept


SkredoX

Rekomendowane odpowiedzi

Opublikowano

Witam, pisze sobie plugin 4fun i mam problem z komenda /tpaccept. Logi przy uzyciu komendy:

 

[21:39:41 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing 'tpaccept' in pl.sxcore.cmd.util.Performer(tpaccept)
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:188) ~[server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
Caused by: java.lang.NullPointerException
at pl.sxcore.cmd.user.TpacceptExc.execute(TpacceptExc.java:28) ~[?:?]
at pl.sxcore.cmd.util.ExecutorCaller.call(ExecutorCaller.java:93) ~[?:?]
at pl.sxcore.core.cmd.util.ExecutorCaller.onCommand(ExecutorCaller.java:114) ~[?:?]
at pl.sxcore.cmd.util.Performer.execute(Performer.java:23) ~[?:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[server.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
... 12 more


Klasa TpacceptExc

 

import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import pl.sxCore.basic.User;
import pl.sxCore.cmd.util.Executor;
import pl.sxCore.runnable.TeleportTask;
import pl.sxCore.system.data.Config;
import pl.sxCore.util.StringUtils;

public class TpacceptExc
  implements Executor
{
  public void execute(CommandSender s, String[] args)
  {
    if (!(s instanceof Player))
    {
      s.sendMessage(StringUtils.colored(Config.getInst().PREFIX + "&cNie jestes graczem!"));
      return;
    }
    User u = User.get((Player)s);
    if ((u.getLastTpa() == null) || (!u.getLastTpa().isOnline()))
    {
      s.sendMessage(StringUtils.colored(Config.getInst().PREFIX + "&cNie masz zadnej prosby do zaakceptowania!"));
      return;
    }
    u.setLastTpa(null);
    u.setTpaHere(false);
    s.sendMessage(StringUtils.colored(Config.getInst().PREFIX + "&7Prosba o teleportacje zaakceptowana."));
    u.getLastTpa().sendMessage(StringUtils.colored(Config.getInst().PREFIX + "&c" + s.getName() + "&7zaakceptowal twoja prosbe o teleportacje."));
    if (u.isTpaHere()) {
      new TeleportTask((Player)s, u.getLastTpa());
    } else {
      new TeleportTask(u.getLastTpa(), (Player)s);
    }
  }

 

Opublikowano

@up

 

package pl.sxCore.basic;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import pl.sxCore.basic.util.UserUtils;
import pl.sxCore.manager.VanishManager;
import pl.sxCore.obj.Safe;
import pl.sxCore.log.Logger;
import pl.sxCore.reflect.Reflections;

public class User
{
  private String name;
  private boolean changes;
  private HashMap<String, Location> homes = new HashMap();
  private HashMap<Integer, ItemStack> enderchest = new HashMap();
  private HashMap<String, Long> usedKits = new HashMap();
  private boolean god = false;
  private boolean tpEnabled = true;
  private boolean socialSpy = false;
  private boolean vanished = false;
  private boolean tpaHere = false;
  private boolean helpop = true;
  private boolean adminChat = true;
  private String lastMsg;
  private Player lastTpa;
  private Safe safe = new Safe();
  
  private User(Player p)
  {
    this(p.getName(), true);
  }
  
  private User(String n, boolean add)
  {
    this.name = n;
    this.changes = true;
    if (add) {
      UserUtils.addUser(this);
    }
  }
  
  private User(String n)
  {
    this(n, true);
  }
  
  public boolean isOnline()
  {
    if (this.name == null) {
      return false;
    }
    Player player = Bukkit.getPlayer(this.name);
    return (player != null) && (player.isOnline());
  }
  
  public String getName()
  {
    return this.name;
  }
  
  public Player getPlayer()
  {
    return this.name != null ? Bukkit.getPlayer(this.name) : null;
  }
  
  public int getPing()
  {
    int ping = 0;
    Player p = getPlayer();
    if (p == null) {
      return ping;
    }
    try
    {
      Class<?> craftPlayer = Reflections.getBukkitClass("entity.CraftPlayer");
      Object cp = craftPlayer.cast(p);
      Object handle = craftPlayer.getMethod("getHandle", new Class[0]).invoke(cp, new Object[0]);
      ping = ((Integer)handle.getClass().getField("ping").get(handle)).intValue();
    }
    catch (Exception e)
    {
      if (Logger.exception(e.getCause())) {
        e.printStackTrace();
      }
    }
    return ping;
  }
  
  public static User get(Player player)
  {
    return get(player.getName());
  }
  
  public static User get(String name)
  {
    for (User u : ) {
      if (name.equalsIgnoreCase(u.getName())) {
        return u;
      }
    }
    return new User(name);
  }
  
  public static User getSynced(String name)
  {
    for (User u : ) {
      if (name.equalsIgnoreCase(u.getName())) {
        return u;
      }
    }
    return new User(name, false);
  }
  
  public boolean changed()
  {
    boolean c = this.changes;
    this.changes = false;
    return c;
  }
  
  public void changes()
  {
    this.changes = true;
  }
  
  public int hashCode()
  {
    int prime = 31;
    int result = 1;
    result = 31 * result + (this.name == null ? 0 : this.name.hashCode());
    return result;
  }
  
  public boolean equals(Object o)
  {
    if (o == null) {
      return false;
    }
    if (o.getClass() != getClass()) {
      return false;
    }
    User u = (User)o;
    if (u.getName() != this.name) {
      return false;
    }
    return true;
  }
  
  public String toString()
  {
    return this.name;
  }
  
  public boolean isGod()
  {
    return this.god;
  }
  
  public void setGod(boolean god)
  {
    this.god = god;
    changes();
  }
  
  public boolean isTpEnabled()
  {
    return this.tpEnabled;
  }
  
  public void setTpEnabled(boolean tpenabled)
  {
    this.tpEnabled = tpenabled;
    changes();
  }
  
  public String getLastMsg()
  {
    return this.lastMsg;
  }
  
  public void setLastMsg(String lastMsg)
  {
    this.lastMsg = lastMsg;
    changes();
  }
  
  public boolean isSocialSpy()
  {
    return this.socialSpy;
  }
  
  public void setSocialSpy(boolean socialSpy)
  {
    this.socialSpy = socialSpy;
    changes();
  }
  
  public boolean isVanished()
  {
    return this.vanished;
  }
  
  public void setVanished(boolean set)
  {
    this.vanished = set;
    Player p = UserUtils.getPlayer(this.name);
    if (p != null) {
      VanishManager.vanishPlayer(set, p);
    }
    changes();
  }
  
  public Player getLastTpa()
  {
    return this.lastTpa;
  }
  
  public void setLastTpa(Player lastTpa)
  {
    this.lastTpa = lastTpa;
    changes();
  }
  
  public boolean isTpaHere()
  {
    return this.tpaHere;
  }
  
  public void setTpaHere(boolean tpaHere)
  {
    this.tpaHere = tpaHere;
    changes();
  }
  
  public HashMap<String, Location> getHomes()
  {
    return this.homes;
  }
  
  public boolean isHelpop()
  {
    return this.helpop;
  }
  
  public void setHelpop(boolean helpop)
  {
    this.helpop = helpop;
    changes();
  }
  
  public boolean isAdminChat()
  {
    return this.adminChat;
  }
  
  public void setAdminChat(boolean adminChat)
  {
    this.adminChat = adminChat;
    changes();
  }
  
  public HashMap<Integer, ItemStack> getEnderchest()
  {
    return this.enderchest;
  }
  
  public void setHomes(HashMap<String, Location> homes)
  {
    this.homes = homes;
    changes();
  }
  
  public void setEnderchest(HashMap<Integer, ItemStack> enderchest)
  {
    this.enderchest = enderchest;
    changes();
  }
  
  public HashMap<String, Long> getUsedKits()
  {
    return this.usedKits;
  }
  
  public void setUsedKits(HashMap<String, Long> usedKits)
  {
    this.usedKits = usedKits;
    changes();
  }
  
  public Safe getSafe()
  {
    return this.safe;
  }
  
  public void setSafe(Safe safe)
  {
    this.safe = safe;
    changes();
  }

Klasa User

package pl.sxCore.cmd.util;

import java.util.List;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;

public class Performer
  extends Command
{
  private ExecutorCaller caller;
  
  protected Performer(String command)
  {
    super(command);
  }
  
  public void setExecutor(ExecutorCaller caller)
  {
    this.caller = caller;
  }
  
  public boolean execute(CommandSender sender, String commandLabel, String[] args)
  {
    if (this.caller == null) {
      return false;
    }
    return this.caller.onCommand(sender, this, commandLabel, args);
  }
  
  public List<String> tabComplete(CommandSender sender, String alias, String[] args)
  {
    if (this.caller == null) {
      return null;
    }
    return this.caller.onTabComplete(sender, this, alias, args);
  }
}


Klasa Performer

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...