public void Initalize() { int?nullable; int?nullable1; int?nullable2; if (!this.config.Enabled || this.listener != null || this.server != null) { return; } if (string.IsNullOrEmpty(this.config.Password)) { Interface.Oxide.LogWarning("[Rcon] Remote console password is not set, disabling", Array.Empty <object>()); return; } try { this.server = new WebSocketServer(this.config.Port) { WaitTime = TimeSpan.FromSeconds(5), ReuseAddress = true }; this.server.AddWebSocketService <Oxide.Core.RemoteConsole.RemoteConsole.RconListener>(string.Concat("/", this.config.Password), () => { Oxide.Core.RemoteConsole.RemoteConsole.RconListener rconListener = new Oxide.Core.RemoteConsole.RemoteConsole.RconListener(this); Oxide.Core.RemoteConsole.RemoteConsole.RconListener rconListener1 = rconListener; this.listener = rconListener; return(rconListener1); }); this.server.Start(); Interface.Oxide.LogInfo(string.Format("[Rcon] Server started successfully on port {0}", this.server.Port), Array.Empty <object>()); } catch (Exception exception1) { Exception exception = exception1; OxideMod oxide = Interface.Oxide; WebSocketServer webSocketServer = this.server; if (webSocketServer != null) { nullable1 = new int?(webSocketServer.Port); } else { nullable = null; nullable1 = nullable; } oxide.LogException(string.Format("[Rcon] Failed to start server on port {0}", nullable1), exception); WebSocketServer webSocketServer1 = this.server; if (webSocketServer1 != null) { nullable2 = new int?(webSocketServer1.Port); } else { nullable = null; nullable2 = nullable; } RemoteLogger.Exception(string.Format("Failed to start RCON server on port {0}", nullable2), exception); } }
public void Shutdown(string reason = "Server shutting down", CloseStatusCode code = 1000) { if (this.server != null) { this.server.Stop(code, reason); this.server = null; this.listener = null; Interface.Oxide.LogInfo(string.Format("[Rcon] Service has stopped: {0} ({1})", reason, code), Array.Empty <object>()); } }