protected override void OnTick() { // Si pas d'IP enregistrée on arrête le timer if (m_Adress == null) { Stop(); return; } // Si on ne trouve pas l'ip, on ne reboot pas et on continue le timer. IPAddress ip = ServerList.FindPublicAddress(); if (ip == null) { Console.WriteLine("Adresse IP introuvable, vérifiez votre connexion à internet."); return; } // Si adresse IP changée et personne en ligne, on reboot if (m_Adress != ip.ToString() && Network.NetState.Instances.Count == 0) { World.Broadcast(0x35, false, "Changement d'adresse IP détecté, redémarrage en cours..."); Logging.RestartLog("Redémarrage du serveur car changement d'adresse IP détecté"); AutoSave.Save(); Core.Kill(true); } }
public IPCheckTimer() : base(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(1)) { IPAddress ip = ServerList.FindPublicAddress(); // On ne lance pas le timer si pas d'adresse IP trouvée sur internet if (ip == null) { Console.WriteLine("Adresse IP introuvable, êtes vous connecté à internet?"); Console.WriteLine("IPRestarter désactivé car pas d'adresse IP."); Stop(); } else { m_Adress = ServerList.FindPublicAddress().ToString(); } }