public MainWindow() { InitializeComponent(); discord = new DiscordClient(x => { x.AppName = "OakBot"; x.AppUrl = "http://github.com/ocgineer/OakBot"; x.AppVersion = FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion; x.UsePermissionsCache = false; }); // Initialize instance instance = this; this.DataContext = this; if (!Directory.Exists(Config.AppDataPath)) Directory.CreateDirectory(Config.AppDataPath); if (!Directory.Exists(Config.AppDataPath + "\\Webserver")) Directory.CreateDirectory(Config.AppDataPath + "\\Webserver"); // Initialize config Config.GetConfigFromDb(); LoadConfigToUI(); DatabaseUtils.LoadAllViewers(); DatabaseUtils.LoadAllQuotes(); // Enable sync between threads BindingOperations.EnableCollectionSynchronization(colChatMessages, _lockChat); BindingOperations.EnableCollectionSynchronization(colViewers, _lockViewers); BindingOperations.EnableCollectionSynchronization(colDatabase, _lockDatabase); BindingOperations.EnableCollectionSynchronization(colSongs, _lockSongs); BindingOperations.EnableCollectionSynchronization(colGiveaways, _lockGiveaways); // Create Event for collection changed colChatMessages.CollectionChanged += colChatMessages_Changed; // Link listViews with collections //listViewChat.ItemsSource = colChatMessages; listViewViewers.ItemsSource = colViewers; // Database listView with filter lvViewerDatabase.ItemsSource = colDatabase; databaseView = CollectionViewSource.GetDefaultView(lvViewerDatabase.ItemsSource); databaseView.Filter = DatabaseFilter; lblFilterCnt.Content = databaseView.Cast<Viewer>().Count(); lvCommands.ItemsSource = colBotCommands; lvQuotes.ItemsSource = colQuotes; lvSongs.ItemsSource = colSongs; lvGiveaways.ItemsSource = colGiveaways; // Testing Commands colBotCommands.Add(new UserCommand("!test", "Test received!", 30, 0, true)); colBotCommands.Add(new UserCommand(":yatb", "Yet Another Twitch Bot.", 30, 60, true)); colBotCommands.Add(new UserCommand("!who", "You are @user@", 0, 0, true)); colBotCommands.Add(new UserCommand("!block", "@block@ Hello thur!", 0, 0, true)); colBotCommands.Add(new UserCommand("!followdate", "@user@, you are following since @followdate@.", 0, 0, true)); colBotCommands.Add(new UserCommand("!followdatetime", "@user@, you are following since @followdatetime@", 0, 0, true)); colBotCommands.Add(new UserCommand("!vartest", "@var1@ m8", 0, 0, true)); colBotCommands.Add(new UserCommand("!song", "Currently playing: @song@!", 0, 0, true)); colBotCommands.Add(new UserCommand("Giveaway", "Just stop...", 0, 0, true, true)); colBotCommands.Add(new UserCommand("!slap", "@user@ slaps @target@ so hard, he bursts into pieces!", 0, 0, true)); colSongs.Add(new Song("https://www.youtube.com/watch?v=VEAy700YGuU")); colSongs.Add(new Song("https://soundcloud.com/aivisura/steven-universe-strong-in-the-real-way-rebecca-sugar")); string message = "Hello and welcome to the first OakBot Alpha ever to be released! I know it took some time, but I also have a private life, you know? ;)\n\n" + "Anyways, this version has not many functions yet, but the ones that are listed here, are fully working.\n\n" + "WORKING:\n" + "- Twitch Chat\n" + "- Commands\n" + " - Song Requests (the controls are only working for YouTube at the moment)\n" + " - Quotes\n" + " - Follow Date\n" + "- Discord Integration (user unspecific commands work without problems, while the user specific ones are yet to be handled)\n" + "- Import from Ankhbot\n" + "- Dashboard and Viewer related stuff\n\n" + "IMPLEMENTED, BUT NOT FULLY WORKING:\n" + "- Giveaways\n" + "- Stream Currency Gain\n" + "- The UI itself\n\n" + "I know, there's much to do, but bear with me. I'm working as hard as I can c:"; MessageBox.Show(message, "OakBot Alpha 1"); // BackgroundTask Thread BackgroundTasks bg = new BackgroundTasks(60, 120); new Thread(new ThreadStart(bg.Run)) { IsBackground = true }.Start(); // Auto connect if (Config.AutoConnectBot) { ConnectBot(); // Can only connect if Bot is connected if (Config.AutoConnectStreamer) { ConnectStreamer(); } } }
public MainWindow() { InitializeComponent(); discord = new DiscordClient(x => { x.AppName = "DergBot"; x.AppUrl = "http://github.com/jeanolos/OakBot"; x.AppVersion = FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion; x.UsePermissionsCache = false; }); // Initialize instance instance = this; this.DataContext = this; if (!Directory.Exists(Config.AppDataPath)) { Directory.CreateDirectory(Config.AppDataPath); } if (!Directory.Exists(Config.AppDataPath + "\\Webserver")) { Directory.CreateDirectory(Config.AppDataPath + "\\Webserver"); } // Initialize config Config.GetConfigFromDb(); LoadConfigToUI(); DatabaseUtils.LoadAllViewers(); DatabaseUtils.LoadAllQuotes(); // Enable sync between threads BindingOperations.EnableCollectionSynchronization(colChatMessages, _lockChat); BindingOperations.EnableCollectionSynchronization(colViewers, _lockViewers); BindingOperations.EnableCollectionSynchronization(colDatabase, _lockDatabase); BindingOperations.EnableCollectionSynchronization(colSongs, _lockSongs); BindingOperations.EnableCollectionSynchronization(colGiveaways, _lockGiveaways); // Create Event for collection changed colChatMessages.CollectionChanged += colChatMessages_Changed; // Link listViews with collections //listViewChat.ItemsSource = colChatMessages; listViewViewers.ItemsSource = colViewers; // Database listView with filter lvViewerDatabase.ItemsSource = colDatabase; databaseView = CollectionViewSource.GetDefaultView(lvViewerDatabase.ItemsSource); databaseView.Filter = DatabaseFilter; lblFilterCnt.Content = databaseView.Cast <Viewer>().Count(); lvCommands.ItemsSource = colBotCommands; lvQuotes.ItemsSource = colQuotes; lvSongs.ItemsSource = colSongs; lvGiveaways.ItemsSource = colGiveaways; // Testing Commands colBotCommands.Add(new UserCommand("!test", "Test received!", 30, 0, true)); colBotCommands.Add(new UserCommand(":yatb", "Yet Another Twitch Bot.", 30, 60, true)); colBotCommands.Add(new UserCommand("!who", "You are @user@", 0, 0, true)); colBotCommands.Add(new UserCommand("!block", "@block@ Hello thur!", 0, 0, true)); colBotCommands.Add(new UserCommand("!followdate", "@user@, you are following since @followdate@.", 0, 0, true)); colBotCommands.Add(new UserCommand("!followdatetime", "@user@, you are following since @followdatetime@", 0, 0, true)); colBotCommands.Add(new UserCommand("!vartest", "@var1@ m8", 0, 0, true)); colBotCommands.Add(new UserCommand("!song", "Currently playing: @song@!", 0, 0, true)); colBotCommands.Add(new UserCommand("Giveaway", "Just stop...", 0, 0, true, true)); colBotCommands.Add(new UserCommand("!slap", "@user@ slaps @target@ so hard, he bursts into pieces!", 0, 0, true)); colSongs.Add(new Song("https://www.youtube.com/watch?v=VEAy700YGuU")); colSongs.Add(new Song("https://soundcloud.com/aivisura/steven-universe-strong-in-the-real-way-rebecca-sugar")); string message = "Hello and welcome to the first DergBot Alpha ever to be released! I know it took some time, but I also have a private life, you know? ;)\n\n" + "Anyways, this version has not many functions yet, but the ones that are listed here, are fully working.\n\n" + "WORKING:\n" + "- Twitch Chat\n" + "- Commands\n" + " - Song Requests (the controls are only working for YouTube at the moment)\n" + " - Quotes\n" + " - Follow Date\n" + "- Discord Integration\n" + "- Import from Ankhbot\n" + "- Giveaways\n" + "- Dashboard and Viewer related stuff\n\n" + "IMPLEMENTED, BUT NOT FULLY WORKING:\n" + "- Stream Currency Gain\n" + "- The UI itself\n\n" + "I know, there's much to do, but bear with me. I'm working as hard as I can c:"; MessageBox.Show(message, "DergBot Alpha 1"); // BackgroundTask Thread BackgroundTasks bg = new BackgroundTasks(60, 120); new Thread(new ThreadStart(bg.Run)) { IsBackground = true }.Start(); // Auto connect if (Config.AutoConnectBot) { ConnectBot(); // Can only connect if Bot is connected if (Config.AutoConnectStreamer) { ConnectStreamer(); } } }