コード例 #1
0
        public IDictionary <string, object> Get(IServerModel serverModel)
        {
            var result = new Dictionary <string, object> {
                { "success", true }
            };
            var serverAdminNetworkCredential = _serverAdminNetworkCredentialBuilder.Build();
            var webClient = new ServerQueryWebClient {
                Credentials = serverAdminNetworkCredential
            };

            try
            {
                var serverStatusResponse = webClient.DownloadString(serverModel.WebAdminBaseUrl);
                var serverStatus         = JsonConvert.DeserializeObject <Dictionary <string, object> >(serverStatusResponse);
                foreach (var key in serverStatus.Keys)
                {
                    result.Add(key, serverStatus[key]);
                }
            }
            catch (Exception e)
            {
                result["success"] = false;
            }
            return(result);
        }
コード例 #2
0
        public bool Send(string serverAdminUrl, string userName, long playerId, string command, bool commandShouldBeAnnouncedOnGameServer)
        {
            var result            = true;
            var networkCredential = _serverAdminCredentialBuilder.Build();
            var webClient         = new ServerQueryWebClient {
                Credentials = networkCredential
            };

            try
            {
                if (commandShouldBeAnnouncedOnGameServer)
                {
                    webClient.DownloadString(string.Format("{0}?command=Send&rcon={1}", serverAdminUrl, HttpUtility.UrlEncode(string.Format("sv_say {0} ({1}) performing '{2}' from TGNS Portal...", userName, playerId, command))));
                    Thread.Sleep(3000);
                }
                webClient.DownloadString(string.Format("{0}?command=Send&rcon={1}", serverAdminUrl, HttpUtility.UrlEncode(command)));
            }
            catch (Exception e)
            {
                result = false;
            }
            return(result);
        }