diff --git a/DisCatSharp.Tests/DisCatSharp.Tests.csproj b/DisCatSharp.Tests/DisCatSharp.Tests.csproj
deleted file mode 100644
index 9b4d7d0b5..000000000
--- a/DisCatSharp.Tests/DisCatSharp.Tests.csproj
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- net6.0
- enable
-
- false
-
-
-
-
-
-
-
- runtime; build; native; contentfiles; analyzers; buildtransitive
- all
-
-
- runtime; build; native; contentfiles; analyzers; buildtransitive
- all
-
-
-
-
-
-
-
-
diff --git a/DisCatSharp.Tests/EntityRegexTests/EventTests.cs b/DisCatSharp.Tests/EntityRegexTests/EventTests.cs
deleted file mode 100644
index 7bc73ea33..000000000
--- a/DisCatSharp.Tests/EntityRegexTests/EventTests.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-// This file is part of the DisCatSharp project, based off DSharpPlus.
-//
-// Copyright (c) 2021-2022 AITSYS
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-using DisCatSharp.Common.RegularExpressions;
-
-using Xunit;
-using Xunit.Abstractions;
-
-namespace DisCatSharp.Tests.EntityRegexTests;
-
-public class EventTests
-{
- private readonly ITestOutputHelper _output;
- public EventTests(ITestOutputHelper output)
- {
- this._output = output;
- }
-
- [Theory, ClassData(typeof(WebsiteGenerator))]
- void TestEventMatch(string website)
- {
- var evtn = $"{website}events/123/456";
- this._output.WriteLine($"Testing \"{evtn}\".");
- var match = DiscordRegEx.Event.Match(evtn);
- Assert.True(match.Success);
- Assert.Equal("123", match.Groups["guild"].Value);
- Assert.Equal("456", match.Groups["event"].Value);
- }
-
- private const string VALID_EVENT = "https://discord.com/events/123/456";
-
- [Fact]
- void TestValidEvent() => Assert.Matches(DiscordRegEx.Event, VALID_EVENT);
-
- [Theory, CombinatorialData]
- void TestInvalidEvents([CombinatorialValues(
- "",
- "_",
- "asd",
- $".{VALID_EVENT}",
- $"a{VALID_EVENT}",
- $"{VALID_EVENT}b",
- $"{VALID_EVENT}_",
- "https://discord.com/events/123/",
- "https://discord.com/events/123",
- "iscord.com/events/123/456",
- "https://discord.ru/events/123/456",
- "ftp://discord.com/events/123/456",
- "https://discord.com/stneve/123/456",
- "https://discord.com/events/1x23/456",
- "https://discord.com/events/123/4z56",
- "https://discord.com/events/12_3/456",
- "https://discord.com/events/123/45%6",
- "https://discord.comevents/123/456",
- "https:/discord.comevents/123/456",
- "https:/discord.com/events/123/456",
- "https//discord.com/events/123/456",
- "/discord.com/events/123/456"
- )] string evtn) =>
- Assert.DoesNotMatch(DiscordRegEx.Event, evtn);
-}
diff --git a/DisCatSharp.Tests/EntityRegexTests/WebsiteGenerator.cs b/DisCatSharp.Tests/EntityRegexTests/WebsiteGenerator.cs
deleted file mode 100644
index 817464170..000000000
--- a/DisCatSharp.Tests/EntityRegexTests/WebsiteGenerator.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-// This file is part of the DisCatSharp project, based off DSharpPlus.
-//
-// Copyright (c) 2021-2022 AITSYS
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Immutable;
-
-namespace DisCatSharp.Tests.EntityRegexTests;
-
-class WebsiteGenerator : IEnumerable
-{
- private static readonly ImmutableArray s_protocols = new[] { "", "http://", "https://" }.ToImmutableArray();
- private static readonly ImmutableArray s_subdomains = new[] { "", "www.", "ptb.", "canary." }.ToImmutableArray();
- private static readonly ImmutableArray s_domains = new[] { "discord", "discordapp" }.ToImmutableArray();
-
- public IEnumerator GetEnumerator()
- {
- foreach (var protocol in s_protocols)
- foreach (var subdomain in s_subdomains)
- foreach (var domain in s_domains)
- yield return new object[] { $"{protocol}{subdomain}{domain}.com/" };
- }
-
- IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
-}
diff --git a/DisCatSharp.Tests/EventHandlerTests/BasicEventHandlerTests.cs b/DisCatSharp.Tests/EventHandlerTests/BasicEventHandlerTests.cs
deleted file mode 100644
index 0550c5657..000000000
--- a/DisCatSharp.Tests/EventHandlerTests/BasicEventHandlerTests.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-// This file is part of the DisCatSharp project, based off DSharpPlus.
-//
-// Copyright (c) 2021-2022 AITSYS
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-using System;
-using System.Reflection;
-using System.Threading.Tasks;
-
-using DisCatSharp.EventArgs;
-
-using Xunit;
-
-namespace DisCatSharp.Tests.EventHandlerTests;
-
-public class BasicEventHandlerTests
-{
- [EventHandler]
- private class HandlerA { }
-
- [EventHandler]
- private class HandlerB
- {
- [Event]
- public Task MessageCreated(DiscordClient sender, MessageCreateEventArgs args) => Task.CompletedTask;
-
- [Event(DiscordEvent.MessageDeleted)]
- private static Task SomeEvent(DiscordClient sender, MessageDeleteEventArgs args) => Task.CompletedTask;
- }
-
- [EventHandler]
- private static class HandlerC
- {
- [Event]
- public static Task MessageCreated(DiscordClient sender, MessageCreateEventArgs args) => Task.CompletedTask;
- }
-
- public abstract class HandlerD
- {
- [Event]
- public Task ChannelCreated(DiscordClient sender, ChannelCreateEventArgs args) => Task.CompletedTask;
-
- [Event]
- public static Task ChannelDeleted(DiscordClient sender, ChannelDeleteEventArgs args) => Task.CompletedTask;
- }
-
- private class BadHandlerA
- {
- [Event]
- public int MessageCreated(object? obj, dynamic dynamic) => 1;
- }
-
- private abstract class BadHandlerB
- {
- [Event]
- private static Task ThisEventDoesNotExist() => Task.CompletedTask;
- }
-
- private readonly DiscordClient _client = new(new() { Token = "1" });
-
- [Fact]
- public void TestUtility()
- {
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- this._client.MessageCreated += (_, _) => Task.CompletedTask;
- Assert.True(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- Assert.Throws(() => this.IsEventRegistered(""));
- Assert.Throws(() => this.IsEventRegistered("ThisEventDoesNotExist"));
- }
-
- [Fact]
- public void TestUnregistrationWithoutRegistration()
- {
- this._client.UnregisterEventHandler();
- this._client.UnregisterEventHandlers(Assembly.GetExecutingAssembly());
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageDeleted)));
- }
-
- [Fact]
- public void TestSimpleRegistration()
- {
- this._client.RegisterEventHandler();
- Assert.True(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- Assert.True(this.IsEventRegistered(nameof(this._client.MessageDeleted)));
- this._client.UnregisterEventHandler();
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageDeleted)));
-
- this._client.RegisterEventHandler();
- Assert.False(this.IsEventRegistered(nameof(this._client.ChannelCreated)));
- Assert.True(this.IsEventRegistered(nameof(this._client.ChannelDeleted)));
- this._client.UnregisterEventHandler();
- Assert.False(this.IsEventRegistered(nameof(this._client.ChannelDeleted)));
- }
-
- [Fact]
- public void TestAssemblyRegistration()
- {
- this._client.RegisterEventHandlers(Assembly.GetExecutingAssembly());
- Assert.True(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- Assert.True(this.IsEventRegistered(nameof(this._client.MessageDeleted)));
- this._client.UnregisterEventHandlers(Assembly.GetExecutingAssembly());
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageCreated)));
- Assert.False(this.IsEventRegistered(nameof(this._client.MessageDeleted)));
- }
-
- [Fact]
- public void TestInvalidHandlers()
- {
- Assert.Throws(() => this._client.RegisterEventHandler());
- Assert.Throws(() => this._client.RegisterEventHandler());
- }
-
- private bool IsEventRegistered(string name) {
- // This is super hacky, but I think it should be good enough.
- if (name.Length == 0) { throw new ArgumentException("name mustn't be empty"); }
- name = "_" + char.ToLower(name[0]) + name.Substring(1);
- var asyncEvent = typeof(DiscordClient).GetField(name, BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(this._client);
- dynamic handlers = asyncEvent?.GetType().GetField("_handlers", BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(asyncEvent)
- ?? throw new ArgumentException($"Unknown event \"{name}\"");
- return handlers.Length != 0;
- }
-
-}
diff --git a/DisCatSharp.Tests/EventHandlerTests/EventsEnumIntegrityTests.cs b/DisCatSharp.Tests/EventHandlerTests/EventsEnumIntegrityTests.cs
deleted file mode 100644
index ca4ef9101..000000000
--- a/DisCatSharp.Tests/EventHandlerTests/EventsEnumIntegrityTests.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-// This file is part of the DisCatSharp project, based off DSharpPlus.
-//
-// Copyright (c) 2021-2022 AITSYS
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-using System.Linq;
-
-using Xunit;
-
-namespace DisCatSharp.Tests.EventHandlerTests;
-
-public class EventsEnumIntegrityTests
-{
- [Fact]
- void TestEnumToEvent()
- {
- foreach (var value in typeof(DiscordEvent).GetEnumValues())
- {
- Assert.NotNull(typeof(DiscordClient).GetEvent(value.ToString()!));
- }
- }
-
- [Fact]
- void TestEventToEnum()
- {
- var enumNames = typeof(DiscordEvent).GetEnumNames().ToHashSet();
- foreach (var evtn in typeof(DiscordClient).GetEvents())
- {
- Assert.Contains(evtn.Name, enumNames);
- }
- }
-}
diff --git a/DisCatSharp.Tests/EventHandlerTests/ServiceProviderTests.cs b/DisCatSharp.Tests/EventHandlerTests/ServiceProviderTests.cs
deleted file mode 100644
index 4f1ecc47b..000000000
--- a/DisCatSharp.Tests/EventHandlerTests/ServiceProviderTests.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-// This file is part of the DisCatSharp project, based off DSharpPlus.
-//
-// Copyright (c) 2021-2022 AITSYS
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-using System;
-
-using Microsoft.Extensions.DependencyInjection;
-
-using Xunit;
-
-namespace DisCatSharp.Tests.EventHandlerTests;
-
-public class ServiceProviderTests
-{
- private class Resource { }
-
- private class Handler
- {
- public Handler(Resource res) { }
- }
-
- [Fact]
- public void Test()
- {
- var poorClient = new DiscordClient(new() { Token = "1" });
- Assert.ThrowsAny(() => poorClient.RegisterEventHandler());
-
- var richClient = new DiscordClient(new()
- {
- Token = "2",
- ServiceProvider = new ServiceCollection().AddSingleton().BuildServiceProvider(),
- });
- richClient.RegisterEventHandler(); // May not throw.
- }
-}
diff --git a/DisCatSharp.Tests/OptionalTests.cs b/DisCatSharp.Tests/OptionalTests.cs
deleted file mode 100644
index f50ddcf72..000000000
--- a/DisCatSharp.Tests/OptionalTests.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-// This file is part of the DisCatSharp project, based off DSharpPlus.
-//
-// Copyright (c) 2021-2022 AITSYS
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-using DisCatSharp.Entities;
-
-using Xunit;
-
-namespace DisCatSharp.Tests;
-
-public class OptionalTests
-{
- class TestClass { }
-
- struct TestStruct { }
-
- [Fact]
- public void EqualityTests()
- {
- var c = new TestClass();
-
- var c1 = Optional.None;
- var c2 = Optional.Some(c);
- Assert.NotEqual(c1, c2);
-
- var c3 = Optional.Some(c);
- Assert.Equal(c2, c3);
-
- var c4 = Optional.Some(new TestClass());
- Assert.NotEqual(c3, c4);
-
- var s1 = Optional.None;
- var s2 = Optional.Some(new TestStruct());
- Assert.NotEqual(s1, s2);
-
- var s3 = Optional.Some(new TestStruct());
- Assert.Equal(s2, s3);
-
- var s4 = (Optional)Optional.None;
- Assert.Equal(s1, s4);
- }
-
- [Fact]
- public void FromNullableTests()
- {
- var c1 = Optional.Some(null);
- Assert.True(c1.HasValue);
- Assert.Null(c1.Value);
-
- var c2 = Optional.FromNullable(null);
- Assert.False(c2.HasValue);
-
- var c3 = Optional.FromNullable(new TestClass());
- Assert.True(c3.HasValue);
- Assert.NotNull(c3.Value);
- }
-
- [Fact]
- public void MapTests()
- {
- var c1 = Optional.None;
- var s1 = c1.Map(x => new TestStruct());
- Assert.False(s1.HasValue);
-
- c1 = Optional.Some(new TestClass());
- s1 = c1.Map(x => new TestStruct());
- Assert.True(s1.HasValue);
-
- var mapped = false;
- T Map(T o)
- {
- mapped = true;
- return o;
- }
-
- c1 = null;
- var c2 = c1.MapOrNull(Map);
- Assert.False(mapped);
- Assert.True(c2.HasValue);
- Assert.Null((TestClass)c2);
-
- c1 = new TestClass();
- c2 = c1.MapOrNull(Map);
- Assert.True(mapped);
- Assert.True(c2.HasValue);
- Assert.Equal(c1, c2);
- Assert.Equal(c1.Value, c2.Value);
- }
-}
diff --git a/DisCatSharp.sln b/DisCatSharp.sln
index 683357d42..0aba3f024 100644
--- a/DisCatSharp.sln
+++ b/DisCatSharp.sln
@@ -1,161 +1,151 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.31911.260
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp", "DisCatSharp\DisCatSharp.csproj", "{EB3D8310-DFAD-4295-97F9-82E253647583}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.VoiceNext", "DisCatSharp.VoiceNext\DisCatSharp.VoiceNext.csproj", "{FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4255B64D-92EC-46B3-BC3B-ED2C3A8073EE}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.gitattributes = .gitattributes
.gitignore = .gitignore
BUILDING.md = BUILDING.md
CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
CONTRIBUTING.md = CONTRIBUTING.md
LICENSE.md = LICENSE.md
README.md = README.md
SECURITY.md = SECURITY.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.CommandsNext", "DisCatSharp.CommandsNext\DisCatSharp.CommandsNext.csproj", "{C8ED55FB-E028-468D-955F-1534C20274EF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Interactivity", "DisCatSharp.Interactivity\DisCatSharp.Interactivity.csproj", "{DD32BEC3-0189-479F-86DC-CCF95E5634A9}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F953F5D0-F0C9-41E6-ADBF-60A76D295899}"
ProjectSection(SolutionItems) = preProject
.nuget\NuGet.config = .nuget\NuGet.config
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items", "{84464D70-687B-40A8-836D-C4F737698969}"
ProjectSection(SolutionItems) = preProject
appveyor.yml = appveyor.yml
.github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml
.github\dependabot.yml = .github\dependabot.yml
DisCatSharp.targets = DisCatSharp.targets
docs-oneclick-rebuild.ps1 = docs-oneclick-rebuild.ps1
.github\workflows\docs.yml = .github\workflows\docs.yml
.github\workflows\dotnet.yml = .github\workflows\dotnet.yml
Library.targets = Library.targets
NuGet.targets = NuGet.targets
oneclick-rebuild.ps1 = oneclick-rebuild.ps1
Package.targets = Package.targets
rebuild-all.ps1 = rebuild-all.ps1
rebuild-docs.ps1 = rebuild-docs.ps1
rebuild-lib.ps1 = rebuild-lib.ps1
Version.targets = Version.targets
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{430C28D8-5F85-4D6E-AA68-211549435245}"
ProjectSection(SolutionItems) = preProject
.github\ISSUE_TEMPLATE\bug_report.md = .github\ISSUE_TEMPLATE\bug_report.md
.github\CODEOWNERS = .github\CODEOWNERS
.github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml
.github\workflows\docs-preview.yml = .github\workflows\docs-preview.yml
.github\workflows\docs.yml = .github\workflows\docs.yml
.github\workflows\dotnet.yml = .github\workflows\dotnet.yml
.github\ISSUE_TEMPLATE\feature_request.md = .github\ISSUE_TEMPLATE\feature_request.md
.github\FUNDING.yml = .github\FUNDING.yml
.github\pull_request_template.md = .github\pull_request_template.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Lavalink", "DisCatSharp.Lavalink\DisCatSharp.Lavalink.csproj", "{A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.VoiceNext.Natives", "DisCatSharp.VoiceNext.Natives\DisCatSharp.VoiceNext.Natives.csproj", "{BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Common", "DisCatSharp.Common\DisCatSharp.Common.csproj", "{CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.ApplicationCommands", "DisCatSharp.ApplicationCommands\DisCatSharp.ApplicationCommands.csproj", "{AD530FD0-523C-4DE7-9AF6-B9A3785492C2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Configuration", "DisCatSharp.Configuration\DisCatSharp.Configuration.csproj", "{603287D3-1EF2-47F1-A611-C7F25869DE14}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Configuration.Tests", "DisCatSharp.Configuration.Tests\DisCatSharp.Configuration.Tests.csproj", "{E15E88B4-63AD-42DE-B685-D31697C62194}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Hosting", "DisCatSharp.Hosting\DisCatSharp.Hosting.csproj", "{72CCE5D5-926B-432A-876A-065FA2BC9B7B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Hosting.Tests", "DisCatSharp.Hosting.Tests\DisCatSharp.Hosting.Tests.csproj", "{D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Hosting.DependencyInjection", "DisCatSharp.Hosting.DependencyInjection\DisCatSharp.Hosting.DependencyInjection.csproj", "{2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{B15E40E0-03FD-4852-B19B-2C50BCC67704}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DisCatSharp.Tests", "DisCatSharp.Tests\DisCatSharp.Tests.csproj", "{1407FAE8-DAC1-4E89-AA15-4E4592CCC8A0}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EB3D8310-DFAD-4295-97F9-82E253647583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB3D8310-DFAD-4295-97F9-82E253647583}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB3D8310-DFAD-4295-97F9-82E253647583}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB3D8310-DFAD-4295-97F9-82E253647583}.Release|Any CPU.Build.0 = Release|Any CPU
{FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB6B9EE9-65FB-4DFB-8D51-06F0BE6C1BA5}.Release|Any CPU.Build.0 = Release|Any CPU
{C8ED55FB-E028-468D-955F-1534C20274EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8ED55FB-E028-468D-955F-1534C20274EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8ED55FB-E028-468D-955F-1534C20274EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8ED55FB-E028-468D-955F-1534C20274EF}.Release|Any CPU.Build.0 = Release|Any CPU
{DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DD32BEC3-0189-479F-86DC-CCF95E5634A9}.Release|Any CPU.Build.0 = Release|Any CPU
{A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8B8FB09-C6AF-4F28-89B8-B53EE0DCE6E5}.Release|Any CPU.Build.0 = Release|Any CPU
{BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BEC47B41-71E4-41D1-A4F9-BB7C56A1B82B}.Release|Any CPU.Build.0 = Release|Any CPU
{CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CD84A5C7-C7FF-48CA-B23D-FA726CF80E09}.Release|Any CPU.Build.0 = Release|Any CPU
{AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AD530FD0-523C-4DE7-9AF6-B9A3785492C2}.Release|Any CPU.Build.0 = Release|Any CPU
{603287D3-1EF2-47F1-A611-C7F25869DE14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{603287D3-1EF2-47F1-A611-C7F25869DE14}.Debug|Any CPU.Build.0 = Debug|Any CPU
{603287D3-1EF2-47F1-A611-C7F25869DE14}.Release|Any CPU.ActiveCfg = Release|Any CPU
{603287D3-1EF2-47F1-A611-C7F25869DE14}.Release|Any CPU.Build.0 = Release|Any CPU
{E15E88B4-63AD-42DE-B685-D31697C62194}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E15E88B4-63AD-42DE-B685-D31697C62194}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E15E88B4-63AD-42DE-B685-D31697C62194}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E15E88B4-63AD-42DE-B685-D31697C62194}.Release|Any CPU.Build.0 = Release|Any CPU
{72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72CCE5D5-926B-432A-876A-065FA2BC9B7B}.Release|Any CPU.Build.0 = Release|Any CPU
{D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94}.Release|Any CPU.Build.0 = Release|Any CPU
{2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D67D1DD-E5B2-40C7-80E2-54D63730E7F0}.Release|Any CPU.Build.0 = Release|Any CPU
{1407FAE8-DAC1-4E89-AA15-4E4592CCC8A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1407FAE8-DAC1-4E89-AA15-4E4592CCC8A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1407FAE8-DAC1-4E89-AA15-4E4592CCC8A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1407FAE8-DAC1-4E89-AA15-4E4592CCC8A0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {430C28D8-5F85-4D6E-AA68-211549435245} = {4255B64D-92EC-46B3-BC3B-ED2C3A8073EE}
- {E15E88B4-63AD-42DE-B685-D31697C62194} = {B15E40E0-03FD-4852-B19B-2C50BCC67704}
- {D02B598A-F0C9-4A8C-B8DE-7C0BAC8C9B94} = {B15E40E0-03FD-4852-B19B-2C50BCC67704}
- {1407FAE8-DAC1-4E89-AA15-4E4592CCC8A0} = {B15E40E0-03FD-4852-B19B-2C50BCC67704}
- EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {23F3A981-51B8-4285-A38C-3267F1D25FE7}
EndGlobalSection
EndGlobal