internal ServersCommand(DiscordSocketClient client, ServerSettingsHandler serverSettingsHandler, LanguageHandler languageHandler, string[] aliases, string examples, string help, ModuleType module) : base(CommandHandlerType.Servers, aliases, examples, help, module) { this.client = client; this.serverSettingsHandler = serverSettingsHandler; this.languageHandler = languageHandler; }
internal ScheduleCommand(LanguageHandler languageHandler, ServerSettingsHandler serverSettingsHandler, Scheduler.ScheduleHandler scheduleHandler, IAsyncResponder asyncResponder, string[] aliases, string examples, string help, ModuleType module) : base(CommandHandlerType.Schedule, aliases, examples, help, module) { this.languageHandler = languageHandler ?? throw new ArgumentNullException(nameof(languageHandler)); this.serverSettingsHandler = serverSettingsHandler ?? throw new ArgumentNullException(nameof(serverSettingsHandler)); this.scheduleHandler = scheduleHandler ?? throw new ArgumentNullException(nameof(scheduleHandler)); this.asyncResponder = asyncResponder ?? throw new ArgumentNullException(nameof(asyncResponder)); }
public SlateBotController() { this.dal = new SlateBotDAL(); this.languageHandler = new LanguageHandler(dal); this.lifecycle = new SlateBotControllerLifecycle(this); this.scheduleHandler = new ScheduleHandler(); this.commandHandlerController = new CommandController(this); this.serverSettingsHandler = new ServerSettingsHandler(ErrorLogger, dal); this.updateController = new UpdateController(this); this.userSettingsHandler = new UserSettingsHandler(this); this.waitHandler = new PleaseWaitHandler(serverSettingsHandler, languageHandler); this.client = new DiscordSocketClient(); client.LoggedIn += Client_LoggedIn; client.LoggedOut += Client_LoggedOut; client.MessageReceived += Client_MessageReceived; client.MessageUpdated += Client_MessageUpdated; OnCommandReceived += SlateBotController_OnCommandReceived; }
public PleaseWaitHandler(ServerSettingsHandler serverSettingsHandler, LanguageHandler languageHandler) { rand = new Random(); this.serverSettingsHandler = serverSettingsHandler; this.languageHandler = languageHandler; }
private async Task OpenWebsocketConnection(HttpContext context, WebSocket webSocket) { Console.WriteLine(DateTime.Now + " | Connected: " + context.Connection.RemoteIpAddress + ":" + context.Connection.RemotePort + " connected"); var buffer = new byte[1024 * 4]; WebSocketHandler webSocketHandler = new WebSocketHandler(webSocket); await webSocketHandler.Send(new Command("Connected", null)); try { await webSocketHandler.ExtractCompleteMessage(buffer); if (webSocketHandler.ReceivedCommand.CommandName == "Login") { await UserManager.HandleLogin(webSocketHandler); } } catch (OperationCanceledException ex) { await webSocketHandler.Send(new Command("LoginTimeout", null)); Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.ToString()); } try { if (webSocketHandler.ConnectedUserToken != "") { await ServerSettingsHandler.RegisterUser(webSocketHandler.User, webSocketHandler.ConnectedUserToken); await SDaysTDieServerHandler.RegisterUser(webSocketHandler.User, webSocketHandler.ConnectedUserToken); while (!webSocketHandler.WebSocket.CloseStatus.HasValue) { await webSocketHandler.ExtractCompleteMessage(buffer); if (webSocketHandler.ReceivedCommand?.CommandName == "GetUser") { await UserManager.GetUser(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "GetUsers") { await UserManager.GetUsers(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "ChangePassword") { await UserManager.ChangePassword(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "CreateUser") { await UserManager.CreateUser(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "EditUser") { await UserManager.EditUser(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "DeleteUser") { await UserManager.DeleteUser(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "LoggedInUserHasRights") { await UserManager.LoggedInUserHasRights(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "AddServerSetting") { await ServerSettingsHandler.AddServerSettings(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "EditServerSettings") { await ServerSettingsHandler.EditServerSettings(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "DeleteServerSettings") { await ServerSettingsHandler.DeleteServerSettings(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "GetServerSettingsOfLoggedInUser") { await ServerSettingsHandler.GetServerSettingsOfLoggedInUser(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "StartServer") { await SDaysTDieServerHandler.StartServer(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "StopServer") { await SDaysTDieServerHandler.StopServer(webSocketHandler); } else if (webSocketHandler.ReceivedCommand?.CommandName == "ConnectTelnet") { await SDaysTDieServerHandler.ConnectTelnet(webSocketHandler); } } } } catch (OperationCanceledException ex) { await webSocketHandler.Send(new Command("ConnectionTimeout", null)); Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } try { await webSocketHandler.Send(new Command("Disconnected", null)); } catch (Exception ex) { Console.WriteLine("Could not send Disconnected message, Exception: " + ex.Message); } Console.WriteLine(DateTime.Now + " | " + context.Connection.RemoteIpAddress + ":" + context.Connection.RemotePort + " disconnected"); await webSocket.CloseAsync(webSocketHandler.Result.CloseStatus.Value, webSocketHandler.Result.CloseStatusDescription, CancellationToken.None); }