From b13f1ace7ebcb30eebaa597ef41a57c1abefa132 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Thu, 16 May 2024 10:20:31 +0200 Subject: [PATCH] overhaul provider structure --- .../OwnChar.Data.ClientDataProvider.csproj | 13 ------------- OwnChar.Data.ClientDataProvider/Plugin.cs | 7 ------- ...nChar.Server.Data.ServerDataProvider.csproj | 14 -------------- .../Plugin.cs | 7 ------- OwnChar.Server.sln | 18 ------------------ OwnChar.Server/Commands/CmdSave.cs | 17 +++++++++++++++++ OwnChar.Server/Commands/IServerCommand.cs | 15 +++++++++++++++ .../Data/ClientServerDataProvider.cs | 17 +++++++++++++++++ OwnChar.Server/Data/IServerDataProvider.cs | 9 ++++++++- .../Network/NetworkHandler.cs | 4 ++-- .../Network/NetworkManager.cs | 4 ++-- OwnChar.Server/OwnChar.Server.csproj | 4 ---- 12 files changed, 61 insertions(+), 68 deletions(-) delete mode 100644 OwnChar.Data.ClientDataProvider/OwnChar.Data.ClientDataProvider.csproj delete mode 100644 OwnChar.Data.ClientDataProvider/Plugin.cs delete mode 100644 OwnChar.Server.Data.ServerDataProvider/OwnChar.Server.Data.ServerDataProvider.csproj delete mode 100644 OwnChar.Server.Data.ServerDataProvider/Plugin.cs create mode 100644 OwnChar.Server/Commands/CmdSave.cs create mode 100644 OwnChar.Server/Commands/IServerCommand.cs create mode 100644 OwnChar.Server/Data/ClientServerDataProvider.cs rename OwnChar.Data.ClientDataProvider/DataProvider.cs => OwnChar.Server/Network/NetworkHandler.cs (59%) rename OwnChar.Server.Data.ServerDataProvider/DataProvider.cs => OwnChar.Server/Network/NetworkManager.cs (57%) diff --git a/OwnChar.Data.ClientDataProvider/OwnChar.Data.ClientDataProvider.csproj b/OwnChar.Data.ClientDataProvider/OwnChar.Data.ClientDataProvider.csproj deleted file mode 100644 index a96b4c1..0000000 --- a/OwnChar.Data.ClientDataProvider/OwnChar.Data.ClientDataProvider.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - diff --git a/OwnChar.Data.ClientDataProvider/Plugin.cs b/OwnChar.Data.ClientDataProvider/Plugin.cs deleted file mode 100644 index 0fcb2eb..0000000 --- a/OwnChar.Data.ClientDataProvider/Plugin.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace OwnChar.Data.ClientDataProvider -{ - public class Plugin - { - - } -} diff --git a/OwnChar.Server.Data.ServerDataProvider/OwnChar.Server.Data.ServerDataProvider.csproj b/OwnChar.Server.Data.ServerDataProvider/OwnChar.Server.Data.ServerDataProvider.csproj deleted file mode 100644 index 243fc8f..0000000 --- a/OwnChar.Server.Data.ServerDataProvider/OwnChar.Server.Data.ServerDataProvider.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - - diff --git a/OwnChar.Server.Data.ServerDataProvider/Plugin.cs b/OwnChar.Server.Data.ServerDataProvider/Plugin.cs deleted file mode 100644 index cad6fa9..0000000 --- a/OwnChar.Server.Data.ServerDataProvider/Plugin.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace OwnChar.Server.Data.ServerDataProvider -{ - public class Plugin - { - - } -} diff --git a/OwnChar.Server.sln b/OwnChar.Server.sln index 8a708aa..d387317 100644 --- a/OwnChar.Server.sln +++ b/OwnChar.Server.sln @@ -5,12 +5,6 @@ VisualStudioVersion = 17.9.34714.143 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OwnChar.Server", "OwnChar.Server\OwnChar.Server.csproj", "{9EEFF2B5-270E-4DB4-8ED8-DEDDCDF0035C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OwnChar.Data.ClientDataProvider", "OwnChar.Data.ClientDataProvider\OwnChar.Data.ClientDataProvider.csproj", "{B5F6CB0B-1624-4C98-BB7C-FB762EA07257}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OwnChar.Server.Data.ServerDataProvider", "OwnChar.Server.Data.ServerDataProvider\OwnChar.Server.Data.ServerDataProvider.csproj", "{DE1EFB56-A657-4B90-9E88-721516D3F9A5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProvider", "DataProvider", "{5B7E538D-2487-49D5-BFD9-EBD9CD6C07F4}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OwnChar", "OwnChar\OwnChar\OwnChar.csproj", "{BAD88A97-650D-493B-BAC3-3510B6F354B6}" EndProject Global @@ -23,14 +17,6 @@ Global {9EEFF2B5-270E-4DB4-8ED8-DEDDCDF0035C}.Debug|Any CPU.Build.0 = Debug|Any CPU {9EEFF2B5-270E-4DB4-8ED8-DEDDCDF0035C}.Release|Any CPU.ActiveCfg = Release|Any CPU {9EEFF2B5-270E-4DB4-8ED8-DEDDCDF0035C}.Release|Any CPU.Build.0 = Release|Any CPU - {B5F6CB0B-1624-4C98-BB7C-FB762EA07257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5F6CB0B-1624-4C98-BB7C-FB762EA07257}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5F6CB0B-1624-4C98-BB7C-FB762EA07257}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5F6CB0B-1624-4C98-BB7C-FB762EA07257}.Release|Any CPU.Build.0 = Release|Any CPU - {DE1EFB56-A657-4B90-9E88-721516D3F9A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE1EFB56-A657-4B90-9E88-721516D3F9A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE1EFB56-A657-4B90-9E88-721516D3F9A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE1EFB56-A657-4B90-9E88-721516D3F9A5}.Release|Any CPU.Build.0 = Release|Any CPU {BAD88A97-650D-493B-BAC3-3510B6F354B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BAD88A97-650D-493B-BAC3-3510B6F354B6}.Debug|Any CPU.Build.0 = Debug|Any CPU {BAD88A97-650D-493B-BAC3-3510B6F354B6}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -39,10 +25,6 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B5F6CB0B-1624-4C98-BB7C-FB762EA07257} = {5B7E538D-2487-49D5-BFD9-EBD9CD6C07F4} - {DE1EFB56-A657-4B90-9E88-721516D3F9A5} = {5B7E538D-2487-49D5-BFD9-EBD9CD6C07F4} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D0794B9A-6A8C-469B-AADA-B8932F72E62C} EndGlobalSection diff --git a/OwnChar.Server/Commands/CmdSave.cs b/OwnChar.Server/Commands/CmdSave.cs new file mode 100644 index 0000000..0edc0a3 --- /dev/null +++ b/OwnChar.Server/Commands/CmdSave.cs @@ -0,0 +1,17 @@ +using Pilz.Plugins.Advanced; + +namespace OwnChar.Server.Commands +{ + public class CmdSave() : PluginFunction(IServerCommand.FeatureCode, "ownchar.save"), IPluginFeatureProvider, IServerCommand + { + public static CmdSave Instance { get; } = new(); + + public string Command => "save"; + public string Description => "Saves the current state to disk."; + + protected override object? ExecuteFunction(PluginFunctionParameter? @params) + { + return this; + } + } +} diff --git a/OwnChar.Server/Commands/IServerCommand.cs b/OwnChar.Server/Commands/IServerCommand.cs new file mode 100644 index 0000000..087c95e --- /dev/null +++ b/OwnChar.Server/Commands/IServerCommand.cs @@ -0,0 +1,15 @@ +using Pilz.Plugins.Advanced; + +namespace OwnChar.Server.Commands +{ + public interface IServerCommand + { + // Shared + public const string FeatureCode = "ownchar.server.command"; + public IEnumerable Commands => PluginFeatureController.Instance.Features.Get(FeatureCode).Cast().Select(f => (IServerCommand)f.Execute()!); + + // Interface + public string Command { get; } + public string Description { get; } + } +} diff --git a/OwnChar.Server/Data/ClientServerDataProvider.cs b/OwnChar.Server/Data/ClientServerDataProvider.cs new file mode 100644 index 0000000..d96c660 --- /dev/null +++ b/OwnChar.Server/Data/ClientServerDataProvider.cs @@ -0,0 +1,17 @@ +using Pilz.Plugins.Advanced; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OwnChar.Server.Data +{ + public class ClientServerDataProvider() : PluginFunction(IServerDataProvider.FeatureCode, "ownchar.clientserver"), IServerDataProvider + { + protected override object? ExecuteFunction(PluginFunctionParameter? @params) + { + return this; + } + } +} diff --git a/OwnChar.Server/Data/IServerDataProvider.cs b/OwnChar.Server/Data/IServerDataProvider.cs index 9f5cec3..abedd03 100644 --- a/OwnChar.Server/Data/IServerDataProvider.cs +++ b/OwnChar.Server/Data/IServerDataProvider.cs @@ -1,4 +1,5 @@ -using System; +using Pilz.Plugins.Advanced; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,5 +9,11 @@ namespace OwnChar.Server.Data { public interface IServerDataProvider { + // Shared + public const string FeatureCode = "ownchar.server.dataprovider"; + public IEnumerable DataProviders => PluginFeatureController.Instance.Features.Get(FeatureCode).Cast().Select(f => (IServerDataProvider)f.Execute()!); + + // Interface + // ... } } diff --git a/OwnChar.Data.ClientDataProvider/DataProvider.cs b/OwnChar.Server/Network/NetworkHandler.cs similarity index 59% rename from OwnChar.Data.ClientDataProvider/DataProvider.cs rename to OwnChar.Server/Network/NetworkHandler.cs index 6b44b4e..62746c6 100644 --- a/OwnChar.Data.ClientDataProvider/DataProvider.cs +++ b/OwnChar.Server/Network/NetworkHandler.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace OwnChar.Data.ClientDataProvider +namespace OwnChar.Server.Network { - public class DataProvider : ILocalDataProvider + public class NetworkHandler { } } diff --git a/OwnChar.Server.Data.ServerDataProvider/DataProvider.cs b/OwnChar.Server/Network/NetworkManager.cs similarity index 57% rename from OwnChar.Server.Data.ServerDataProvider/DataProvider.cs rename to OwnChar.Server/Network/NetworkManager.cs index 8116781..83860d6 100644 --- a/OwnChar.Server.Data.ServerDataProvider/DataProvider.cs +++ b/OwnChar.Server/Network/NetworkManager.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace OwnChar.Server.Data.ServerDataProvider +namespace OwnChar.Server.Network { - public class DataProvider : IServerDataProvider + public class NetworkManager { } } diff --git a/OwnChar.Server/OwnChar.Server.csproj b/OwnChar.Server/OwnChar.Server.csproj index 01f02b9..2b56a5b 100644 --- a/OwnChar.Server/OwnChar.Server.csproj +++ b/OwnChar.Server/OwnChar.Server.csproj @@ -12,8 +12,4 @@ - - - -