diff --git a/NadekoBot.sln b/NadekoBot.sln
index e0ca13c78..f26c7cd56 100644
--- a/NadekoBot.sln
+++ b/NadekoBot.sln
@@ -35,6 +35,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Common", "src\Nadeko
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Econ", "src\Nadeko.Econ\Nadeko.Econ.csproj", "{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Cache", "src\Nadeko.Cache\Nadeko.Cache.csproj", "{7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NadekoBot.Modules.Expresssions", "src\NadekoBot.Modules.Expresssions\NadekoBot.Modules.Expresssions.csproj", "{92E239B9-C230-4475-9506-BED20174FD20}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -96,6 +100,18 @@ Global
{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}.GlobalNadeko|Any CPU.ActiveCfg = Debug|Any CPU
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05}.Release|Any CPU.Build.0 = Release|Any CPU
+ {92E239B9-C230-4475-9506-BED20174FD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {92E239B9-C230-4475-9506-BED20174FD20}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {92E239B9-C230-4475-9506-BED20174FD20}.GlobalNadeko|Any CPU.ActiveCfg = Debug|Any CPU
+ {92E239B9-C230-4475-9506-BED20174FD20}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
+ {92E239B9-C230-4475-9506-BED20174FD20}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {92E239B9-C230-4475-9506-BED20174FD20}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -111,6 +127,8 @@ Global
{E685977E-31A4-46F4-A5D7-4E3E39E82E43} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
{A6022F5F-A764-4D3F-847B-36F0391FF659} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
+ {7CD45BAA-72BF-466E-AFD8-E1224A6DDC05} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
+ {92E239B9-C230-4475-9506-BED20174FD20} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5F3F555C-855F-4BE8-B526-D062D3E8ACA4}
diff --git a/src/Nadeko.Cache/Nadeko.Cache.csproj b/src/Nadeko.Cache/Nadeko.Cache.csproj
new file mode 100644
index 000000000..b4348b812
--- /dev/null
+++ b/src/Nadeko.Cache/Nadeko.Cache.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/src/NadekoBot/Common/Cache/BotCacheExtensions.cs b/src/Nadeko.Common/Cache/BotCacheExtensions.cs
similarity index 98%
rename from src/NadekoBot/Common/Cache/BotCacheExtensions.cs
rename to src/Nadeko.Common/Cache/BotCacheExtensions.cs
index 875188ee8..d69d7137d 100644
--- a/src/NadekoBot/Common/Cache/BotCacheExtensions.cs
+++ b/src/Nadeko.Common/Cache/BotCacheExtensions.cs
@@ -1,7 +1,7 @@
using OneOf;
using OneOf.Types;
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public static class BotCacheExtensions
{
diff --git a/src/NadekoBot/Common/Cache/IBotCache.cs b/src/Nadeko.Common/Cache/IBotCache.cs
similarity index 98%
rename from src/NadekoBot/Common/Cache/IBotCache.cs
rename to src/Nadeko.Common/Cache/IBotCache.cs
index 35eee7ed7..769b7670f 100644
--- a/src/NadekoBot/Common/Cache/IBotCache.cs
+++ b/src/Nadeko.Common/Cache/IBotCache.cs
@@ -1,7 +1,7 @@
using OneOf;
using OneOf.Types;
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public interface IBotCache
{
diff --git a/src/NadekoBot/Common/Cache/MemoryBotCache.cs b/src/Nadeko.Common/Cache/MemoryBotCache.cs
similarity index 98%
rename from src/NadekoBot/Common/Cache/MemoryBotCache.cs
rename to src/Nadeko.Common/Cache/MemoryBotCache.cs
index 4d8ebb4c0..73d97d586 100644
--- a/src/NadekoBot/Common/Cache/MemoryBotCache.cs
+++ b/src/Nadeko.Common/Cache/MemoryBotCache.cs
@@ -4,7 +4,7 @@ using OneOf.Types;
// ReSharper disable InconsistentlySynchronizedField
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public sealed class MemoryBotCache : IBotCache
{
diff --git a/src/NadekoBot/Common/OneOfExtensions.cs b/src/Nadeko.Common/Extensions/OneOfExtensions.cs
similarity index 87%
rename from src/NadekoBot/Common/OneOfExtensions.cs
rename to src/Nadeko.Common/Extensions/OneOfExtensions.cs
index 187a43a7f..0e0e87521 100644
--- a/src/NadekoBot/Common/OneOfExtensions.cs
+++ b/src/Nadeko.Common/Extensions/OneOfExtensions.cs
@@ -1,7 +1,7 @@
using OneOf.Types;
using OneOf;
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public static class OneOfExtensions
{
diff --git a/src/Nadeko.Common/Nadeko.Common.csproj b/src/Nadeko.Common/Nadeko.Common.csproj
index 1aa7abe0d..b15687d62 100644
--- a/src/Nadeko.Common/Nadeko.Common.csproj
+++ b/src/Nadeko.Common/Nadeko.Common.csproj
@@ -7,7 +7,9 @@
+
+
diff --git a/src/NadekoBot/Common/PubSub/EventPubSub.cs b/src/Nadeko.Common/PubSub/EventPubSub.cs
similarity index 99%
rename from src/NadekoBot/Common/PubSub/EventPubSub.cs
rename to src/Nadeko.Common/PubSub/EventPubSub.cs
index 1e578bfb4..bcb2bab5e 100644
--- a/src/NadekoBot/Common/PubSub/EventPubSub.cs
+++ b/src/Nadeko.Common/PubSub/EventPubSub.cs
@@ -1,4 +1,4 @@
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public class EventPubSub : IPubSub
{
diff --git a/src/NadekoBot/Common/PubSub/IPubSub.cs b/src/Nadeko.Common/PubSub/IPubSub.cs
similarity index 89%
rename from src/NadekoBot/Common/PubSub/IPubSub.cs
rename to src/Nadeko.Common/PubSub/IPubSub.cs
index 2d66bf6d7..09262fd85 100644
--- a/src/NadekoBot/Common/PubSub/IPubSub.cs
+++ b/src/Nadeko.Common/PubSub/IPubSub.cs
@@ -1,4 +1,4 @@
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public interface IPubSub
{
diff --git a/src/NadekoBot/Common/PubSub/ISeria.cs b/src/Nadeko.Common/PubSub/ISeria.cs
similarity index 77%
rename from src/NadekoBot/Common/PubSub/ISeria.cs
rename to src/Nadeko.Common/PubSub/ISeria.cs
index 4847327bb..d5d925e5a 100644
--- a/src/NadekoBot/Common/PubSub/ISeria.cs
+++ b/src/Nadeko.Common/PubSub/ISeria.cs
@@ -1,4 +1,4 @@
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public interface ISeria
{
diff --git a/src/NadekoBot/Common/PubSub/TypedKey.cs b/src/Nadeko.Common/TypedKey.cs
similarity index 96%
rename from src/NadekoBot/Common/PubSub/TypedKey.cs
rename to src/Nadeko.Common/TypedKey.cs
index 116df467c..0d72a2ff5 100644
--- a/src/NadekoBot/Common/PubSub/TypedKey.cs
+++ b/src/Nadeko.Common/TypedKey.cs
@@ -1,4 +1,4 @@
-namespace NadekoBot.Common;
+namespace Nadeko.Common;
public readonly struct TypedKey
{
diff --git a/src/NadekoBot/Modules/Expressions/ExportedExpr.cs b/src/NadekoBot.Modules.Expresssions/ExportedExpr.cs
similarity index 100%
rename from src/NadekoBot/Modules/Expressions/ExportedExpr.cs
rename to src/NadekoBot.Modules.Expresssions/ExportedExpr.cs
diff --git a/src/NadekoBot/Modules/Expressions/ExprField.cs b/src/NadekoBot.Modules.Expresssions/ExprField.cs
similarity index 100%
rename from src/NadekoBot/Modules/Expressions/ExprField.cs
rename to src/NadekoBot.Modules.Expresssions/ExprField.cs
diff --git a/src/NadekoBot.Modules.Expresssions/NadekoBot.Modules.Expresssions.csproj b/src/NadekoBot.Modules.Expresssions/NadekoBot.Modules.Expresssions.csproj
new file mode 100644
index 000000000..6836c6808
--- /dev/null
+++ b/src/NadekoBot.Modules.Expresssions/NadekoBot.Modules.Expresssions.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
diff --git a/src/NadekoBot/Modules/Expressions/NadekoExpressionExtensions.cs b/src/NadekoBot.Modules.Expresssions/NadekoExpressionExtensions.cs
similarity index 100%
rename from src/NadekoBot/Modules/Expressions/NadekoExpressionExtensions.cs
rename to src/NadekoBot.Modules.Expresssions/NadekoExpressionExtensions.cs
diff --git a/src/NadekoBot/Modules/Expressions/NadekoExpressions.cs b/src/NadekoBot.Modules.Expresssions/NadekoExpressions.cs
similarity index 100%
rename from src/NadekoBot/Modules/Expressions/NadekoExpressions.cs
rename to src/NadekoBot.Modules.Expresssions/NadekoExpressions.cs
diff --git a/src/NadekoBot/Modules/Expressions/NadekoExpressionsService.cs b/src/NadekoBot.Modules.Expresssions/NadekoExpressionsService.cs
similarity index 100%
rename from src/NadekoBot/Modules/Expressions/NadekoExpressionsService.cs
rename to src/NadekoBot.Modules.Expresssions/NadekoExpressionsService.cs
diff --git a/src/NadekoBot.Tests/PubSubTests.cs b/src/NadekoBot.Tests/PubSubTests.cs
index 8dcd83c95..4870e130e 100644
--- a/src/NadekoBot.Tests/PubSubTests.cs
+++ b/src/NadekoBot.Tests/PubSubTests.cs
@@ -1,4 +1,5 @@
using System.Threading.Tasks;
+using Nadeko.Common;
using NadekoBot.Common;
using NUnit.Framework;
using NUnit.Framework.Internal;
diff --git a/src/NadekoBot/NadekoBot.csproj b/src/NadekoBot/NadekoBot.csproj
index 78e69db50..f998acd33 100644
--- a/src/NadekoBot/NadekoBot.csproj
+++ b/src/NadekoBot/NadekoBot.csproj
@@ -108,6 +108,7 @@
+
@@ -139,6 +140,9 @@
PreserveNewest
+
+
+
5.0.0
diff --git a/src/ayu/Ayu.Discord.Voice/LibOpus.cs b/src/ayu/Ayu.Discord.Voice/LibOpus.cs
index cab50de88..f9bd10f83 100644
--- a/src/ayu/Ayu.Discord.Voice/LibOpus.cs
+++ b/src/ayu/Ayu.Discord.Voice/LibOpus.cs
@@ -5,7 +5,7 @@ namespace Ayu.Discord.Voice
{
internal static unsafe class LibOpus
{
- public const string OPUS = "opus";
+ public const string OPUS = "data/lib/opus";
[DllImport(OPUS, EntryPoint = "opus_encoder_create", CallingConvention = CallingConvention.Cdecl)]
internal static extern IntPtr CreateEncoder(int Fs, int channels, int application, out OpusError error);
diff --git a/src/ayu/Ayu.Discord.Voice/LibSodium.cs b/src/ayu/Ayu.Discord.Voice/LibSodium.cs
index a53554c2f..5bf43c095 100644
--- a/src/ayu/Ayu.Discord.Voice/LibSodium.cs
+++ b/src/ayu/Ayu.Discord.Voice/LibSodium.cs
@@ -5,7 +5,7 @@ namespace Ayu.Discord.Voice
{
internal static unsafe class Sodium
{
- private const string SODIUM = "libsodium";
+ private const string SODIUM = "data/lib/libsodium";
[DllImport(SODIUM, EntryPoint = "crypto_secretbox_easy", CallingConvention = CallingConvention.Cdecl)]
private static extern int SecretBoxEasy(byte* output, byte* input, long inputLength, byte* nonce, byte* secret);