示例#1
0
        /// <summary>
        /// Initalizes the RCON server
        /// </summary>
        public void Initalize()
        {
            if (!config.Enabled || listener != null || server != null)
            {
                return;
            }

            if (string.IsNullOrEmpty(config.Password))
            {
                Interface.Oxide.LogWarning("[Rcon] Remote console password is not set, disabling");
                return;
            }

            try
            {
                server              = new WebSocketServer(config.Port);
                server.WaitTime     = TimeSpan.FromSeconds(5.0);
                server.ReuseAddress = true;
                server.AddWebSocketService($"/{config.Password}", () => listener = new RconListener(this));
                server.Start();

                Interface.Oxide.LogInfo($"[Rcon] Server started successfully on port {server.Port}");
            }
            catch (Exception ex)
            {
                Interface.Oxide.LogException($"[Rcon] Failed to start server on port {server.Port}", ex);
                RemoteLogger.Exception($"Failed to start RCON server on port {server.Port}", ex);
            }
        }
示例#2
0
 /// <summary>
 /// Shuts down the RCON server
 /// </summary>
 public void Shutdown(string reason = "Server shutting down", CloseStatusCode code = CloseStatusCode.Normal)
 {
     if (server != null)
     {
         server.Stop(code, reason);
         server   = null;
         listener = null;
         Interface.Oxide.LogInfo($"[Rcon] Service has stopped: {reason} ({code})");
     }
 }