static void Main() { //load credentials from credentials.json bool loadTrello = false; try { creds = JsonConvert.DeserializeObject<Credentials>(File.ReadAllText("credentials.json")); botMention = creds.BotMention; if (string.IsNullOrWhiteSpace(creds.GoogleAPIKey)) { Console.WriteLine("No google api key found. You will not be able to use music and links won't be shortened."); } else { Console.WriteLine("Google API key provided."); GoogleAPIKey = creds.GoogleAPIKey; } if (string.IsNullOrWhiteSpace(creds.TrelloAppKey)) { Console.WriteLine("No trello appkey found. You will not be able to use trello commands."); } else { Console.WriteLine("Trello app key provided."); TrelloAppKey = creds.TrelloAppKey; loadTrello = true; } if (creds.ForwardMessages != true) Console.WriteLine("Not forwarding messages."); else { ForwardMessages = true; Console.WriteLine("Forwarding messages."); } if (string.IsNullOrWhiteSpace(creds.ParseID) || string.IsNullOrWhiteSpace(creds.ParseKey)) { Console.WriteLine("Parse key and/or ID not found. Those are mandatory."); ParseActive = false; } else ParseActive = true; if(string.IsNullOrWhiteSpace(creds.OsuApiKey)) Console.WriteLine("No osu API key found. Osu functionality is disabled."); else Console.WriteLine("Osu enabled."); if(string.IsNullOrWhiteSpace(creds.SoundCloudClientID)) Console.WriteLine("No soundcloud Client ID found. Soundcloud streaming is disabled."); else Console.WriteLine("SoundCloud streaming enabled."); //init parse if (ParseActive) try { ParseClient.Initialize(creds.ParseID, creds.ParseKey); } catch (Exception) { Console.WriteLine("Parse exception. Probably wrong parse credentials."); } OwnerID = creds.OwnerID; password = creds.Password; } catch (Exception ex) { Console.WriteLine($"Failed to load stuff from credentials.json, RTFM\n{ex.Message}"); Console.ReadKey(); return; } //create new discord client client = new DiscordClient(); //create a command service var commandService = new CommandService(new CommandServiceConfig { CommandChar = null, HelpMode = HelpMode.Disable }); //reply to personal messages and forward if enabled. client.MessageReceived += Client_MessageReceived; //add command service var commands = client.Services.Add<CommandService>(commandService); //create module service var modules = client.Services.Add<ModuleService>(new ModuleService()); //add audio service var audio = client.Services.Add<AudioService>(new AudioService(new AudioServiceConfig() { Channels = 2, EnableEncryption = false, EnableMultiserver = true, Bitrate = 128, })); //install modules modules.Add(new Administration(), "Administration", ModuleFilter.None); modules.Add(new Conversations(), "Conversations", ModuleFilter.None); modules.Add(new Gambling(), "Gambling", ModuleFilter.None); modules.Add(new Games(), "Games", ModuleFilter.None); modules.Add(new Music(), "Music", ModuleFilter.None); modules.Add(new Searches(), "Searches", ModuleFilter.None); if (loadTrello) modules.Add(new Trello(), "Trello", ModuleFilter.None); //run the bot client.ExecuteAndWait(async () => { await client.Connect(creds.Username, creds.Password); Console.WriteLine("-----------------"); Console.WriteLine(NadekoStats.Instance.GetStats()); Console.WriteLine("-----------------"); foreach (var serv in client.Servers) { if ((OwnerUser = serv.GetUser(OwnerID)) != null) return; } client.ClientAPI.SendingRequest += (s, e) => { var request = e.Request as Discord.API.Client.Rest.SendMessageRequest; if (request != null) { if (string.IsNullOrWhiteSpace(request.Content)) e.Cancel = true; } }; }); Console.WriteLine("Exiting..."); Console.ReadKey(); }
static void Main() { //load credentials from credentials.json bool loadTrello = false; try { creds = JsonConvert.DeserializeObject<Credentials>(File.ReadAllText("credentials.json")); botMention = creds.BotMention; if (string.IsNullOrWhiteSpace(creds.GoogleAPIKey)) { Console.WriteLine("No google api key found. You will not be able to use music and links won't be shortened."); } else { Console.WriteLine("Google API key provided."); GoogleAPIKey = creds.GoogleAPIKey; } if (string.IsNullOrWhiteSpace(creds.TrelloAppKey)) { Console.WriteLine("No trello appkey found. You will not be able to use trello commands."); } else { Console.WriteLine("Trello app key provided."); TrelloAppKey = creds.TrelloAppKey; loadTrello = true; } if (creds.ForwardMessages != true) Console.WriteLine("Not forwarding messages."); else { ForwardMessages = true; Console.WriteLine("Forwarding messages."); } if(string.IsNullOrWhiteSpace(creds.SoundCloudClientID)) Console.WriteLine("No soundcloud Client ID found. Soundcloud streaming is disabled."); else Console.WriteLine("SoundCloud streaming enabled."); OwnerID = creds.OwnerID; password = creds.Password; } catch (Exception ex) { Console.WriteLine($"Failed to load stuff from credentials.json, RTFM\n{ex.Message}"); Console.ReadKey(); return; } //create new discord client client = new DiscordClient(new DiscordConfigBuilder() { MessageCacheSize = 0, ConnectionTimeout = 60000, }); //create a command service var commandService = new CommandService(new CommandServiceConfigBuilder { AllowMentionPrefix = false, CustomPrefixHandler = m => 0, HelpMode = HelpMode.Disabled }); //reply to personal messages and forward if enabled. client.MessageReceived += Client_MessageReceived; //add command service var commands = client.Services.Add<CommandService>(commandService); //create module service var modules = client.Services.Add<ModuleService>(new ModuleService()); //add audio service var audio = client.Services.Add<AudioService>(new AudioService(new AudioServiceConfigBuilder() { Channels = 2, EnableEncryption = false, EnableMultiserver = true, Bitrate = 128, })); //install modules modules.Add(new Administration(), "Administration", ModuleFilter.None); modules.Add(new PermissionModule(), "Permissions", ModuleFilter.None); modules.Add(new Conversations(), "Conversations", ModuleFilter.None); modules.Add(new Gambling(), "Gambling", ModuleFilter.None); modules.Add(new Games(), "Games", ModuleFilter.None); modules.Add(new Music(), "Music", ModuleFilter.None); modules.Add(new Searches(), "Searches", ModuleFilter.None); if (loadTrello) modules.Add(new Trello(), "Trello", ModuleFilter.None); modules.Add(new NSFW(), "NSFW", ModuleFilter.None); //run the bot client.ExecuteAndWait(async () => { await client.Connect(creds.Username, creds.Password); Console.WriteLine("-----------------"); Console.WriteLine(NadekoStats.Instance.GetStats()); Console.WriteLine("-----------------"); try { OwnerPrivateChannel = await client.CreatePrivateChannel(OwnerID); } catch { Console.WriteLine("Failed creating private channel with the owner"); } Classes.Permissions.PermissionsHandler.Initialize(); client.ClientAPI.SendingRequest += (s, e) => { var request = e.Request as Discord.API.Client.Rest.SendMessageRequest; if (request != null) { if (string.IsNullOrWhiteSpace(request.Content)) e.Cancel = true; request.Content = request.Content.Replace("@everyone", "@everyοne"); } }; }); Console.WriteLine("Exiting..."); Console.ReadKey(); }
static void Main() { //load credentials from credentials.json bool loadTrello = false; try { creds = JsonConvert.DeserializeObject <Credentials>(File.ReadAllText("credentials.json")); botMention = creds.BotMention; if (string.IsNullOrWhiteSpace(creds.GoogleAPIKey)) { Console.WriteLine("No google api key found. You will not be able to use music and links won't be shortened."); } else { Console.WriteLine("Google API key provided."); GoogleAPIKey = creds.GoogleAPIKey; } if (string.IsNullOrWhiteSpace(creds.TrelloAppKey)) { Console.WriteLine("No trello appkey found. You will not be able to use trello commands."); } else { Console.WriteLine("Trello app key provided."); TrelloAppKey = creds.TrelloAppKey; loadTrello = true; } if (creds.ForwardMessages != true) { Console.WriteLine("Not forwarding messages."); } else { ForwardMessages = true; Console.WriteLine("Forwarding messages."); } if (string.IsNullOrWhiteSpace(creds.SoundCloudClientID)) { Console.WriteLine("No soundcloud Client ID found. Soundcloud streaming is disabled."); } else { Console.WriteLine("SoundCloud streaming enabled."); } OwnerID = creds.OwnerID; password = creds.Password; } catch (Exception ex) { Console.WriteLine($"Failed to load stuff from credentials.json, RTFM\n{ex.Message}"); Console.ReadKey(); return; } //create new discord client client = new DiscordClient(new DiscordConfigBuilder() { MessageCacheSize = 20, ConnectionTimeout = 60000, }); //create a command service var commandService = new CommandService(new CommandServiceConfigBuilder { AllowMentionPrefix = false, CustomPrefixHandler = m => 0, HelpMode = HelpMode.Disabled, }); //reply to personal messages and forward if enabled. client.MessageReceived += Client_MessageReceived; //add command service var commands = client.AddService <CommandService>(commandService); //create module service var modules = client.AddService <ModuleService>(new ModuleService()); //add audio service var audio = client.AddService <AudioService>(new AudioService(new AudioServiceConfigBuilder() { Channels = 2, EnableEncryption = false, EnableMultiserver = true, Bitrate = 128, })); //install modules modules.Add(new Administration(), "Administration", ModuleFilter.None); modules.Add(new Help(), "Help", ModuleFilter.None); modules.Add(new PermissionModule(), "Permissions", ModuleFilter.None); modules.Add(new Conversations(), "Conversations", ModuleFilter.None); modules.Add(new Gambling(), "Gambling", ModuleFilter.None); modules.Add(new Games(), "Games", ModuleFilter.None); modules.Add(new Music(), "Music", ModuleFilter.None); modules.Add(new Searches(), "Searches", ModuleFilter.None); if (loadTrello) { modules.Add(new Trello(), "Trello", ModuleFilter.None); } modules.Add(new NSFW(), "NSFW", ModuleFilter.None); //run the bot client.ExecuteAndWait(async() => { try { await client.Connect(creds.Username, creds.Password); } catch (Exception ex) { Console.WriteLine($"Probably wrong EMAIL or PASSWORD.\n{ex.Message}"); Console.ReadKey(); Console.WriteLine(ex); Console.ReadKey(); return; } Console.WriteLine("-----------------"); Console.WriteLine(NadekoStats.Instance.GetStats()); Console.WriteLine("-----------------"); try { OwnerPrivateChannel = await client.CreatePrivateChannel(OwnerID); } catch { Console.WriteLine("Failed creating private channel with the owner"); } Classes.Permissions.PermissionsHandler.Initialize(); client.ClientAPI.SendingRequest += (s, e) => { var request = e.Request as Discord.API.Client.Rest.SendMessageRequest; if (request != null) { if (string.IsNullOrWhiteSpace(request.Content)) { e.Cancel = true; } request.Content = request.Content.Replace("@everyone", "@everyοne"); } }; }); Console.WriteLine("Exiting..."); Console.ReadKey(); }