Heyho,
ich habe da mal eine Frage und zwar Warum bekomme ich immer einen Internal Error (NullPointerException) wenn ich einen Befehl habe und einen OfflinePlayer angebe. Sprich meine Befehl ist jetzt /tpa <Spieler>. Wenn ich jetzt /tpa Derakar eingebe (Ich selbst) funktioniert es und wenn ich dann /tpa ABCD eingebe bekomme ich einen Error und nicht die Message das der Spieler nicht Online ist.
EDIT: Und dann möchte ich noch, dass man /tpa annehmen und /tpa ablehnen machen kann und das Funktioniert ebenfals nicht (Test unten im Code)
Hier mein Code:
ich habe da mal eine Frage und zwar Warum bekomme ich immer einen Internal Error (NullPointerException) wenn ich einen Befehl habe und einen OfflinePlayer angebe. Sprich meine Befehl ist jetzt /tpa <Spieler>. Wenn ich jetzt /tpa Derakar eingebe (Ich selbst) funktioniert es und wenn ich dann /tpa ABCD eingebe bekomme ich einen Error und nicht die Message das der Spieler nicht Online ist.
EDIT: Und dann möchte ich noch, dass man /tpa annehmen und /tpa ablehnen machen kann und das Funktioniert ebenfals nicht (Test unten im Code)
Hier mein Code:
Code:
public class COMMAND_TPA implements CommandExecutor{
private Plugin plugin;
public COMMAND_TPA(Plugin plugin) {
this.plugin = plugin;
}
HashMap<Player, Player> teleport = new HashMap<Player, Player>();
@Override
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
Player p = (Player)s;
if(cmd.getName().equalsIgnoreCase("tpa")){
if(p instanceof Player){
if(args.length == 0){
p.sendMessage("§cDu musst einen Spieler eingeben. §6/tpa <Spieler>");
return true;
} else if(args.length == 1){
Player op = Bukkit.getPlayer(args[0]);
if(op.isOnline()){
if(!teleport.containsValue(p)){
teleport.put(op, p);
p.sendMessage("§7Die Anfrage wurde versendet.");
op.sendMessage("§6" + p.getName() + "§7 hat dir eine Teleport Anfrage gesendet.");
op.sendMessage("§7Annehmen: §6/tpa annehmen §7| Ablehnen: §6/tpa ablehnen");
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
if(teleport.containsValue(p)){
teleport.remove(op);
p.sendMessage("§6" + op.getName() + "§7 hat deine Anfrage ignoriert.");
op.sendMessage("§7Die Anfrage von §6" + p.getName() + "§7 ist abgelaufen.");
}
}
}, 20*30);
} else {
p.sendMessage("§cDu hast bereits eine offene Anfrage.");
}
} else {
p.sendMessage("§cDer Spieler ist nicht Online.");
}
if(args[0].equalsIgnoreCase("annehmen")){
p.sendMessage("Test");
}
}
} else {
ConsoleCommandSender cs = (ConsoleCommandSender)s;
cs.sendMessage("§cDieser Befehl kann nur von Spielern ausgeführt werden.");
}
return true;
}
return false;
}
}