示例#1
0
        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);
            }
        }
示例#3
0
        /// <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);
            }
        }