From 33e4734d588544d298100030c7f2603db89cec89 Mon Sep 17 00:00:00 2001 From: Kwoth Date: Wed, 9 Dec 2015 21:47:02 +0100 Subject: [PATCH] New trivia questions, broke audio. Improved trivia a bit --- NadekoBot.sln | 38 + NadekoBot/Classes/SParser.cs | 39 + NadekoBot/Classes/Trivia.cs | 33 +- NadekoBot/Modules/Administration.cs | 2 +- NadekoBot/Modules/Conversations.cs | 30 +- NadekoBot/Modules/Music.cs | 10 +- NadekoBot/NadekoBot.cs | 52 +- NadekoBot/NadekoBot.csproj | 32 +- NadekoBot/StatsCollector.cs | 5 +- dlls/Discord.Net.Audio.dll | Bin 0 -> 49152 bytes dlls/Discord.Net.Commands.dll | Bin 32256 -> 38912 bytes dlls/Discord.Net.Modules.dll | Bin 24064 -> 31232 bytes dlls/Discord.Net.dll | Bin 270336 -> 233472 bytes dlls/libvideo.dll | Bin 0 -> 34816 bytes dlls/questions.txt | 24549 ++++++++++++++++++++++++++ 15 files changed, 24712 insertions(+), 78 deletions(-) create mode 100644 NadekoBot/Classes/SParser.cs create mode 100644 dlls/Discord.Net.Audio.dll create mode 100644 dlls/libvideo.dll create mode 100644 dlls/questions.txt diff --git a/NadekoBot.sln b/NadekoBot.sln index 9520d5e1..16b6c178 100644 --- a/NadekoBot.sln +++ b/NadekoBot.sln @@ -5,7 +5,21 @@ VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NadekoBot", "NadekoBot\NadekoBot.csproj", "{27A886F5-CDDA-4F4A-81EE-6DAFCCE9DE46}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net", "E:\Ostalo\Discord.Net\src\Discord.Net.Net45\Discord.Net.csproj", "{8D71A857-879A-4A10-859E-5FF824ED6688}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Modules", "E:\Ostalo\Discord.Net\src\Discord.Net.Modules.Net45\Discord.Net.Modules.csproj", "{3091164F-66AE-4543-A63D-167C1116241D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Commands", "E:\Ostalo\Discord.Net\src\Discord.Net.Commands.Net45\Discord.Net.Commands.csproj", "{1B5603B4-6F8F-4289-B945-7BAAE523D740}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Audio", "E:\Ostalo\Discord.Net\src\Discord.Net.Audio.Net5\Discord.Net.Audio.csproj", "{7BFEF748-B934-4621-9B11-6302E3A9F6B3}" +EndProject Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + E:\Ostalo\Discord.Net\src\Discord.Net.Shared\Discord.Net.Shared.projitems*{7bfef748-b934-4621-9b11-6302e3a9f6b3}*SharedItemsImports = 4 + E:\Ostalo\Discord.Net\src\Discord.Net.Shared\Discord.Net.Shared.projitems*{1b5603b4-6f8f-4289-b945-7baae523d740}*SharedItemsImports = 4 + E:\Ostalo\Discord.Net\src\Discord.Net.Shared\Discord.Net.Shared.projitems*{3091164f-66ae-4543-a63d-167c1116241d}*SharedItemsImports = 4 + E:\Ostalo\Discord.Net\src\Discord.Net.Shared\Discord.Net.Shared.projitems*{8d71a857-879a-4a10-859e-5ff824ed6688}*SharedItemsImports = 4 + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU FullDebug|Any CPU = FullDebug|Any CPU @@ -18,6 +32,30 @@ Global {27A886F5-CDDA-4F4A-81EE-6DAFCCE9DE46}.FullDebug|Any CPU.Build.0 = Debug|Any CPU {27A886F5-CDDA-4F4A-81EE-6DAFCCE9DE46}.Release|Any CPU.ActiveCfg = Release|Any CPU {27A886F5-CDDA-4F4A-81EE-6DAFCCE9DE46}.Release|Any CPU.Build.0 = Release|Any CPU + {8D71A857-879A-4A10-859E-5FF824ED6688}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D71A857-879A-4A10-859E-5FF824ED6688}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D71A857-879A-4A10-859E-5FF824ED6688}.FullDebug|Any CPU.ActiveCfg = FullDebug|Any CPU + {8D71A857-879A-4A10-859E-5FF824ED6688}.FullDebug|Any CPU.Build.0 = FullDebug|Any CPU + {8D71A857-879A-4A10-859E-5FF824ED6688}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D71A857-879A-4A10-859E-5FF824ED6688}.Release|Any CPU.Build.0 = Release|Any CPU + {3091164F-66AE-4543-A63D-167C1116241D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3091164F-66AE-4543-A63D-167C1116241D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3091164F-66AE-4543-A63D-167C1116241D}.FullDebug|Any CPU.ActiveCfg = Debug|Any CPU + {3091164F-66AE-4543-A63D-167C1116241D}.FullDebug|Any CPU.Build.0 = Debug|Any CPU + {3091164F-66AE-4543-A63D-167C1116241D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3091164F-66AE-4543-A63D-167C1116241D}.Release|Any CPU.Build.0 = Release|Any CPU + {1B5603B4-6F8F-4289-B945-7BAAE523D740}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B5603B4-6F8F-4289-B945-7BAAE523D740}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B5603B4-6F8F-4289-B945-7BAAE523D740}.FullDebug|Any CPU.ActiveCfg = Debug|Any CPU + {1B5603B4-6F8F-4289-B945-7BAAE523D740}.FullDebug|Any CPU.Build.0 = Debug|Any CPU + {1B5603B4-6F8F-4289-B945-7BAAE523D740}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B5603B4-6F8F-4289-B945-7BAAE523D740}.Release|Any CPU.Build.0 = Release|Any CPU + {7BFEF748-B934-4621-9B11-6302E3A9F6B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BFEF748-B934-4621-9B11-6302E3A9F6B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BFEF748-B934-4621-9B11-6302E3A9F6B3}.FullDebug|Any CPU.ActiveCfg = Debug|Any CPU + {7BFEF748-B934-4621-9B11-6302E3A9F6B3}.FullDebug|Any CPU.Build.0 = Debug|Any CPU + {7BFEF748-B934-4621-9B11-6302E3A9F6B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BFEF748-B934-4621-9B11-6302E3A9F6B3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/NadekoBot/Classes/SParser.cs b/NadekoBot/Classes/SParser.cs new file mode 100644 index 00000000..f0afe4af --- /dev/null +++ b/NadekoBot/Classes/SParser.cs @@ -0,0 +1,39 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Classes +{ + /// + /// Shit parser. I used this to convert shit-format to json format + /// + class SParser + { + public static void DoShitParse() { + + string[] lines = File.ReadAllLines("questions.txt"); + JArray qs = new JArray(); + foreach (var line in lines) + { + if (!line.Contains(";")) continue; + JObject j = new JObject(); + if (line.Contains(":")) + { + j["Category"] = line.Substring(0, line.LastIndexOf(":")); + j["Question"] = line.Substring(line.LastIndexOf(":") + 1, line.LastIndexOf(";") - line.LastIndexOf(":") - 1); + + } + else { + j["Question"] = line.Substring(0, line.LastIndexOf(";")); + } + j["Answer"] = line.Substring(line.LastIndexOf(";") + 1, line.Length - line.LastIndexOf(";") - 1).Trim(); + qs.Add(j); + } + File.WriteAllText("questions2.txt", qs.ToString()); + } + } +} diff --git a/NadekoBot/Classes/Trivia.cs b/NadekoBot/Classes/Trivia.cs index 5645fce8..44a22030 100644 --- a/NadekoBot/Classes/Trivia.cs +++ b/NadekoBot/Classes/Trivia.cs @@ -3,6 +3,7 @@ using Discord.Commands; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Net.Http; using System.Text; @@ -37,10 +38,11 @@ namespace NadekoBot { return async e => { + Console.WriteLine("doign the func"); TriviaGame tg; if ((tg = StartNewGame(e))!=null) { - await client.SendMessage(e.Channel, "**Trivia game started!** It is bound to this channel. But only 1 game can run per server. \n First player to get to 10 points wins! You have 30 seconds per question.\nUse command [tq] if game was started by accident."); + await client.SendMessage(e.Channel, "**Trivia game started!**\nFirst player to get to 10 points wins! You have 30 seconds per question.\nUse command [tq] if game was started by accident."); } else await client.SendMessage(e.Channel, "Trivia game is already running on this server. The question is:\n**"+GetCurrentQuestion(e.Server.Id).Question+"**\n[tq quits trivia]\n[@NadekoBot clr clears my messages]"); @@ -171,10 +173,10 @@ namespace NadekoBot { users[e.User.Id]++; } - await client.SendMessage(e.Channel, Mention.User(e.User) + " Guessed it!\n The answer was: **" + currentQuestion.Answer + "**"); + await client.SendMessage(e.Channel, e.User.Mention + " Guessed it!\n The answer was: **" + currentQuestion.Answer + "**"); if (users[e.User.Id] >= 10) { - await client.SendMessage(e.Channel, " We have a winner! It's " + Mention.User(e.User)+"\n"+GetLeaderboard()+"\n To start a new game type '@NadekoBot t'"); + await client.SendMessage(e.Channel, " We have a winner! It's " + e.User.Mention+"\n"+GetLeaderboard()+"\n To start a new game type '@NadekoBot t'"); FinishGame(); return; } @@ -209,7 +211,7 @@ namespace NadekoBot t.Enabled = true; t.Elapsed += async (s, ev) => { active = true; - await client.SendMessage(ch, "QUESTION\n**" + currentQuestion.Question + " **"); + await client.SendMessage(ch, currentQuestion.ToString()); t.Enabled = false; timeout.Enabled = true;//starting countdown of the next question }; @@ -217,7 +219,7 @@ namespace NadekoBot } private async void TimeUp() { - await client.SendMessage(client.GetChannel(_channellId), "**Time's up.**\nCorrect answer was: **" + currentQuestion.Answer+"**\n**[tq quits trivia][tl shows leaderboard][@NadekoBot clr clears my messages]**"); + await client.SendMessage(client.GetChannel(_channellId), "**Time's up.**\nCorrect answer was: **" + currentQuestion.Answer+"**\n\n*[tq quits trivia][tl shows leaderboard]["+NadekoBot.botMention+" clr clears my messages]*"); LoadNextRound(); } @@ -250,6 +252,7 @@ namespace NadekoBot } public class TriviaQuestion { + public string Category; public string Question; public string Answer; public TriviaQuestion(string q, string a) { @@ -259,7 +262,7 @@ namespace NadekoBot public override string ToString() { - return this.Question; + return this.Category == null ? "--------**Q**--------\nQuestion: **" + this.Question + "?**" : "--------Q--------\nCategory: " + this.Category + "\nQuestion: **"+ this.Question+ "?**"; } } @@ -283,16 +286,18 @@ namespace NadekoBot public TriviaQuestionsPool() { _r = new Random(); pool = new List(); - var httpClient = new System.Net.Http.HttpClient(); + JArray arr = JArray.Parse(File.ReadAllText("questions.txt")); - - var r = httpClient.GetAsync("http://jservice.io/api/clues?category=19").Result; - string str = r.Content.ReadAsStringAsync().Result; - dynamic obj = JArray.Parse(str); - - foreach (var item in obj) + foreach (var item in arr) { - pool.Add(new TriviaQuestion((string)item.question,(string)item.answer)); + TriviaQuestion tq; + tq = new TriviaQuestion((string)item["Question"],(string)item["Answer"]); + + if (item?["Category"] != null) { + tq.Category = item["Category"].ToString(); + } + + pool.Add(tq); } } diff --git a/NadekoBot/Modules/Administration.cs b/NadekoBot/Modules/Administration.cs index 5fd2fb7e..aaf5f293 100644 --- a/NadekoBot/Modules/Administration.cs +++ b/NadekoBot/Modules/Administration.cs @@ -270,7 +270,7 @@ namespace NadekoBot.Modules var time = (DateTime.Now - Process.GetCurrentProcess().StartTime); string uptime = " " + time.Days + " days, " + time.Hours + " hours, and " + time.Minutes + " minutes."; - await client.SendMessage(e.Channel, String.Format("```Servers: {0}\nUnique Users: {1}\nUptime: {2}\nMy id is: {3}```", serverCount, uniqueUserCount, uptime, client.CurrentUserId)); + await client.SendMessage(e.Channel, String.Format("```Servers: {0}\nUnique Users: {1}\nUptime: {2}\nMy id is: {3}```", serverCount, uniqueUserCount, uptime, client.CurrentUser.Id)); }); }); diff --git a/NadekoBot/Modules/Conversations.cs b/NadekoBot/Modules/Conversations.cs index 98e1b1fa..c2d0a747 100644 --- a/NadekoBot/Modules/Conversations.cs +++ b/NadekoBot/Modules/Conversations.cs @@ -45,14 +45,14 @@ namespace NadekoBot.Modules .Description("Nadeko replies with /o/") .Do(async e => { - await client.SendMessage(e.Channel, Mention.User(e.User) + "/o/"); + await client.SendMessage(e.Channel, e.User.Mention + "/o/"); }); cgb.CreateCommand("/o/") .Description("Nadeko replies with \\o\\") .Do(async e => { - await client.SendMessage(e.Channel, Mention.User(e.User) + "\\o\\"); + await client.SendMessage(e.Channel, e.User.Mention + "\\o\\"); }); }); @@ -67,9 +67,9 @@ namespace NadekoBot.Modules .Do(async e => { if (e.User.Id == NadekoBot.OwnerID) - await client.SendMessage(e.Channel, Mention.User(e.User) + ", Of course I do, my Master."); + await client.SendMessage(e.Channel, e.User.Mention + ", Of course I do, my Master."); else - await client.SendMessage(e.Channel, Mention.User(e.User) + ", Don't be silly."); + await client.SendMessage(e.Channel, e.User.Mention + ", Don't be silly."); }); CreateCommand(cgb, "die") @@ -82,10 +82,10 @@ namespace NadekoBot.Modules t.Interval = 2000; t.Elapsed += (s, ev) => { Environment.Exit(0); }; t.Start(); - await client.SendMessage(e.Channel, Mention.User(e.User) + ", Yes, my love."); + await client.SendMessage(e.Channel, e.User.Mention + ", Yes, my love."); } else - await client.SendMessage(e.Channel, Mention.User(e.User) + ", No."); + await client.SendMessage(e.Channel, e.User.Mention + ", No."); }); CreateCommand(cgb, "how are you") @@ -94,18 +94,18 @@ namespace NadekoBot.Modules { if (e.User.Id == NadekoBot.OwnerID) { - await client.SendMessage(e.Channel, Mention.User(e.User) + " I am great as long as you are here."); + await client.SendMessage(e.Channel, e.User.Mention + " I am great as long as you are here."); } else { var kw = client.GetUser(e.Server, NadekoBot.OwnerID); if (kw != null && kw.Status == UserStatus.Online) { - await client.SendMessage(e.Channel, Mention.User(e.User) + " I am great as long as " + Mention.User(kw) + " is with me."); + await client.SendMessage(e.Channel, e.User.Mention + " I am great as long as " + Mention.User(kw) + " is with me."); } else { - await client.SendMessage(e.Channel, Mention.User(e.User) + " I am sad. My Master is not with me."); + await client.SendMessage(e.Channel, e.User.Mention + " I am sad. My Master is not with me."); } } }); @@ -128,7 +128,7 @@ namespace NadekoBot.Modules } else { - await client.SendMessage(e.Channel, Mention.User(e.User) + " Eww, why would i do that for you ?!"); + await client.SendMessage(e.Channel, e.User.Mention + " Eww, why would i do that for you ?!"); } }); @@ -153,11 +153,11 @@ namespace NadekoBot.Modules { if (u.Id == NadekoBot.OwnerID) { - await client.SendMessage(e.Channel, Mention.User(e.User) + " I don't need your permission to praise my beloved Master <3"); + await client.SendMessage(e.Channel, e.User.Mention + " I don't need your permission to praise my beloved Master <3"); } else { - await client.SendMessage(e.Channel, Mention.User(e.User) + " Yeah... No."); + await client.SendMessage(e.Channel, e.User.Mention + " Yeah... No."); } } }); @@ -166,7 +166,7 @@ namespace NadekoBot.Modules .Description("Useless.") .Do(async e => { - await client.SendMessage(e.Channel, Mention.User(e.User) + " I will be soon."); + await client.SendMessage(e.Channel, e.User.Mention + " I will be soon."); }); cgb.CreateCommand("are you there") @@ -398,7 +398,7 @@ namespace NadekoBot.Modules { if (StatsCollector.DeleteRequest(int.Parse(e.Args[0]))) { - await client.SendMessage(e.Channel, Mention.User(e.User) + " Request deleted."); + await client.SendMessage(e.Channel, e.User.Mention + " Request deleted."); } else { @@ -425,7 +425,7 @@ namespace NadekoBot.Modules var sc = StatsCollector.ResolveRequest(int.Parse(e.Args[0])); if (sc != null) { - await client.SendMessage(e.Channel, Mention.User(e.User) + " Request resolved, notice sent."); + await client.SendMessage(e.Channel, e.User.Mention + " Request resolved, notice sent."); await client.SendPrivateMessage(client.GetUser(client.GetServer(sc.ServerId), sc.Id), "**This request of yours has been resolved:**\n" + sc.Text); } else diff --git a/NadekoBot/Modules/Music.cs b/NadekoBot/Modules/Music.cs index 3b77fc0e..361c0805 100644 --- a/NadekoBot/Modules/Music.cs +++ b/NadekoBot/Modules/Music.cs @@ -20,7 +20,7 @@ namespace NadekoBot.Modules private static bool exit = true; public static bool NextSong = false; - public static IDiscordVoiceClient Voice; + public static Discord.Audio.DiscordAudioClient Voice; public static Channel VoiceChannel; public static bool Pause = false; public static List SongQueue = new List(); @@ -144,7 +144,7 @@ namespace NadekoBot.Modules { if (Voice != null) return; VoiceChannel = client.FindChannels(e.Server, e.GetArg("ChannelName").Trim(), ChannelType.Voice).FirstOrDefault(); - Voice = await client.JoinVoiceServer(VoiceChannel); + //Voice = await client.JoinVoiceServer(VoiceChannel); Exit = false; NextSong = false; Pause = false; @@ -176,7 +176,7 @@ namespace NadekoBot.Modules { while ((byteCount = stream.Read(buffer, 0, blockSize)) > 0) { - Voice.SendVoicePCM(buffer, byteCount); + // Voice.SendVoicePCM(buffer, byteCount); counter += blockSize; if (NextSong) { @@ -193,10 +193,10 @@ namespace NadekoBot.Modules } }); } - await Voice.WaitVoice(); + // await Voice.WaitVoice(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } - await client.LeaveVoiceServer(VoiceChannel.Server); + // await client.LeaveVoiceServer(VoiceChannel.Server); Voice = null; VoiceChannel = null; }); diff --git a/NadekoBot/NadekoBot.cs b/NadekoBot/NadekoBot.cs index 5533c737..7bd648dc 100644 --- a/NadekoBot/NadekoBot.cs +++ b/NadekoBot/NadekoBot.cs @@ -2,26 +2,26 @@ using System; using System.IO; using Newtonsoft.Json; -using Discord.Commands; -using Discord.Modules; using Parse; +using Discord.Commands; using NadekoBot.Modules; +using Discord.Modules; +using Newtonsoft.Json.Linq; namespace NadekoBot { class NadekoBot { public static DiscordClient client; - public static StatsCollector sc; + // public static StatsCollector stats_collector; public static string botMention; public static string GoogleAPIKey; public static long OwnerID; - static void Main(string[] args) + static void Main() { //load credentials from credentials.json Credentials c; - try { c = JsonConvert.DeserializeObject(File.ReadAllText("credentials.json")); @@ -36,14 +36,14 @@ namespace NadekoBot return; } + client = new DiscordClient(); + //init parse if (c.ParseKey != null && c.ParseID != null) ParseClient.Initialize(c.ParseID,c.ParseKey); //create new discord client - client = new DiscordClient(new DiscordClientConfig() { - VoiceMode = DiscordVoiceMode.Outgoing, - }); + //create a command service var commandService = new CommandService(new CommandServiceConfig @@ -53,7 +53,7 @@ namespace NadekoBot }); //monitor commands for logging - sc = new StatsCollector(commandService); + //stats_collector = new StatsCollector(commandService); //add command service var commands = client.AddService(commandService); @@ -66,45 +66,17 @@ namespace NadekoBot modules.Install(new Conversations(), "Conversations", FilterType.Unrestricted); modules.Install(new Gambling(), "Gambling", FilterType.Unrestricted); modules.Install(new Games(), "Games", FilterType.Unrestricted); - modules.Install(new Music(), "Music", FilterType.Unrestricted); + //modules.Install(new Music(), "Music", FilterType.Unrestricted); modules.Install(new Searches(), "Searches", FilterType.Unrestricted); - commands.CommandError += Commands_CommandError; - //run the bot client.Run(async () => { - Console.WriteLine("Trying to connect..."); - try - { - await client.Connect(c.Username, c.Password); - Console.WriteLine("Connected!"); - } - catch (Exception ex) { - Console.WriteLine(ex.ToString()); - } + await client.Connect(c.Username, c.Password); + Console.WriteLine("Connected!"); }); Console.WriteLine("Exiting..."); Console.ReadKey(); } - - private static void Commands_CommandError(object sender, CommandErrorEventArgs e) - { - if (e.Command != null) - client.SendMessage(e.Channel, Mention.User(e.User) + " Command failed. See help (-h)."); - } - - private static async void TryJoin(string code) - { - try - { - await NadekoBot.client.AcceptInvite(await NadekoBot.client.GetInvite(code)); - File.AppendAllText("invites.txt", code + "\n"); - } - catch (Exception) - { - StatsCollector.DEBUG_LOG("Failed to join " + code); - } - } } } \ No newline at end of file diff --git a/NadekoBot/NadekoBot.csproj b/NadekoBot/NadekoBot.csproj index a17ef546..72fab195 100644 --- a/NadekoBot/NadekoBot.csproj +++ b/NadekoBot/NadekoBot.csproj @@ -12,6 +12,21 @@ v4.5.2 512 true + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true AnyCPU @@ -36,6 +51,9 @@ E:\Ostalo\Discord.Net\src\Discord.Net.Modules.Net45\bin\Debug\Discord.Net.dll + + E:\Ostalo\Discord.Net\src\Discord.Net.Audio.Net5\bin\Debug\Discord.Net.Audio.dll + E:\Ostalo\Discord.Net\src\Discord.Net.Modules.Net45\bin\Debug\Discord.Net.Commands.dll @@ -81,6 +99,7 @@ + @@ -107,7 +126,18 @@ - + + + False + Microsoft .NET Framework 4.5.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + +