starten/stoppen eines shedulers funktioniert nicht...

Dieses Thema im Forum "Programmierung" wurde erstellt von xS1L3nTx, 19. September 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. xS1L3nTx
    Offline

    xS1L3nTx

    Registriert seit:
    12. August 2012
    Beiträge:
    31
    Ort:
    Hier und Da und nirgendwo, hauptsache im Universum
    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 (Text):
    1. org.bukkit.command.CommandException: Unhandled exception executing command 'xqui
    2. zmode' in plugin xQuiz v1.0
    3.         at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
    4.         at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
    5. 8)
    6.         at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4
    7. 92)
    8.         at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
    9. java:880)
    10.         at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)
    11.  
    12.         at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
    13.         at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
    14.         at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
    15.         at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
    16.         at net.minecraft.server.ServerConnection.b(SourceFile:35)
    17.         at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    18.         at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
    19.         at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    20.         at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    21.         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    22.         at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    23. Caused by: java.lang.NullPointerException
    24.         at de.xS1L3nTx.xQuiz.xQuizCommands.onCommand(xQuizCommands.java:24)
    25.         at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
    26.         ... 15 more
    27. 14:35:46 [INFORMATION] Player929 issued server command: /xquizmode stop
    28. 14:35:46 [SCHWERWIEGEND] null
    29. org.bukkit.command.CommandException: Unhandled exception executing command 'xqui
    30. zmode' in plugin xQuiz v1.0
    31.         at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
    32.         at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
    33. 8)
    34.         at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4
    35. 92)
    36.         at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
    37. java:880)
    38.         at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)
    39.  
    40.         at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
    41.         at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
    42.         at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
    43.         at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
    44.         at net.minecraft.server.ServerConnection.b(SourceFile:35)
    45.         at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    46.         at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
    47.         at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    48.         at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    49.         at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    50.         at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    51. Caused by: java.lang.NullPointerException
    52.         at de.xS1L3nTx.xQuiz.xQuizCommands.onCommand(xQuizCommands.java:30)
    53.         at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
    54.         ... 15 more

    Ich habe 3 Klassen:
    Code (Text):
    1. package de.xS1L3nTx.xQuiz;
    2.  
    3. import org.bukkit.plugin.java.JavaPlugin;
    4.  
    5. public class xQuiz extends JavaPlugin {
    6.    
    7.     public xQuizCommands xquizCommands;
    8.    
    9.     public void onEnable() {
    10.         manageStuff();
    11.         System.out.println("[xQuiz] Das Plugin wurde gestartet");
    12.     }
    13.  
    14.     public void onDisable() {
    15.        
    16.         System.out.println("[xQuiz] Das Plugin wurde deaktiviert");
    17.     }
    18.    
    19.     public void manageStuff(){
    20.         xquizCommands = new xQuizCommands();
    21.         getCommand("xQuizmode").setExecutor(xquizCommands);
    22.     }
    23. }

    Code (Text):
    1. package de.xS1L3nTx.xQuiz;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.command.Command;
    5. import org.bukkit.command.CommandExecutor;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8.  
    9.  
    10. public class xQuizCommands implements CommandExecutor{
    11.    
    12.     xQuiz plugin = new xQuiz();
    13.     xQuizRunnable rm = new xQuizRunnable(plugin);
    14.    
    15.     public boolean onCommand(CommandSender sender,Command cmd, String CommandLabel, String args[]){ //reagiert bei commands
    16.        
    17.         if (sender instanceof Player){
    18.             Player Spieler = (Player)sender;
    19.             if (cmd.getName().equalsIgnoreCase("xQuizmode")){
    20.                 if (args.length == 1){
    21.                     if(args[0].equalsIgnoreCase("start")){
    22.                         Spieler.sendMessage(ChatColor.GREEN + "xQuiz wurde gestartet!");
    23.  
    24.                         plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, rm, 1*20, 5*20);                      
    25.                        
    26.                         return true;
    27.                     }
    28.                     if(args[0].equalsIgnoreCase("stop")){
    29.                         Spieler.sendMessage(ChatColor.RED + "xQuiz wurde angehalten!");
    30.                         plugin.getServer().getScheduler().cancelAllTasks();                    
    31.                         return true;
    32.                     }
    33.                 }
    34.             }
    35.         }
    36.         return false;
    37.     }
    38. }

    Code (Text):
    1. package de.xS1L3nTx.xQuiz;
    2.  
    3. public class xQuizRunnable implements Runnable {
    4.     public xQuiz plugin;
    5.     public xQuizRunnable(xQuiz instance) {
    6.     plugin = instance;
    7.     }
    8.     @Override
    9.     public void run() {
    10.         plugin.getServer().broadcastMessage("Works!");
    11.     }
    12. }

    Ich habe schon so einiges rumprobiert, aber irgendwie will es einfach nicht gehen :/
     
    #1
  2. Let's Mine
    Offline

    Let's Mine Ehem. Teammitglied

    Registriert seit:
    1. Dezember 2011
    Beiträge:
    421
    Ort:
    Let's Mine
    Minecraft:
    LetsMine
    Warum erzeugst du eine neue Instanz der Main Klasse? Übergib die im Constructor. Außerdem würde ich einfach:
    Code (Text):
    1.  
    2.                         plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new xQuizRunnable, 1*20, 5*20);                       
    3.  
     
    #2
  3. xS1L3nTx
    Offline

    xS1L3nTx

    Registriert seit:
    12. August 2012
    Beiträge:
    31
    Ort:
    Hier und Da und nirgendwo, hauptsache im Universum
    Minecraft:
    xS1L3nTx
    Ich habs hinbekommen! Danke für den Tipp!
     
    #3
Status des Themas:
Es sind keine weiteren Antworten möglich.