Beispiel #1
0
 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;
 }
Beispiel #2
0
 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));
 }
Beispiel #3
0
        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;
        }
Beispiel #4
0
 public PleaseWaitHandler(ServerSettingsHandler serverSettingsHandler, LanguageHandler languageHandler)
 {
     rand = new Random();
     this.serverSettingsHandler = serverSettingsHandler;
     this.languageHandler       = languageHandler;
 }
Beispiel #5
0
        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);
        }