• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

starten/stoppen eines shedulers funktioniert nicht...

Status
Für weitere Antworten geschlossen.

xS1L3nTx

Redstoneengineer
Registriert
12 August 2012
Beiträge
31
Diamanten
0
Minecraft
xS1L3nTx
Hallo Community,
Ich schreibe ein kleines Quizplugin in dem man mittels einem befehl einen sheduler starten und stoppen können soll, aber jedesmal wenn ich den befehl eingebe bekomme ich nur ein "An internal error Occured...":
Code:
org.bukkit.command.CommandException: Unhandled exception executing command 'xqui
zmode' in plugin xQuiz v1.0
    	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
    	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
8)
    	at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4
92)
    	at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
java:880)
    	at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)

    	at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
    	at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
    	at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
    	at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
    	at net.minecraft.server.ServerConnection.b(SourceFile:35)
    	at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    	at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
    	at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    	at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Caused by: java.lang.NullPointerException
    	at de.xS1L3nTx.xQuiz.xQuizCommands.onCommand(xQuizCommands.java:24)
    	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
    	... 15 more
14:35:46 [INFORMATION] Player929 issued server command: /xquizmode stop
14:35:46 [SCHWERWIEGEND] null
org.bukkit.command.CommandException: Unhandled exception executing command 'xqui
zmode' in plugin xQuiz v1.0
    	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
    	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
8)
    	at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4
92)
    	at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
java:880)
    	at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)

    	at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
    	at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
    	at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
    	at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
    	at net.minecraft.server.ServerConnection.b(SourceFile:35)
    	at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    	at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
    	at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    	at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Caused by: java.lang.NullPointerException
    	at de.xS1L3nTx.xQuiz.xQuizCommands.onCommand(xQuizCommands.java:30)
    	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
    	... 15 more

Ich habe 3 Klassen:
Code:
package de.xS1L3nTx.xQuiz;

import org.bukkit.plugin.java.JavaPlugin;

public class xQuiz extends JavaPlugin {
	
	public xQuizCommands xquizCommands;
	
	public void onEnable() {
		manageStuff();
		System.out.println("[xQuiz] Das Plugin wurde gestartet");
	}

	public void onDisable() {
		
		System.out.println("[xQuiz] Das Plugin wurde deaktiviert");
	}
	
	public void manageStuff(){
		xquizCommands = new xQuizCommands();
		getCommand("xQuizmode").setExecutor(xquizCommands);
	}
}

Code:
package de.xS1L3nTx.xQuiz;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;


public class xQuizCommands implements CommandExecutor{
	
	xQuiz plugin = new xQuiz();
	xQuizRunnable rm = new xQuizRunnable(plugin);
	
	public boolean onCommand(CommandSender sender,Command cmd, String CommandLabel, String args[]){ //reagiert bei commands
		
		if (sender instanceof Player){
			Player Spieler = (Player)sender;
			if (cmd.getName().equalsIgnoreCase("xQuizmode")){
				if (args.length == 1){
					if(args[0].equalsIgnoreCase("start")){
						Spieler.sendMessage(ChatColor.GREEN + "xQuiz wurde gestartet!");

						plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, rm, 1*20, 5*20);						
						
						return true;
					}
					if(args[0].equalsIgnoreCase("stop")){
						Spieler.sendMessage(ChatColor.RED + "xQuiz wurde angehalten!");
						plugin.getServer().getScheduler().cancelAllTasks();						
						return true;
					}
				}
			}
		} 
		return false;
	}
}

Code:
package de.xS1L3nTx.xQuiz;

public class xQuizRunnable implements Runnable {
	public xQuiz plugin;
	public xQuizRunnable(xQuiz instance) {
	plugin = instance;
	}
	@Override
	public void run() {
		plugin.getServer().broadcastMessage("Works!");
	}
}

Ich habe schon so einiges rumprobiert, aber irgendwie will es einfach nicht gehen :/
 

Let's Mine

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
1 Dezember 2011
Beiträge
421
Alter
14
Diamanten
300
Minecraft
LetsMine
Warum erzeugst du eine neue Instanz der Main Klasse? Übergib die im Constructor. Außerdem würde ich einfach:
Code:
						plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new xQuizRunnable, 1*20, 5*20);
 
Status
Für weitere Antworten geschlossen.
Oben