[Bukkit Programming] Scheduler hört einfach auf zu arbeiten

07/07/2014 18:28 Dealyise#1
Mein Problem: Mein Scheduler, der etwas prüfen soll, hört nach einer Zeit einfach auf zu arbeiten.
Hier mal der Snippet zum Scheduler:
Code:
package me.Temphis.sys;





import java.util.Date;

import org.bukkit.entity.Player;


public class -zensiert-Func {
	public static System plugin;
	public static boolean taskRunning = false;
	public static int taskId;
	  @SuppressWarnings("deprecation")
	public static void startTask() {
	        if (taskRunning) return;
	        taskRunning = true;
	        long interval = Math.round(1 * 20.0);
	        taskId = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin,
	                new -zensiert-Task(), interval, interval);
	}
	public static void endTask() {
	        if (!taskRunning) return;
	        taskRunning = false;
	        plugin.getServer().getScheduler().cancelTask(taskId);
	}

	public static class -zensiert-Task implements Runnable {
			public void run() {
				try{
	        	for(Player p : plugin.getServer().getOnlinePlayers()){
	        		
	        		if(!(PlayerJoin.login.contains(p))){
	        		long currentUnix = new Date().getTime()/1000;
	        		long -zensiert-Unix = (long)Integer.parseInt(DataModifier.playerData("last-zensiert-", p));
	        		long newTime = (int) (currentUnix + 10);//(int) (currentUnix + (60*60*1));
	        		if(currentUnix >= -zensiert-Unix){
	        			..... Rechnungen folgten hier, hab sie entfernt.
	        			sysFunc.msg(p, "Glückwunsch!!");
	        			sysFunc.msg(p, ":D!" );
	        			System.log.info("Spieler " + p.getName() + " hat ein Glückwunsch erhalten!");
	        		
	        		}else{
	        			System.log.info("Spieler " + p.getName() + " hat folgenden UNIX: " + currentUnix);
	        			System.log.info("Und braucht folgenden Unix oder groesser: " + -zensiert-Unix);
	        		}
	        		
	        		}else{
	        			System.log.info("Spieler " + p.getName() + " ist noch in der Loginschleife:");
	        			System.log.info("Alle Spieler in der Login Liste: " + PlayerJoin.login);
	        		}
	        	}
				}catch(Exception ex){
					System.log.info("-zensiert- Timer ist gecrasht -> " + ex.getMessage());
					ex.printStackTrace();
				}
	    }
	}
}
Mal arbeitet der Scheduler und gibt eine Nachricht jede Sekunde aus, und manchmal hört er einfach auf zu arbeiten und will erst wieder nach einem Reload/Restart arbeiten. startTask() und endTask() werden nur im onEnable() / onDisable() - Teil verwendet.

Irgendeine Idee warum er aufhört?

Server Log:
Code:
[14:53:38] [Server thread/INFO]: Dennis[/****] logged in with entity id 1632 at ([world] 142.79395944593665, 72.0, -11.570763322196525)
[14:53:39] [Server thread/INFO]: Spieler Dennis hat folgenden UNIX: 1404737619
[14:53:39] [Server thread/INFO]: Und braucht folgenden Unix oder groesser: 1404737628
[14:53:40] [Server thread/INFO]: Spieler Dennis hat folgenden UNIX: 1404737620
[14:53:40] [Server thread/INFO]: Und braucht folgenden Unix oder groesser: 1404737628
[14:53:41] [Server thread/INFO]: Spieler Dennis hat folgenden UNIX: 1404737621
[14:53:41] [Server thread/INFO]: Und braucht folgenden Unix oder groesser: 1404737628
[14:53:42] [Server thread/INFO]: Spieler Dennis hat folgenden UNIX: 1404737622
[14:53:42] [Server thread/INFO]: Und braucht folgenden Unix oder groesser: 1404737628
[14:53:43] [Server thread/INFO]: Spieler Dennis hat folgenden UNIX: 1404737623
[14:53:43] [Server thread/INFO]: Und braucht folgenden Unix oder groesser: 1404737628
[14:53:43] [Server thread/INFO]: Dennis lost connection: Disconnected
[14:53:43] [Server thread/INFO]: Dennis hat den Server verlassen!
[14:55:32] [Server thread/INFO]: Dennis[/****] logged in with entity id 1695 at ([world] 144.44375484938453, 73.0, -7.4441238542588595)
[14:55:32] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:32] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:33] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:33] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:34] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:34] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:35] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:35] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:36] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:36] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:37] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:37] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:38] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:38] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:39] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:39] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:40] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:40] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:41] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:41] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:42] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:42] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:43] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:43] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:44] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:44] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:45] [Server thread/INFO]: Spieler Dennis ist noch in der Loginschleife:
[14:55:45] [Server thread/INFO]: Alle Spieler in der Login Liste: [CraftPlayer{name=Dennis}]
[14:55:45] [Server thread/INFO]: Dennis issued server command: /login ***
[14:55:46] [Server thread/INFO]: Spieler Dennis hat ein Glückwunsch erhalten!
**Hier sollte er weiter machen, tut er aber nicht!**
[16:48:08] [Server thread/INFO]: Dennis issued server command: /tps
[16:48:12] [Server thread/INFO]: Dennis issued server command: /tps
07/07/2014 21:56 ComputerBaer#2
Der Spieler ist nach dem Einloggen nicht mehr in der Loginliste, oder?
Also macht er doch alles richtig, der Sheduler läuft, gibt aber nichts aus.


Naja, fast ... irgendwie komisch, weitere Teile und vorallem der vollständige Code wären hilfreich und bei Zugriffen auf andere Klassen zumindest eine Erklärung dazu.
07/08/2014 09:03 Dealyise#3
Quote:
Originally Posted by ComputerBaer View Post
Der Spieler ist nach dem Einloggen nicht mehr in der Loginliste, oder?
Also macht er doch alles richtig, der Sheduler läuft, gibt aber nichts aus.


Naja, fast ... irgendwie komisch, weitere Teile und vorallem der vollständige Code wären hilfreich und bei Zugriffen auf andere Klassen zumindest eine Erklärung dazu.
Ich hab dich mal in Skype hinzugefügt.
07/19/2014 00:12 Howaner#4
Das Problem ist schon seit über einer Woche behoben.
Er hatte in einer Klasse "Bukkit.getScheduler().cancelTasks(this.plugin );" stehen.