public static int Timer; // Temps pour sleep le Thread static void Main(string[] args) { /* Récupération des valeurs de configurations dans le config.txt */ string[] configs = System.IO.File.ReadAllLines("config.txt"); ServerAdress = configs[0]; Timer = int.Parse(configs[1]); StatusFilePath = configs[2]; FTPAdress = configs[3]; /* Messages de bienvenus avec la console */ Console.Title = "PingerProject - by Coruscant11 - [OSBLC]"; Console.WriteLine("Bienvenue dans le PingerProject de l'OSBLC.\n"); Console.WriteLine("Lancement du programme avec pour serveur \"" + ServerAdress + "\"\nEt pour timer " + Timer + " secondes...\n"); /* Initialisation du writers des données dans le fichiers status.txt */ StatusWriter sw = new StatusWriter(StatusFilePath); /* Boucle infini */ while (true) { /* Récupération des différentes valeurs booléennes des pings */ bool vanilla = ProcessMinecraftVanilla(); bool ftb = ProcessMinecraftFTB(); bool ts = ProcessTeamspeak(); bool ftp = ProcessFtp(); CSStatus csgo = ProcessCounterStrike(); sw.WriteStatus(vanilla, ftb, ts, ftp, csgo.Status, csgo.Map); // Ecriture des valeurs dans le fichier System.Threading.Thread.Sleep(Timer * 1000); // On sleep le thread avec le temps donné } }
/// <summary> /// Ping le serveur /// </summary> /// <returns>Retourne l'état et la map du serveur</returns> public CSStatus PingWithMap() { Console.WriteLine("Connexion au serveur " + this.ServerType + "..."); CSStatus status = new CSStatus(); try { status.Status = this.CounterStrikeServer.Ping(); // Ping le serveur if (status.Status) { status.Map = this.GetMap(); } else { status.Map = "none"; } return(status); } catch { /* Si le serveur ne fonctionne pas, crée un CSStatus avec les valeurs concordantes */ CSStatus wrong = new CSStatus(); wrong.Status = false; wrong.Map = "none"; return(wrong); } }
/// <summary> /// Ping le serveur Counter-Strike Global-Offensive /// </summary> /// /// <returns>Retourne un objet contenant une valeure booléenne si le serveur est en ligne ou non et la map actuellement en ligne.</returns> static CSStatus ProcessCounterStrike() { Console.WriteLine("------------------------------"); CounterStrikePinger csgo = new CounterStrikePinger(ServerAdress, 27015, "Counter-Strike Global Offensive"); // Création de l'objet pinguant la classe CSStatus status = csgo.PingWithMap(); // Ping le serveur et récupère le CSStatus if (status.Status) { Console.WriteLine("Le serveur Counter-Strike Global Offensive est disponible."); Console.WriteLine("------------------------------\n"); return(status); } else { Console.WriteLine("Le serveur Counter-Strike Global Offensive est indisponible."); Console.WriteLine("------------------------------\n"); return(status); } }