示例#1
0
        private static async Task LoopGetServerStatus()
        {
            long i = 0;

            WriteLog("Mise en route boucle...");

            while (true)
            {
                WriteLoopLog("Boucle n " + (++i));

                WriteLoopLog("Récupération de l'état du serveur...");
                ServerStatus status = await GetServerStatus();

                WriteLoopLog("Etat serveur :");
                WriteLoopLog($"{status.status} : {status.nbPlayer} joueurs");
                if (status.status == ServerStatus.Status.Error)
                {
                    loopErrorOccured = true;
                    WriteLoopLog("Erreur !");
                    WriteError(status.error, "Loop_0x1");
                    await updateChannel.SendMessageAsync("J'ai rencontré une erreur lors de mon travail... Merci de contacter l'administrateur !");

                    WriteLoopLog("Appuyer sur une touche pour réessayer...");
                    PConsole.ReadChar();
                }
                else
                {
                    loopErrorOccured = false;
                }

                //status changed
                if (!status.Equals(last_servst))
                {
                    //status online
                    if (status.status == ServerStatus.Status.Online)
                    {
                        await updateChannel.SendMessageAsync($"Le serveur est désormais ouvert avec {status.nbPlayer} joueurs !");
                    }


                    //status offline
                    else if (status.status == ServerStatus.Status.Offline)
                    {
                        await updateChannel.SendMessageAsync("Le serveur est malheureusement fermé...");
                    }


                    //error
                    else
                    {
                        WriteLoopLog("etat serveur : ERREUR");

                        WriteError(status.error, "GetServerStatus_0x1");
                        WriteLoopLog("Appuyer sur une touche pour réessayer...");
                        PConsole.ReadChar();
                    }
                    last_servst = status;
                }
                WriteLoopLog("Sommeil...(" + UPDATE_TIME + " ms)");
                await Task.Delay(UPDATE_TIME);
            }
        }