private static void KickPlayerPlayWithoutLauncherClientWorker()
        {
            using (LauncherServerSendRequestToTShock aTunnelToTShock = new LauncherServerSendRequestToTShock())
            {
                bool IsLauncherClientOn;
                while (true)
                {
                    try
                    {
                        foreach (KeyValuePair<string, TShockPlayerInformations> aPlayer in OverallInformations.TShockPlayers)
                        {
                            if (aPlayer.Value.IsLoggedIn)
                            {
                                IsLauncherClientOn = false;
                                foreach (KeyValuePair<string, LauncherClientInformations> aClient in OverallInformations.Clients)
                                {
                                    if (aClient.Value.UserName == aPlayer.Value.UserName)
                                    {
                                        IsLauncherClientOn = true;
                                        break;
                                    }
                                }

                                if (!IsLauncherClientOn)
                                {
                                    string Response;
                                    if (aTunnelToTShock.SendRequest(new Request02() { RequestType = "Kick", AuthCode = OverallInformations.AuthCode, Parameters = new List<string>() { aPlayer.Value.PlayerName, "Please run Launcher..." } }, out Response))
                                    {
                                        ResponseStruct ResponseContent = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponseStruct>(Response);
                                        if (ResponseContent.Status == ResponseStatusType.Done)
                                        {
                                            OutputMessage(String.Format("[Server]: {0}", JoinListOfStrings(ResponseContent.Broadcast)), MessageType.Info);
                                        }
                                        else if (ResponseContent.Status == ResponseStatusType.Fail)
                                        {
                                            OutputMessage(String.Format("[Server]: {0}", JoinListOfStrings(ResponseContent.Error)), MessageType.Error);
                                        }
                                        else
                                        {
                                            OutputMessage("[Server]: KickPlayerPlayWithoutLauncherClientWorker() | Error: Unknown returned data from TShock Server.", MessageType.Error);
                                        }
                                    }
                                    else
                                    {
                                        OutputMessage("[Server]: KickPlayerPlayWithoutLauncherClientWorker() | Error: TShock Server does not response.", MessageType.Error);
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        OutputMessage(String.Format("[Launcher]: KickPlayerPlayWithoutLauncherClientWorker() | Error: {0}", ex.Message), MessageType.Error);
                    }
                    Thread.Sleep(new TimeSpan(0, 0, 1));
                }
            }
        }
 public ShopService()
 {
     LauncherServerSendRequestToTShockInstance = new LauncherServerSendRequestToTShock();
 }
 // Để cập nhật lại danh sách Player cho hệ thống quản lí dễ dàng, khi khởi động, Server sẽ tiến hành kick hết
 // tất cả Player hiện tại đang có mặt trên TShock Server (Cả login lẫn chưa login).
 private static void KickAllWhenStartServer()
 {
     OutputMessage("[Server]: Kick all Players on TShock Server...", ConsoleColor.Green);
     LauncherServerSendRequestToTShockInstance = new LauncherServerSendRequestToTShock();
     string aResponse;
     if (LauncherServerSendRequestToTShockInstance.SendRequest(new Request02() { RequestType = "KickAll", AuthCode = OverallInformations.AuthCode, Parameters = new List<string>() { "Please run Launcher..." } }, out aResponse))
     {
         OutputMessage("[Server]: All Players have been kicked.", MessageType.Success);
     }
     else
     {
         OutputMessage("[Server]: KickAllWhenStartServer() | Error: TShock Server does not response.", MessageType.Error);
     }
 }