K
Kleeraphie
Guest
Hi,
ich versuche grade ein Plugin zu programmieren, bei dem der Chat in mehrere "Channels" aufgeteilt wird. Immer wenn ich in ein Channel joinen möchte, tritt folgender Fehler auf:
Meine Klasse für den Command:
ich versuche grade ein Plugin zu programmieren, bei dem der Chat in mehrere "Channels" aufgeteilt wird. Immer wenn ich in ein Channel joinen möchte, tritt folgender Fehler auf:
Code:
[Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'cc' in plugin ChannelChat v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_25]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
Caused by: java.lang.NullPointerException
at de.kleeraphie.channelchat.Commands.CMD_CC.onCommand(CMD_CC.java:38) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
... 15 more
Meine Klasse für den Command:
Code:
package de.kleeraphie.channelchat.Commands;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import de.kleeraphie.channelchat.Main.Main;
public class CMD_CC implements CommandExecutor {
public static HashMap<Player, String> Channels = new HashMap<>();
String Channelnummer = null;
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player) sender;
if(args.length==1 | args.length==2){
if(args[0].equalsIgnoreCase("help")){
p.sendMessage("§e=====================§6ChannelChat§e====================");
p.sendMessage("§eGeschrieben von: §6 " + Bukkit.getPluginManager().getPlugin("ChannelChat").getDescription().getAuthors());
p.sendMessage("§eVersion: §6 " + Bukkit.getPluginManager().getPlugin("ChannelChat").getDescription().getVersion());
p.sendMessage("§e-----------------§6ChannelChat-Befehle§e----------------");
p.sendMessage("§6/cc join [Channelname] §e: Um in einen Channel zu joinen");
p.sendMessage("§6/cc leave §e: Um einen Channel zu verlassen");
p.sendMessage("§e===================================================");
return true;
} else if(args[0].equalsIgnoreCase("join")){
if(p.hasPermission("cc.join")){
if(args.length==2){
if(Channels.get(p).equalsIgnoreCase(Main.cfg.getString("Channelname"))) {
Channels.replace(p, Channels.get(p), args[1]);
Channelnummer = Channels.get(p);
Main.setPermission("cc." + args[1], true, p);
p.sendMessage(Main.prefix + "§eDu wurdest in §6Channel " + args[1] + " §2verschoben.");
for(Player Channelplayer : Bukkit.getOnlinePlayers()) {
if(Channelplayer.hasPermission("cc." + CMD_CC.Channels.get(p))){
Channelplayer.sendMessage("§a[§e" + Channelnummer + "§a] " + "§6 " + p.getName() + "§ehat den Channel §2betreten.");
}
}
Channelnummer = null;
return true;
} else{
p.sendMessage(Main.prefix + "§cDu musst §4Channel " + Channels.get(p) + "§c erst verlassen, bevor du in §4Channel " + args[1] + "kannst.");
}
} else if(args.length>=3){
p.sendMessage(Main.prefix + "§cBenutze §4/cc join [Channel-Nummer]."); // noch ändern, dass er das auch ausgibt wenn ich z.B. /cc join 6 5 eingebe
return true;
}
} else{
p.sendMessage(Main.noperm);
return true;
}
} else if(args[0].equalsIgnoreCase("leave")){
if(args.length==1){
if(Channels.get(p).equalsIgnoreCase(Main.cfg.getString("Channelname"))) {
Main.setPermission(Channels.get(p), false, p);
Channelnummer = Channels.get(p);
Channels.replace(p, Channels.get(p), Main.cfg.getString("Channelname"));
p.sendMessage(Main.prefix + "§eDu hast den Channel §6" + args[1] + " §cverlassen.");
for(Player Channelplayer : Bukkit.getOnlinePlayers()) {
if(Channelplayer.hasPermission("cc." + CMD_CC.Channels.get(p))){
Channelplayer.sendMessage("§a[§e" + Channelnummer + "§a] " + p.getName() + "§6 " + p.getName() + "§ehat den Channel §cverlassen.");
}
}
p.sendMessage(Main.prefix + "§eDu bist nun im §6Standard-Channel.");
Channelnummer = null;
return true;
} else{
p.sendMessage(Main.prefix + "§cDu kannst den §4Standardchannel §cnicht verlassen.");
}
} else {
p.sendMessage(Main.prefix + "§cBenutze §4/cc leave.");
return true;
}
}
return true;
} else {
p.sendMessage(Main.prefix + "§eFür Hilfe benutze §6/cc help§e.");
return true;
}
}
}