SchnellfeuerXD
Kuhfänger
Hallo ich habe einen komischen Fehler bei einem Startkick Plugin. Ich glaube es liegt irgendwie am runnable.
Der Fehler:
package de.grafplaiz.startkick.commands;
import de.grafplaiz.startkick.Startkick;
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 org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
public class startkick implements CommandExecutor {
public static boolean aktiv = false;
public static int ja = 0;
public static int nein = 0;
public static int COUNTDOWN_TIME = 30;
public static ArrayList<Player> alreadyvoted = new ArrayList<>();
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = (Player) sender;
if(sender instanceof Player) {
if(command.getName().equalsIgnoreCase("startkick")) {
if(player.hasPermission("grafplaiz.startkick")) {
if(args.length == 0) {
player.sendMessage("Bitte Verwende /startkick [Spieler] [Grund]");
}else if(args.length == 1) {
Player target = Bukkit.getPlayerExact(args[0]);
if(target == null) {
player.sendMessage("Der Spieler "+args[0]+" ist nicht online.");
} else {
player.sendMessage("Bitte Verwende /startkick [Spieler] [Grund]");
}
}else if (args.length == 2) {
Player target = Bukkit.getPlayerExact(args[0]);
String grund = args[1];
if(target == null) {
player.sendMessage("Der Spieler "+args[0]+" ist nicht online.");
} else if (grund == null) {
player.sendMessage("Du musst einen Grund angeben.");
} else {
Bukkit.broadcastMessage("Soll der Spieler "+target.getName()+" für den Grund "+grund+" vom " +
"Server gekickt werden? Du hast 30 Sekunden zeit um abzustimmen!");
aktiv = true;
new BukkitRunnable() {
@Override
public void run() {
if(ja > nein) {
target.kickPlayer("§c§lDu wurdest gekickt!");
Bukkit.broadcastMessage("Der Spieler wurde erfolgreich gekick!");
Bukkit.broadcastMessage("Es haben "+ja+" Spieler für Ja und "+nein+" Spieler für nein gestimmt.");
} else if (ja < nein) {
Bukkit.broadcastMessage("Der Spieler wurde NICHT gekick!");
Bukkit.broadcastMessage("Es haben "+ja+" Spieler für Ja und "+nein+" Spieler für nein gestimmt.");
} else {
Bukkit.broadcastMessage("Der Spieler wurde NICHT gekick!");
Bukkit.broadcastMessage("Es haben "+ja+" Spieler für Ja und "+nein+" Spieler für nein gestimmt.");
}
aktiv = false;
ja = 0;
nein = 0;
alreadyvoted.clear();
}
}.runTaskLater(Startkick.getInstance(), 20*COUNTDOWN_TIME);
}
}
} else {
player.sendMessage("Dazu hast du keine Rechte!");
}
} else if (command.getName().equalsIgnoreCase("ja")) {
if(aktiv) {
if(!alreadyvoted.contains(player)) {
ja++;
player.sendMessage("Du hast für ja gevotet.");
alreadyvoted.add(player);
} else {
player.sendMessage("§cDu hast bereits gevotet.");
}
} else {
player.sendMessage("§cDerzeit findet kein StartKick statt.");
}
} else if (command.getName().equalsIgnoreCase("nein")) {
if(aktiv) {
if(!alreadyvoted.contains(player)) {
nein++;
player.sendMessage("Du hast für nein gevotet.");
alreadyvoted.add(player);
} else {
player.sendMessage("§cDu hast bereits gevotet.");
}
} else {
player.sendMessage("§cDerzeit findet kein StartKick statt.");
}
}
}
return false;
}
}
package de.grafplaiz.startkick;
import de.grafplaiz.startkick.commands.startkick;
import org.bukkit.plugin.java.JavaPlugin;
public final class Startkick extends JavaPlugin {
public static Startkick Instance;
public static Startkick getInstance() {
return Instance;
}
@Override
public void onEnable() {
getCommand("startkick").setExecutor(new startkick());
getCommand("ja").setExecutor(new startkick());
getCommand("nein").setExecutor(new startkick());
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
}
Der Fehler:
org.bukkit.command.CommandException: Unhandled exception executing command 'startkick' in plugin Startkick v1.0-SNAPSHOT
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.craftbukkit.v1_15_R1.CraftServer.dispatchCommand(CraftServer.java:711) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.PlayerConnection.handleCommand(PlayerConnection.java:1657) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1497) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:918) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:911) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:895) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:828) [spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftScheduler.validate(CraftScheduler.java:443) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:176) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:167) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftScheduler.runTaskLater(CraftScheduler.java:131) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at org.bukkit.scheduler.BukkitRunnable.runTaskLater(BukkitRunnable.java:79) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
at de.grafplaiz.startkick.commands.startkick.onCommand(startkick.java:74) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[spigot-1.15.2.jar:git-Spigot-800b93f-8160e29]
... 17 more