From 144aece6d27846838c000a79fe4427b21c73ec50 Mon Sep 17 00:00:00 2001 From: Pavel Penev Date: Wed, 22 Sep 2021 12:26:06 +0300 Subject: [PATCH 1/3] Restructured the project Split the project into three projects and updated to .NET 5.0. This commit is not supposed to introduce any functional changes. Those will come with later commits. --- .../EventHandlers}/ICustomMessageHandler.cs | 4 +- .../EventHandlers}/ILogEventHandler.cs | 2 +- .../EventHandlers}/IMessageEventHandler.cs | 2 +- .../EventHandlers}/IReactionEventHandler.cs | 2 +- .../Orabot.Core.Abstractions.csproj | 11 +++ {Orabot => Orabot.Core}/Bot.cs | 6 +- .../ServiceProviderExtensions.cs | 53 ++++++++++++++ .../BaseAttachmentMessageHandler.cs | 3 +- .../LogFileAttachmentMessageHandler.cs | 4 +- .../ReplayFileAttachmentMessageHandler.cs | 6 +- .../BaseCommandMessageHandler.cs | 3 +- .../BaseLinkParsingMessageHandler.cs | 3 +- ...enRaResourceCenterMapLinkMessageHandler.cs | 4 +- .../BaseModTimerMessageHandler.cs | 3 +- .../BaseNumberParsingMessageHandler.cs | 7 +- .../BaseGitHubIssueNumberMessageHandler.cs | 4 +- .../OpenRaGitHubIssueNumberMessageHandler.cs | 2 +- ...RaModSdkGitHubIssueNumberMessageHandler.cs | 2 +- ...penRaRa2GitHubIssueNumberMessageHandler.cs | 2 +- ...penRaWebGitHubIssueNumberMessageHandler.cs | 2 +- .../OrabotGitHubIssueNumberMessageHandler.cs | 2 +- ...RaResourceCenterMapNumberMessageHandler.cs | 4 +- .../StackTraceMessageHandler.cs | 5 +- .../EventHandlers/LogEventHandler.cs | 4 +- .../EventHandlers/MessageEventHandler.cs | 5 +- .../RoleAssignmentReactionEventHandler.cs | 6 +- .../Extensions/CommandInfoExtensions.cs | 2 +- .../Modules/GeneralModule.cs | 4 +- .../Modules/OpenRaGeneralModule.cs | 2 +- .../Modules/OpenRaLuaApiModule.cs | 2 +- .../Modules/OpenRaTraitsModule.cs | 2 +- .../Modules/OpenRaWeaponsModule.cs | 2 +- .../Modules/QuoteModule.cs | 6 +- .../Modules/RoleManagementModule.cs | 2 +- .../Objects/DiscordMessageIdentifier.cs | 2 +- .../Objects/GitHub/GitHubIssueResponse.cs | 2 +- .../GitHub/GitHubPullRequestResponse.cs | 2 +- .../Objects/GitHub/Label.cs | 2 +- .../Objects/GitHub/User.cs | 2 +- .../Objects/OpenRaReplay/PlayerData.cs | 6 +- .../Objects/OpenRaReplay/ReplayMetadata.cs | 6 +- .../Objects/OpenRaResourceCenter/MapInfo.cs | 2 +- .../Orabot.Core.csproj | 10 +-- .../Services/QuotingService.cs | 2 +- .../AttachmentLogFileToMessageTransformer.cs | 2 +- ...ResourceCenterMapLinkToEmbedTransformer.cs | 4 +- ...UtilityReplayMetadataToEmbedTransformer.cs | 6 +- ...hmentReplayToUtilityMetadataTransformer.cs | 4 +- .../TypeReaders/BaseTypeReader.cs | 2 +- .../DiscordMessageIdentifierTypeReader.cs | 4 +- .../TypeReaders/UriTypeReader.cs | 2 +- .../App.config | 0 .../Orabot.Hosts.ConsoleHost.csproj | 16 +++++ Orabot.Hosts.ConsoleHost/Program.cs | 43 +++++++++++ .../PublishProfiles/FolderProfile.pubxml | 7 +- Orabot.sln | 22 ++++-- Orabot/Program.cs | 71 ------------------- 57 files changed, 228 insertions(+), 164 deletions(-) rename {Orabot/EventHandlers/CustomMessageHandlers => Orabot.Core.Abstractions/EventHandlers}/ICustomMessageHandler.cs (57%) rename {Orabot/EventHandlers/Abstraction => Orabot.Core.Abstractions/EventHandlers}/ILogEventHandler.cs (71%) rename {Orabot/EventHandlers/Abstraction => Orabot.Core.Abstractions/EventHandlers}/IMessageEventHandler.cs (77%) rename {Orabot/EventHandlers/Abstraction => Orabot.Core.Abstractions/EventHandlers}/IReactionEventHandler.cs (89%) create mode 100644 Orabot.Core.Abstractions/Orabot.Core.Abstractions.csproj rename {Orabot => Orabot.Core}/Bot.cs (95%) create mode 100644 Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs (76%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs (87%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs (85%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs (90%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs (89%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs (86%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs (86%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs (87%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs (96%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs (82%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs (81%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs (81%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs (81%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs (81%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs (86%) rename {Orabot => Orabot.Core}/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs (82%) rename {Orabot => Orabot.Core}/EventHandlers/LogEventHandler.cs (74%) rename {Orabot => Orabot.Core}/EventHandlers/MessageEventHandler.cs (88%) rename {Orabot => Orabot.Core}/EventHandlers/RoleAssignmentReactionEventHandler.cs (96%) rename {Orabot => Orabot.Core}/Extensions/CommandInfoExtensions.cs (91%) rename {Orabot => Orabot.Core}/Modules/GeneralModule.cs (96%) rename {Orabot => Orabot.Core}/Modules/OpenRaGeneralModule.cs (99%) rename {Orabot => Orabot.Core}/Modules/OpenRaLuaApiModule.cs (98%) rename {Orabot => Orabot.Core}/Modules/OpenRaTraitsModule.cs (98%) rename {Orabot => Orabot.Core}/Modules/OpenRaWeaponsModule.cs (98%) rename {Orabot => Orabot.Core}/Modules/QuoteModule.cs (98%) rename {Orabot => Orabot.Core}/Modules/RoleManagementModule.cs (98%) rename {Orabot => Orabot.Core}/Objects/DiscordMessageIdentifier.cs (96%) rename {Orabot => Orabot.Core}/Objects/GitHub/GitHubIssueResponse.cs (95%) rename {Orabot => Orabot.Core}/Objects/GitHub/GitHubPullRequestResponse.cs (89%) rename {Orabot => Orabot.Core}/Objects/GitHub/Label.cs (78%) rename {Orabot => Orabot.Core}/Objects/GitHub/User.cs (85%) rename {Orabot => Orabot.Core}/Objects/OpenRaReplay/PlayerData.cs (84%) rename {Orabot => Orabot.Core}/Objects/OpenRaReplay/ReplayMetadata.cs (79%) rename {Orabot => Orabot.Core}/Objects/OpenRaResourceCenter/MapInfo.cs (98%) rename Orabot/Orabot.csproj => Orabot.Core/Orabot.Core.csproj (63%) rename {Orabot => Orabot.Core}/Services/QuotingService.cs (99%) rename {Orabot => Orabot.Core}/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs (96%) rename {Orabot => Orabot.Core}/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs (96%) rename {Orabot => Orabot.Core}/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs (94%) rename {Orabot => Orabot.Core}/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs (95%) rename {Orabot => Orabot.Core}/TypeReaders/BaseTypeReader.cs (82%) rename {Orabot => Orabot.Core}/TypeReaders/DiscordMessageIdentifierTypeReader.cs (91%) rename {Orabot => Orabot.Core}/TypeReaders/UriTypeReader.cs (94%) rename {Orabot => Orabot.Hosts.ConsoleHost}/App.config (100%) create mode 100644 Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj create mode 100644 Orabot.Hosts.ConsoleHost/Program.cs rename {Orabot => Orabot.Hosts.ConsoleHost}/Properties/PublishProfiles/FolderProfile.pubxml (72%) delete mode 100644 Orabot/Program.cs diff --git a/Orabot/EventHandlers/CustomMessageHandlers/ICustomMessageHandler.cs b/Orabot.Core.Abstractions/EventHandlers/ICustomMessageHandler.cs similarity index 57% rename from Orabot/EventHandlers/CustomMessageHandlers/ICustomMessageHandler.cs rename to Orabot.Core.Abstractions/EventHandlers/ICustomMessageHandler.cs index 724b104..3c424b5 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/ICustomMessageHandler.cs +++ b/Orabot.Core.Abstractions/EventHandlers/ICustomMessageHandler.cs @@ -1,8 +1,8 @@ using Discord.WebSocket; -namespace Orabot.EventHandlers.CustomMessageHandlers +namespace Orabot.Core.Abstractions.EventHandlers { - internal interface ICustomMessageHandler + public interface ICustomMessageHandler { bool CanHandle(SocketUserMessage message); diff --git a/Orabot/EventHandlers/Abstraction/ILogEventHandler.cs b/Orabot.Core.Abstractions/EventHandlers/ILogEventHandler.cs similarity index 71% rename from Orabot/EventHandlers/Abstraction/ILogEventHandler.cs rename to Orabot.Core.Abstractions/EventHandlers/ILogEventHandler.cs index b0398f8..feb4f41 100644 --- a/Orabot/EventHandlers/Abstraction/ILogEventHandler.cs +++ b/Orabot.Core.Abstractions/EventHandlers/ILogEventHandler.cs @@ -1,7 +1,7 @@ using System.Threading.Tasks; using Discord; -namespace Orabot.EventHandlers.Abstraction +namespace Orabot.Core.Abstractions.EventHandlers { public interface ILogEventHandler { diff --git a/Orabot/EventHandlers/Abstraction/IMessageEventHandler.cs b/Orabot.Core.Abstractions/EventHandlers/IMessageEventHandler.cs similarity index 77% rename from Orabot/EventHandlers/Abstraction/IMessageEventHandler.cs rename to Orabot.Core.Abstractions/EventHandlers/IMessageEventHandler.cs index 6f2a811..f3c2cfb 100644 --- a/Orabot/EventHandlers/Abstraction/IMessageEventHandler.cs +++ b/Orabot.Core.Abstractions/EventHandlers/IMessageEventHandler.cs @@ -1,7 +1,7 @@ using System.Threading.Tasks; using Discord.WebSocket; -namespace Orabot.EventHandlers.Abstraction +namespace Orabot.Core.Abstractions.EventHandlers { public interface IMessageEventHandler { diff --git a/Orabot/EventHandlers/Abstraction/IReactionEventHandler.cs b/Orabot.Core.Abstractions/EventHandlers/IReactionEventHandler.cs similarity index 89% rename from Orabot/EventHandlers/Abstraction/IReactionEventHandler.cs rename to Orabot.Core.Abstractions/EventHandlers/IReactionEventHandler.cs index 906d7f3..946c2d8 100644 --- a/Orabot/EventHandlers/Abstraction/IReactionEventHandler.cs +++ b/Orabot.Core.Abstractions/EventHandlers/IReactionEventHandler.cs @@ -2,7 +2,7 @@ using Discord; using Discord.WebSocket; -namespace Orabot.EventHandlers.Abstraction +namespace Orabot.Core.Abstractions.EventHandlers { public interface IReactionEventHandler { diff --git a/Orabot.Core.Abstractions/Orabot.Core.Abstractions.csproj b/Orabot.Core.Abstractions/Orabot.Core.Abstractions.csproj new file mode 100644 index 0000000..3c8ed21 --- /dev/null +++ b/Orabot.Core.Abstractions/Orabot.Core.Abstractions.csproj @@ -0,0 +1,11 @@ + + + + netstandard2.1 + + + + + + + diff --git a/Orabot/Bot.cs b/Orabot.Core/Bot.cs similarity index 95% rename from Orabot/Bot.cs rename to Orabot.Core/Bot.cs index 355bc3b..8e796a2 100644 --- a/Orabot/Bot.cs +++ b/Orabot.Core/Bot.cs @@ -5,10 +5,10 @@ using Discord.Commands; using Discord.WebSocket; using Microsoft.Extensions.DependencyInjection; -using Orabot.EventHandlers.Abstraction; -using Orabot.TypeReaders; +using Orabot.Core.Abstractions.EventHandlers; +using Orabot.Core.TypeReaders; -namespace Orabot +namespace Orabot.Core { public class Bot : IDisposable { diff --git a/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs b/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs new file mode 100644 index 0000000..5541f80 --- /dev/null +++ b/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs @@ -0,0 +1,53 @@ +using Microsoft.Extensions.DependencyInjection; +using Orabot.Core.Abstractions.EventHandlers; +using Orabot.Core.EventHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.CommandMessageHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.LinkParsingMessageHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.ModTimersMessageHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers; +using Orabot.Core.EventHandlers.CustomMessageHandlers.SpecificTextMessageHandlers; +using Orabot.Core.Transformers.AttachmentToMessageTransformers; +using Orabot.Core.Transformers.LinkToEmbedTransformers; +using Orabot.Core.Transformers.Replays.ReplayDataToEmbedTransformers; +using Orabot.Core.Transformers.Replays.ReplayToReplayDataTransformers; + +namespace Orabot.Core.DependencyInjection +{ + public static class ServiceProviderExtensions + { + public static IServiceCollection AddDefaultEventHandlerServices(this IServiceCollection serviceCollection) + { + return serviceCollection + .AddSingleton() + .AddSingleton() + .AddSingleton(); + } + + public static IServiceCollection AddDefaultCustomMessageHandlers(this IServiceCollection serviceCollection) + { + return serviceCollection + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton(); + } + public static IServiceCollection AddDefaultTransformers(this IServiceCollection serviceCollection) + { + return serviceCollection + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton(); + } + } +} diff --git a/Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs similarity index 76% rename from Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs index 33e85c0..e1017a4 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/BaseAttachmentMessageHandler.cs @@ -1,7 +1,8 @@ using System.Linq; using Discord.WebSocket; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers { internal abstract class BaseAttachmentMessageHandler : ICustomMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs similarity index 87% rename from Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs index b33d118..87f5c9d 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/LogFileAttachmentMessageHandler.cs @@ -1,8 +1,8 @@ using System.Linq; using Discord.WebSocket; -using Orabot.Transformers.AttachmentToMessageTransformers; +using Orabot.Core.Transformers.AttachmentToMessageTransformers; -namespace Orabot.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers { internal class LogFileAttachmentMessageHandler : BaseAttachmentMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs similarity index 85% rename from Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs index 7fef115..8ddcf97 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/AttachmentMessageHandlers/ReplayFileAttachmentMessageHandler.cs @@ -1,9 +1,9 @@ using System.Linq; using Discord.WebSocket; -using Orabot.Transformers.Replays.ReplayDataToEmbedTransformers; -using Orabot.Transformers.Replays.ReplayToReplayDataTransformers; +using Orabot.Core.Transformers.Replays.ReplayDataToEmbedTransformers; +using Orabot.Core.Transformers.Replays.ReplayToReplayDataTransformers; -namespace Orabot.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers { internal class ReplayFileAttachmentMessageHandler : BaseAttachmentMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs similarity index 90% rename from Orabot/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs index 2dcd8cb..64053e4 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/CommandMessageHandlers/BaseCommandMessageHandler.cs @@ -2,8 +2,9 @@ using Discord.Commands; using Discord.WebSocket; using Microsoft.Extensions.DependencyInjection; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers.CustomMessageHandlers.CommandMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.CommandMessageHandlers { internal class BaseCommandMessageHandler : ICustomMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs similarity index 89% rename from Orabot/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs index fcc292b..e811295 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/BaseLinkParsingMessageHandler.cs @@ -2,8 +2,9 @@ using System.Linq; using System.Text.RegularExpressions; using Discord.WebSocket; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers.CustomMessageHandlers.LinkParsingMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.LinkParsingMessageHandlers { internal abstract class BaseLinkParsingMessageHandler : ICustomMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs similarity index 86% rename from Orabot/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs index b3627dd..34d0e60 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/LinkParsingMessageHandlers/OpenRaResourceCenterMapLinkMessageHandler.cs @@ -1,7 +1,7 @@ using Discord.WebSocket; -using Orabot.Transformers.LinkToEmbedTransformers; +using Orabot.Core.Transformers.LinkToEmbedTransformers; -namespace Orabot.EventHandlers.CustomMessageHandlers.LinkParsingMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.LinkParsingMessageHandlers { internal class OpenRaResourceCenterMapLinkMessageHandler : BaseLinkParsingMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs similarity index 86% rename from Orabot/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs index 69dc528..b6bf279 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/ModTimersMessageHandlers/BaseModTimerMessageHandler.cs @@ -1,8 +1,9 @@ using System.Linq; using System.Text.RegularExpressions; using Discord.WebSocket; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers.CustomMessageHandlers.ModTimersMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.ModTimersMessageHandlers { internal class BaseModTimerMessageHandler : ICustomMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs similarity index 87% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs index a3ed312..502d2fb 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/BaseNumberParsingMessageHandler.cs @@ -2,8 +2,9 @@ using System.Linq; using System.Text.RegularExpressions; using Discord.WebSocket; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers { internal abstract class BaseNumberParsingMessageHandler : ICustomMessageHandler { @@ -30,7 +31,7 @@ public bool CanHandle(SocketUserMessage message) var matches = _regexMatchPatterns.SelectMany(regexMatchPattern => Regex.Matches(message.Content, regexMatchPattern, _regexOptions)); foreach (var match in matches) { - var split = match.Groups.Values.Last().Value.Split('#'); + var split = match.Groups.Last().Value.Split('#'); var keyword = split[0]; if (int.TryParse(split[1], out var number) && MinimumHandledNumberPerKeyword[keyword] <= number) { @@ -50,7 +51,7 @@ protected IEnumerable GetMatchedNumbers(string message) var matches = Regex.Matches(message, regexMatchPattern, _regexOptions); foreach (Match match in matches) { - yield return match.Groups.Values.Last().Value.Split('#')[1]; + yield return match.Groups.Last().Value.Split('#')[1]; } } } diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs similarity index 96% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs index 1b672e7..2cefcbf 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs @@ -4,10 +4,10 @@ using System.Linq; using Discord; using Discord.WebSocket; -using Orabot.Objects.GitHub; +using Orabot.Core.Objects.GitHub; using RestSharp; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers { internal abstract class BaseGitHubIssueNumberMessageHandler : BaseNumberParsingMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs similarity index 82% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs index 4d011de..2602214 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using RestSharp; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers { internal class OpenRaGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs similarity index 81% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs index 007616a..768ab9d 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using RestSharp; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers { internal class OpenRaModSdkGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs similarity index 81% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs index d1d4d6e..7f0812f 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using RestSharp; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers { internal class OpenRaRa2GitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs similarity index 81% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs index c44010e..9361059 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using RestSharp; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers { internal class OpenRaWebGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs similarity index 81% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs index 55d9176..288d3e4 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using RestSharp; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers { internal class OrabotGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs similarity index 86% rename from Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs index 3746d60..279d418 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/OpenRaResourceCenterMapNumberMessageHandler.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; using Discord.WebSocket; -using Orabot.Transformers.LinkToEmbedTransformers; +using Orabot.Core.Transformers.LinkToEmbedTransformers; -namespace Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers { internal class OpenRaResourceCenterMapNumberMessageHandler : BaseNumberParsingMessageHandler { diff --git a/Orabot/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs similarity index 82% rename from Orabot/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs rename to Orabot.Core/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs index 42a2f6f..3c7d93a 100644 --- a/Orabot/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/SpecificTextMessageHandlers/StackTraceMessageHandler.cs @@ -1,8 +1,9 @@ using System.Text.RegularExpressions; using Discord.WebSocket; -using Orabot.Transformers.AttachmentToMessageTransformers; +using Orabot.Core.Abstractions.EventHandlers; +using Orabot.Core.Transformers.AttachmentToMessageTransformers; -namespace Orabot.EventHandlers.CustomMessageHandlers.SpecificTextMessageHandlers +namespace Orabot.Core.EventHandlers.CustomMessageHandlers.SpecificTextMessageHandlers { internal class StackTraceMessageHandler : ICustomMessageHandler { diff --git a/Orabot/EventHandlers/LogEventHandler.cs b/Orabot.Core/EventHandlers/LogEventHandler.cs similarity index 74% rename from Orabot/EventHandlers/LogEventHandler.cs rename to Orabot.Core/EventHandlers/LogEventHandler.cs index 9ba556b..2b1e94f 100644 --- a/Orabot/EventHandlers/LogEventHandler.cs +++ b/Orabot.Core/EventHandlers/LogEventHandler.cs @@ -1,9 +1,9 @@ using System; using System.Threading.Tasks; using Discord; -using Orabot.EventHandlers.Abstraction; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers +namespace Orabot.Core.EventHandlers { internal class LogEventHandler : ILogEventHandler { diff --git a/Orabot/EventHandlers/MessageEventHandler.cs b/Orabot.Core/EventHandlers/MessageEventHandler.cs similarity index 88% rename from Orabot/EventHandlers/MessageEventHandler.cs rename to Orabot.Core/EventHandlers/MessageEventHandler.cs index bc3265a..5bfa2d4 100644 --- a/Orabot/EventHandlers/MessageEventHandler.cs +++ b/Orabot.Core/EventHandlers/MessageEventHandler.cs @@ -4,10 +4,9 @@ using Discord; using Discord.WebSocket; using Microsoft.Extensions.DependencyInjection; -using Orabot.EventHandlers.Abstraction; -using Orabot.EventHandlers.CustomMessageHandlers; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers +namespace Orabot.Core.EventHandlers { internal class MessageEventHandler : IMessageEventHandler { diff --git a/Orabot/EventHandlers/RoleAssignmentReactionEventHandler.cs b/Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs similarity index 96% rename from Orabot/EventHandlers/RoleAssignmentReactionEventHandler.cs rename to Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs index 1103c25..6a7017c 100644 --- a/Orabot/EventHandlers/RoleAssignmentReactionEventHandler.cs +++ b/Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs @@ -1,12 +1,12 @@ using System.Collections.Generic; using System.Configuration; using System.Linq; +using System.Threading.Tasks; using Discord; using Discord.WebSocket; -using System.Threading.Tasks; -using Orabot.EventHandlers.Abstraction; +using Orabot.Core.Abstractions.EventHandlers; -namespace Orabot.EventHandlers +namespace Orabot.Core.EventHandlers { internal class RoleAssignmentReactionEventHandler : IReactionEventHandler diff --git a/Orabot/Extensions/CommandInfoExtensions.cs b/Orabot.Core/Extensions/CommandInfoExtensions.cs similarity index 91% rename from Orabot/Extensions/CommandInfoExtensions.cs rename to Orabot.Core/Extensions/CommandInfoExtensions.cs index 55bbf6f..6d46c5f 100644 --- a/Orabot/Extensions/CommandInfoExtensions.cs +++ b/Orabot.Core/Extensions/CommandInfoExtensions.cs @@ -1,6 +1,6 @@ using Discord.Commands; -namespace Orabot.Extensions +namespace Orabot.Core.Extensions { public static class CommandInfoExtensions { diff --git a/Orabot/Modules/GeneralModule.cs b/Orabot.Core/Modules/GeneralModule.cs similarity index 96% rename from Orabot/Modules/GeneralModule.cs rename to Orabot.Core/Modules/GeneralModule.cs index c3d2a8a..dd4fedc 100644 --- a/Orabot/Modules/GeneralModule.cs +++ b/Orabot.Core/Modules/GeneralModule.cs @@ -4,9 +4,9 @@ using System.Threading.Tasks; using Discord.Commands; using Discord.WebSocket; -using Orabot.Extensions; +using Orabot.Core.Extensions; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class GeneralModule : ModuleBase { diff --git a/Orabot/Modules/OpenRaGeneralModule.cs b/Orabot.Core/Modules/OpenRaGeneralModule.cs similarity index 99% rename from Orabot/Modules/OpenRaGeneralModule.cs rename to Orabot.Core/Modules/OpenRaGeneralModule.cs index 002531e..2db4fec 100644 --- a/Orabot/Modules/OpenRaGeneralModule.cs +++ b/Orabot.Core/Modules/OpenRaGeneralModule.cs @@ -3,7 +3,7 @@ using Discord; using Discord.Commands; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class OpenRaGeneralModule : ModuleBase { diff --git a/Orabot/Modules/OpenRaLuaApiModule.cs b/Orabot.Core/Modules/OpenRaLuaApiModule.cs similarity index 98% rename from Orabot/Modules/OpenRaLuaApiModule.cs rename to Orabot.Core/Modules/OpenRaLuaApiModule.cs index 0929b73..8f80b86 100644 --- a/Orabot/Modules/OpenRaLuaApiModule.cs +++ b/Orabot.Core/Modules/OpenRaLuaApiModule.cs @@ -5,7 +5,7 @@ using Discord.Commands; using RestSharp; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class OpenRaLuaApiModule : ModuleBase { diff --git a/Orabot/Modules/OpenRaTraitsModule.cs b/Orabot.Core/Modules/OpenRaTraitsModule.cs similarity index 98% rename from Orabot/Modules/OpenRaTraitsModule.cs rename to Orabot.Core/Modules/OpenRaTraitsModule.cs index 2b81bbe..a897908 100644 --- a/Orabot/Modules/OpenRaTraitsModule.cs +++ b/Orabot.Core/Modules/OpenRaTraitsModule.cs @@ -5,7 +5,7 @@ using Discord.Commands; using RestSharp; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class OpenRaTraitsModule : ModuleBase { diff --git a/Orabot/Modules/OpenRaWeaponsModule.cs b/Orabot.Core/Modules/OpenRaWeaponsModule.cs similarity index 98% rename from Orabot/Modules/OpenRaWeaponsModule.cs rename to Orabot.Core/Modules/OpenRaWeaponsModule.cs index 6056002..a7931b5 100644 --- a/Orabot/Modules/OpenRaWeaponsModule.cs +++ b/Orabot.Core/Modules/OpenRaWeaponsModule.cs @@ -5,7 +5,7 @@ using Discord.Commands; using RestSharp; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class OpenRaWeaponsModule : ModuleBase { diff --git a/Orabot/Modules/QuoteModule.cs b/Orabot.Core/Modules/QuoteModule.cs similarity index 98% rename from Orabot/Modules/QuoteModule.cs rename to Orabot.Core/Modules/QuoteModule.cs index 7989f96..7613ebc 100644 --- a/Orabot/Modules/QuoteModule.cs +++ b/Orabot.Core/Modules/QuoteModule.cs @@ -6,10 +6,10 @@ using Discord; using Discord.Commands; using Discord.WebSocket; -using Orabot.Objects; -using Orabot.Services; +using Orabot.Core.Objects; +using Orabot.Core.Services; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class QuoteModule : ModuleBase { diff --git a/Orabot/Modules/RoleManagementModule.cs b/Orabot.Core/Modules/RoleManagementModule.cs similarity index 98% rename from Orabot/Modules/RoleManagementModule.cs rename to Orabot.Core/Modules/RoleManagementModule.cs index 389fc2e..086eff5 100644 --- a/Orabot/Modules/RoleManagementModule.cs +++ b/Orabot.Core/Modules/RoleManagementModule.cs @@ -5,7 +5,7 @@ using Discord.Commands; using Discord.WebSocket; -namespace Orabot.Modules +namespace Orabot.Core.Modules { public class RoleManagementModule : ModuleBase { diff --git a/Orabot/Objects/DiscordMessageIdentifier.cs b/Orabot.Core/Objects/DiscordMessageIdentifier.cs similarity index 96% rename from Orabot/Objects/DiscordMessageIdentifier.cs rename to Orabot.Core/Objects/DiscordMessageIdentifier.cs index 2111ce8..0c9bbea 100644 --- a/Orabot/Objects/DiscordMessageIdentifier.cs +++ b/Orabot.Core/Objects/DiscordMessageIdentifier.cs @@ -1,4 +1,4 @@ -namespace Orabot.Objects +namespace Orabot.Core.Objects { public class DiscordMessageIdentifier { diff --git a/Orabot/Objects/GitHub/GitHubIssueResponse.cs b/Orabot.Core/Objects/GitHub/GitHubIssueResponse.cs similarity index 95% rename from Orabot/Objects/GitHub/GitHubIssueResponse.cs rename to Orabot.Core/Objects/GitHub/GitHubIssueResponse.cs index 5822f60..5d75bd4 100644 --- a/Orabot/Objects/GitHub/GitHubIssueResponse.cs +++ b/Orabot.Core/Objects/GitHub/GitHubIssueResponse.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using RestSharp.Deserializers; -namespace Orabot.Objects.GitHub +namespace Orabot.Core.Objects.GitHub { internal class GitHubIssueResponse { diff --git a/Orabot/Objects/GitHub/GitHubPullRequestResponse.cs b/Orabot.Core/Objects/GitHub/GitHubPullRequestResponse.cs similarity index 89% rename from Orabot/Objects/GitHub/GitHubPullRequestResponse.cs rename to Orabot.Core/Objects/GitHub/GitHubPullRequestResponse.cs index 4958776..ab28c69 100644 --- a/Orabot/Objects/GitHub/GitHubPullRequestResponse.cs +++ b/Orabot.Core/Objects/GitHub/GitHubPullRequestResponse.cs @@ -1,6 +1,6 @@ using RestSharp.Deserializers; -namespace Orabot.Objects.GitHub +namespace Orabot.Core.Objects.GitHub { internal class GitHubPullRequestResponse { diff --git a/Orabot/Objects/GitHub/Label.cs b/Orabot.Core/Objects/GitHub/Label.cs similarity index 78% rename from Orabot/Objects/GitHub/Label.cs rename to Orabot.Core/Objects/GitHub/Label.cs index 43bcce4..8a8cc03 100644 --- a/Orabot/Objects/GitHub/Label.cs +++ b/Orabot.Core/Objects/GitHub/Label.cs @@ -1,6 +1,6 @@ using RestSharp.Deserializers; -namespace Orabot.Objects.GitHub +namespace Orabot.Core.Objects.GitHub { internal class Label { diff --git a/Orabot/Objects/GitHub/User.cs b/Orabot.Core/Objects/GitHub/User.cs similarity index 85% rename from Orabot/Objects/GitHub/User.cs rename to Orabot.Core/Objects/GitHub/User.cs index 7f1b357..131282f 100644 --- a/Orabot/Objects/GitHub/User.cs +++ b/Orabot.Core/Objects/GitHub/User.cs @@ -1,6 +1,6 @@ using RestSharp.Deserializers; -namespace Orabot.Objects.GitHub +namespace Orabot.Core.Objects.GitHub { internal class User { diff --git a/Orabot/Objects/OpenRaReplay/PlayerData.cs b/Orabot.Core/Objects/OpenRaReplay/PlayerData.cs similarity index 84% rename from Orabot/Objects/OpenRaReplay/PlayerData.cs rename to Orabot.Core/Objects/OpenRaReplay/PlayerData.cs index b4c54c6..0031c64 100644 --- a/Orabot/Objects/OpenRaReplay/PlayerData.cs +++ b/Orabot.Core/Objects/OpenRaReplay/PlayerData.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Orabot.Objects.OpenRaReplay +namespace Orabot.Core.Objects.OpenRaReplay { public class PlayerData { diff --git a/Orabot/Objects/OpenRaReplay/ReplayMetadata.cs b/Orabot.Core/Objects/OpenRaReplay/ReplayMetadata.cs similarity index 79% rename from Orabot/Objects/OpenRaReplay/ReplayMetadata.cs rename to Orabot.Core/Objects/OpenRaReplay/ReplayMetadata.cs index d07bcc7..5214b82 100644 --- a/Orabot/Objects/OpenRaReplay/ReplayMetadata.cs +++ b/Orabot.Core/Objects/OpenRaReplay/ReplayMetadata.cs @@ -1,8 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Text; +using System.Collections.Generic; -namespace Orabot.Objects.OpenRaReplay +namespace Orabot.Core.Objects.OpenRaReplay { public class ReplayMetadata { diff --git a/Orabot/Objects/OpenRaResourceCenter/MapInfo.cs b/Orabot.Core/Objects/OpenRaResourceCenter/MapInfo.cs similarity index 98% rename from Orabot/Objects/OpenRaResourceCenter/MapInfo.cs rename to Orabot.Core/Objects/OpenRaResourceCenter/MapInfo.cs index f8aeed5..22a7387 100644 --- a/Orabot/Objects/OpenRaResourceCenter/MapInfo.cs +++ b/Orabot.Core/Objects/OpenRaResourceCenter/MapInfo.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using RestSharp.Deserializers; -namespace Orabot.Objects.OpenRaResourceCenter +namespace Orabot.Core.Objects.OpenRaResourceCenter { public class MapInfo { diff --git a/Orabot/Orabot.csproj b/Orabot.Core/Orabot.Core.csproj similarity index 63% rename from Orabot/Orabot.csproj rename to Orabot.Core/Orabot.Core.csproj index 537f600..e59149d 100644 --- a/Orabot/Orabot.csproj +++ b/Orabot.Core/Orabot.Core.csproj @@ -1,17 +1,19 @@  - Exe - netcoreapp3.1 + netstandard2.1 - - + + + + + diff --git a/Orabot/Services/QuotingService.cs b/Orabot.Core/Services/QuotingService.cs similarity index 99% rename from Orabot/Services/QuotingService.cs rename to Orabot.Core/Services/QuotingService.cs index 695f758..b9a6b81 100644 --- a/Orabot/Services/QuotingService.cs +++ b/Orabot.Core/Services/QuotingService.cs @@ -5,7 +5,7 @@ using Discord; using Discord.WebSocket; -namespace Orabot.Services +namespace Orabot.Core.Services { public class QuotingService { diff --git a/Orabot/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs b/Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs similarity index 96% rename from Orabot/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs rename to Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs index 29bd2a4..cb81d2f 100644 --- a/Orabot/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs +++ b/Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Net; -namespace Orabot.Transformers.AttachmentToMessageTransformers +namespace Orabot.Core.Transformers.AttachmentToMessageTransformers { internal class AttachmentLogFileToMessageTransformer { diff --git a/Orabot/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs b/Orabot.Core/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs similarity index 96% rename from Orabot/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs rename to Orabot.Core/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs index b68400b..fa69b00 100644 --- a/Orabot/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs +++ b/Orabot.Core/Transformers/LinkToEmbedTransformers/OpenRaResourceCenterMapLinkToEmbedTransformer.cs @@ -2,10 +2,10 @@ using System.Collections.Generic; using System.Linq; using Discord; -using Orabot.Objects.OpenRaResourceCenter; +using Orabot.Core.Objects.OpenRaResourceCenter; using RestSharp; -namespace Orabot.Transformers.LinkToEmbedTransformers +namespace Orabot.Core.Transformers.LinkToEmbedTransformers { internal class OpenRaResourceCenterMapLinkToEmbedTransformer { diff --git a/Orabot/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs b/Orabot.Core/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs similarity index 94% rename from Orabot/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs rename to Orabot.Core/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs index 74fb4b1..4a893c9 100644 --- a/Orabot/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs +++ b/Orabot.Core/Transformers/Replays/ReplayDataToEmbedTransformers/UtilityReplayMetadataToEmbedTransformer.cs @@ -3,10 +3,10 @@ using System.Globalization; using System.Linq; using Discord; -using Orabot.Objects.OpenRaReplay; -using Orabot.Transformers.LinkToEmbedTransformers; +using Orabot.Core.Objects.OpenRaReplay; +using Orabot.Core.Transformers.LinkToEmbedTransformers; -namespace Orabot.Transformers.Replays.ReplayDataToEmbedTransformers +namespace Orabot.Core.Transformers.Replays.ReplayDataToEmbedTransformers { internal class UtilityReplayMetadataToEmbedTransformer { diff --git a/Orabot/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs b/Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs similarity index 95% rename from Orabot/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs rename to Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs index 916aec0..2d410ad 100644 --- a/Orabot/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs +++ b/Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs @@ -4,10 +4,10 @@ using System.IO; using System.Net; using System.Runtime.InteropServices; -using Orabot.Objects.OpenRaReplay; +using Orabot.Core.Objects.OpenRaReplay; using YamlDotNet.Serialization; -namespace Orabot.Transformers.Replays.ReplayToReplayDataTransformers +namespace Orabot.Core.Transformers.Replays.ReplayToReplayDataTransformers { internal class AttachmentReplayToUtilityMetadataTransformer { diff --git a/Orabot/TypeReaders/BaseTypeReader.cs b/Orabot.Core/TypeReaders/BaseTypeReader.cs similarity index 82% rename from Orabot/TypeReaders/BaseTypeReader.cs rename to Orabot.Core/TypeReaders/BaseTypeReader.cs index d7b9490..cece5ff 100644 --- a/Orabot/TypeReaders/BaseTypeReader.cs +++ b/Orabot.Core/TypeReaders/BaseTypeReader.cs @@ -1,7 +1,7 @@ using System; using Discord.Commands; -namespace Orabot.TypeReaders +namespace Orabot.Core.TypeReaders { public abstract class BaseTypeReader : TypeReader { diff --git a/Orabot/TypeReaders/DiscordMessageIdentifierTypeReader.cs b/Orabot.Core/TypeReaders/DiscordMessageIdentifierTypeReader.cs similarity index 91% rename from Orabot/TypeReaders/DiscordMessageIdentifierTypeReader.cs rename to Orabot.Core/TypeReaders/DiscordMessageIdentifierTypeReader.cs index 66de9b7..59d6103 100644 --- a/Orabot/TypeReaders/DiscordMessageIdentifierTypeReader.cs +++ b/Orabot.Core/TypeReaders/DiscordMessageIdentifierTypeReader.cs @@ -1,9 +1,9 @@ using System; using System.Threading.Tasks; using Discord.Commands; -using Orabot.Objects; +using Orabot.Core.Objects; -namespace Orabot.TypeReaders +namespace Orabot.Core.TypeReaders { public class DiscordMessageIdentifierTypeReader : BaseTypeReader { diff --git a/Orabot/TypeReaders/UriTypeReader.cs b/Orabot.Core/TypeReaders/UriTypeReader.cs similarity index 94% rename from Orabot/TypeReaders/UriTypeReader.cs rename to Orabot.Core/TypeReaders/UriTypeReader.cs index 05ff143..8267869 100644 --- a/Orabot/TypeReaders/UriTypeReader.cs +++ b/Orabot.Core/TypeReaders/UriTypeReader.cs @@ -2,7 +2,7 @@ using System.Threading.Tasks; using Discord.Commands; -namespace Orabot.TypeReaders +namespace Orabot.Core.TypeReaders { public class UriTypeReader : BaseTypeReader { diff --git a/Orabot/App.config b/Orabot.Hosts.ConsoleHost/App.config similarity index 100% rename from Orabot/App.config rename to Orabot.Hosts.ConsoleHost/App.config diff --git a/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj b/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj new file mode 100644 index 0000000..cbdf4d0 --- /dev/null +++ b/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj @@ -0,0 +1,16 @@ + + + + Exe + net5.0 + + + + + + + + + + + diff --git a/Orabot.Hosts.ConsoleHost/Program.cs b/Orabot.Hosts.ConsoleHost/Program.cs new file mode 100644 index 0000000..a2c6503 --- /dev/null +++ b/Orabot.Hosts.ConsoleHost/Program.cs @@ -0,0 +1,43 @@ +using Discord.Commands; +using Discord.WebSocket; +using Microsoft.Extensions.DependencyInjection; +using Orabot.Core; +using Orabot.Core.DependencyInjection; +using Orabot.Core.Modules; +using Orabot.Core.Services; +using Orabot.Core.TypeReaders; +using RestSharp; + +namespace Orabot.Hosts.ConsoleHost +{ + class Program + { + static void Main(string[] args) + { + var serviceProvider = new ServiceCollection() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddDefaultEventHandlerServices() + .AddDefaultCustomMessageHandlers() + .AddSingleton, GeneralModule>() + .AddSingleton, OpenRaGeneralModule>() + .AddSingleton, OpenRaLuaApiModule>() + .AddSingleton, OpenRaTraitsModule>() + .AddSingleton, OpenRaWeaponsModule>() + .AddSingleton, QuoteModule>() + .AddSingleton, RoleManagementModule>() + .AddSingleton() + .AddDefaultTransformers() + .AddTransient() + .AddTransient() + .BuildServiceProvider(); + + using (var bot = new Bot(serviceProvider)) + { + bot.RunAsync().Wait(); + } + } + } +} diff --git a/Orabot/Properties/PublishProfiles/FolderProfile.pubxml b/Orabot.Hosts.ConsoleHost/Properties/PublishProfiles/FolderProfile.pubxml similarity index 72% rename from Orabot/Properties/PublishProfiles/FolderProfile.pubxml rename to Orabot.Hosts.ConsoleHost/Properties/PublishProfiles/FolderProfile.pubxml index 8ca2420..06f09c7 100644 --- a/Orabot/Properties/PublishProfiles/FolderProfile.pubxml +++ b/Orabot.Hosts.ConsoleHost/Properties/PublishProfiles/FolderProfile.pubxml @@ -4,12 +4,11 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - FileSystem Release Any CPU - netcoreapp3.0 - bin\Release\netcoreapp3.0\Orabot\ + bin\publish\ + FileSystem + net5.0 false - <_IsPortable>true \ No newline at end of file diff --git a/Orabot.sln b/Orabot.sln index a0ce9d1..234b641 100644 --- a/Orabot.sln +++ b/Orabot.sln @@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29324.140 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Orabot", "Orabot\Orabot.csproj", "{4CF1416A-C509-487C-854A-FD06181ECC3C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orabot.Hosts.ConsoleHost", "Orabot.Hosts.ConsoleHost\Orabot.Hosts.ConsoleHost.csproj", "{05CC7AD2-1607-4DE3-A41B-AC8074A2397E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orabot.Core.Abstractions", "Orabot.Core.Abstractions\Orabot.Core.Abstractions.csproj", "{7493DB64-E0FF-4347-AAFB-F4D9CD512240}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orabot.Core", "Orabot.Core\Orabot.Core.csproj", "{EC6DB6C7-568B-41B3-AAF6-FB34EEAA9706}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +15,18 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4CF1416A-C509-487C-854A-FD06181ECC3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4CF1416A-C509-487C-854A-FD06181ECC3C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CF1416A-C509-487C-854A-FD06181ECC3C}.Release|Any CPU.ActiveCfg = Debug|Any CPU - {4CF1416A-C509-487C-854A-FD06181ECC3C}.Release|Any CPU.Build.0 = Debug|Any CPU + {05CC7AD2-1607-4DE3-A41B-AC8074A2397E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05CC7AD2-1607-4DE3-A41B-AC8074A2397E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05CC7AD2-1607-4DE3-A41B-AC8074A2397E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05CC7AD2-1607-4DE3-A41B-AC8074A2397E}.Release|Any CPU.Build.0 = Release|Any CPU + {7493DB64-E0FF-4347-AAFB-F4D9CD512240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7493DB64-E0FF-4347-AAFB-F4D9CD512240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7493DB64-E0FF-4347-AAFB-F4D9CD512240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7493DB64-E0FF-4347-AAFB-F4D9CD512240}.Release|Any CPU.Build.0 = Release|Any CPU + {EC6DB6C7-568B-41B3-AAF6-FB34EEAA9706}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC6DB6C7-568B-41B3-AAF6-FB34EEAA9706}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC6DB6C7-568B-41B3-AAF6-FB34EEAA9706}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC6DB6C7-568B-41B3-AAF6-FB34EEAA9706}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Orabot/Program.cs b/Orabot/Program.cs deleted file mode 100644 index 387e77d..0000000 --- a/Orabot/Program.cs +++ /dev/null @@ -1,71 +0,0 @@ -using Discord.Commands; -using Discord.WebSocket; -using Microsoft.Extensions.DependencyInjection; -using Orabot.EventHandlers; -using Orabot.EventHandlers.Abstraction; -using Orabot.EventHandlers.CustomMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.CommandMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.LinkParsingMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.ModTimersMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers; -using Orabot.EventHandlers.CustomMessageHandlers.SpecificTextMessageHandlers; -using Orabot.Modules; -using Orabot.Services; -using Orabot.Transformers.AttachmentToMessageTransformers; -using Orabot.Transformers.LinkToEmbedTransformers; -using Orabot.Transformers.Replays.ReplayDataToEmbedTransformers; -using Orabot.Transformers.Replays.ReplayToReplayDataTransformers; -using Orabot.TypeReaders; -using RestSharp; - -namespace Orabot -{ - internal class Program - { - private static void Main() - { - var serviceProvider = new ServiceCollection() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton, GeneralModule>() - .AddSingleton, OpenRaGeneralModule>() - .AddSingleton, OpenRaLuaApiModule>() - .AddSingleton, OpenRaTraitsModule>() - .AddSingleton, OpenRaWeaponsModule>() - .AddSingleton, QuoteModule>() - .AddSingleton, RoleManagementModule>() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddSingleton() - .AddTransient() - .AddTransient() - .BuildServiceProvider(); - - using (var bot = new Bot(serviceProvider)) - { - bot.RunAsync().Wait(); - } - } - } -} From dc7588d4c9167b2d90c7d28dba76cd107db05f55 Mon Sep 17 00:00:00 2001 From: Pavel Penev Date: Wed, 22 Sep 2021 13:12:54 +0300 Subject: [PATCH 2/3] Added .json rules to .editorconfig --- .editorconfig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.editorconfig b/.editorconfig index db8fb34..cf7cca6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,4 +8,8 @@ indent_size = 4 [*.config] indent_style = tab +indent_size = 4 + +[*.json] +indent_style = tab indent_size = 4 \ No newline at end of file From e6c6dcea42660c5ba7d8f89b4ec35ba04df70f24 Mon Sep 17 00:00:00 2001 From: Pavel Penev Date: Wed, 22 Sep 2021 13:15:53 +0300 Subject: [PATCH 3/3] Switched App.config for appsettings.json And thus System.Configuration.ConfigurationManager for Microsoft.Extensions.Configuration in the codebase. --- Orabot.Core/Bot.cs | 8 +++---- .../ServiceProviderExtensions.cs | 17 +++++++++++++- .../BaseGitHubIssueNumberMessageHandler.cs | 11 +++++----- .../OpenRaGitHubIssueNumberMessageHandler.cs | 3 ++- ...RaModSdkGitHubIssueNumberMessageHandler.cs | 3 ++- ...penRaRa2GitHubIssueNumberMessageHandler.cs | 3 ++- ...penRaWebGitHubIssueNumberMessageHandler.cs | 3 ++- .../OrabotGitHubIssueNumberMessageHandler.cs | 3 ++- .../RoleAssignmentReactionEventHandler.cs | 22 +++++++++++-------- Orabot.Core/Modules/GeneralModule.cs | 7 +++--- Orabot.Core/Modules/OpenRaLuaApiModule.cs | 10 ++++----- Orabot.Core/Modules/OpenRaTraitsModule.cs | 12 +++++----- Orabot.Core/Modules/OpenRaWeaponsModule.cs | 10 ++++----- Orabot.Core/Modules/QuoteModule.cs | 7 +++--- Orabot.Core/Modules/RoleManagementModule.cs | 11 +++++++--- Orabot.Core/Orabot.Core.csproj | 2 +- .../AttachmentLogFileToMessageTransformer.cs | 11 +++++++--- ...hmentReplayToUtilityMetadataTransformer.cs | 18 ++++++++------- Orabot.Hosts.ConsoleHost/App.config | 15 ------------- .../Orabot.Hosts.ConsoleHost.csproj | 6 +++++ Orabot.Hosts.ConsoleHost/Program.cs | 1 + Orabot.Hosts.ConsoleHost/appsettings.json | 12 ++++++++++ 22 files changed, 119 insertions(+), 76 deletions(-) delete mode 100644 Orabot.Hosts.ConsoleHost/App.config create mode 100644 Orabot.Hosts.ConsoleHost/appsettings.json diff --git a/Orabot.Core/Bot.cs b/Orabot.Core/Bot.cs index 8e796a2..b5dd356 100644 --- a/Orabot.Core/Bot.cs +++ b/Orabot.Core/Bot.cs @@ -1,9 +1,9 @@ using System; -using System.Configuration; using System.Threading.Tasks; using Discord; using Discord.Commands; using Discord.WebSocket; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Orabot.Core.Abstractions.EventHandlers; using Orabot.Core.TypeReaders; @@ -12,9 +12,8 @@ namespace Orabot.Core { public class Bot : IDisposable { - private static readonly string DiscordBotToken = ConfigurationManager.AppSettings["BotToken"]; - private readonly IServiceProvider _serviceProvider; + private readonly string _discordBotToken; private readonly DiscordSocketClient _client; private readonly CommandService _commands; @@ -26,6 +25,7 @@ public class Bot : IDisposable public Bot(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; + _discordBotToken = _serviceProvider.GetService()["BotToken"]; _client = _serviceProvider.GetService(); _commands = _serviceProvider.GetService(); @@ -39,7 +39,7 @@ public Bot(IServiceProvider serviceProvider) public async Task RunAsync() { - await _client.LoginAsync(TokenType.Bot, DiscordBotToken); + await _client.LoginAsync(TokenType.Bot, _discordBotToken); await _client.StartAsync(); Console.ReadLine(); diff --git a/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs b/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs index 5541f80..d2df8f3 100644 --- a/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs +++ b/Orabot.Core/DependencyInjection/ServiceProviderExtensions.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.DependencyInjection; +using System.IO; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Orabot.Core.Abstractions.EventHandlers; using Orabot.Core.EventHandlers; using Orabot.Core.EventHandlers.CustomMessageHandlers.AttachmentMessageHandlers; @@ -17,6 +19,19 @@ namespace Orabot.Core.DependencyInjection { public static class ServiceProviderExtensions { + public static IServiceCollection AddAppSettingsConfiguration(this IServiceCollection serviceCollection) + { + return serviceCollection + .AddSingleton(provider => + { + var builder = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json"); + + return builder.Build(); + }); + } + public static IServiceCollection AddDefaultEventHandlerServices(this IServiceCollection serviceCollection) { return serviceCollection diff --git a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs index 2cefcbf..7a2c701 100644 --- a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/BaseGitHubIssueNumberMessageHandler.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; -using System.Configuration; using System.Linq; using Discord; using Discord.WebSocket; +using Microsoft.Extensions.Configuration; using Orabot.Core.Objects.GitHub; using RestSharp; @@ -21,7 +21,7 @@ internal abstract class BaseGitHubIssueNumberMessageHandler : BaseNumberParsingM protected abstract string RepositoryName { get; } - private static readonly string IssueIconBaseUrl = ConfigurationManager.AppSettings["GitHubIconsBaseUrl"]; + private readonly string _issueIconBaseUrl; private readonly IRestClient _restClient; private readonly Dictionary _colorPerStatus = new Dictionary @@ -31,10 +31,11 @@ internal abstract class BaseGitHubIssueNumberMessageHandler : BaseNumberParsingM { "merged", Color.Purple } }; - internal BaseGitHubIssueNumberMessageHandler(IRestClient restClient) + internal BaseGitHubIssueNumberMessageHandler(IRestClient restClient, IConfiguration configuration) { _restClient = restClient; restClient.BaseUrl = new Uri(BaseApiUrl); + _issueIconBaseUrl = configuration["GitHubIconsBaseUrl"]; } public override void Invoke(SocketUserMessage message) @@ -125,9 +126,9 @@ public override void Invoke(SocketUserMessage message) } } - private static string GetIssueIconUrl(bool isIssue, string status) + private string GetIssueIconUrl(bool isIssue, string status) { - return $"{IssueIconBaseUrl}/github-{(isIssue ? "issue" : "pr")}-{status}.png"; + return $"{_issueIconBaseUrl}/github-{(isIssue ? "issue" : "pr")}-{status}.png"; } } } diff --git a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs index 2602214..374f876 100644 --- a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaGitHubIssueNumberMessageHandler.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers @@ -15,6 +16,6 @@ internal class OpenRaGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMess { "ora", 0 } }; - public OpenRaGitHubIssueNumberMessageHandler(IRestClient restClient) : base(restClient) { } + public OpenRaGitHubIssueNumberMessageHandler(IRestClient restClient, IConfiguration configuration) : base(restClient, configuration) { } } } diff --git a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs index 768ab9d..15a6c8a 100644 --- a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaModSdkGitHubIssueNumberMessageHandler.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers @@ -14,6 +15,6 @@ internal class OpenRaModSdkGitHubIssueNumberMessageHandler : BaseGitHubIssueNumb { "sdk", 0 } }; - public OpenRaModSdkGitHubIssueNumberMessageHandler(IRestClient restClient) : base(restClient) { } + public OpenRaModSdkGitHubIssueNumberMessageHandler(IRestClient restClient, IConfiguration configuration) : base(restClient, configuration) { } } } diff --git a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs index 7f0812f..d05562e 100644 --- a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaRa2GitHubIssueNumberMessageHandler.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers @@ -14,6 +15,6 @@ internal class OpenRaRa2GitHubIssueNumberMessageHandler : BaseGitHubIssueNumberM { "ra2", 0 } }; - public OpenRaRa2GitHubIssueNumberMessageHandler(IRestClient restClient) : base(restClient) { } + public OpenRaRa2GitHubIssueNumberMessageHandler(IRestClient restClient, IConfiguration configuration) : base(restClient, configuration) { } } } diff --git a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs index 9361059..18db707 100644 --- a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OpenRaWebGitHubIssueNumberMessageHandler.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers @@ -14,6 +15,6 @@ internal class OpenRaWebGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberM { "web", 0 } }; - public OpenRaWebGitHubIssueNumberMessageHandler(IRestClient restClient) : base(restClient) { } + public OpenRaWebGitHubIssueNumberMessageHandler(IRestClient restClient, IConfiguration configuration) : base(restClient, configuration) { } } } diff --git a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs index 288d3e4..7a30e04 100644 --- a/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs +++ b/Orabot.Core/EventHandlers/CustomMessageHandlers/NumberParsingMessageHandlers/GitHubIssueNumberMessageHandlers/OrabotGitHubIssueNumberMessageHandler.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.EventHandlers.CustomMessageHandlers.NumberParsingMessageHandlers.GitHubIssueNumberMessageHandlers @@ -14,6 +15,6 @@ internal class OrabotGitHubIssueNumberMessageHandler : BaseGitHubIssueNumberMess { "bot", 0 } }; - public OrabotGitHubIssueNumberMessageHandler(IRestClient restClient) : base(restClient) { } + public OrabotGitHubIssueNumberMessageHandler(IRestClient restClient, IConfiguration configuration) : base(restClient, configuration) { } } } diff --git a/Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs b/Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs index 6a7017c..6615d7f 100644 --- a/Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs +++ b/Orabot.Core/EventHandlers/RoleAssignmentReactionEventHandler.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; -using System.Configuration; using System.Linq; using System.Threading.Tasks; using Discord; using Discord.WebSocket; +using Microsoft.Extensions.Configuration; using Orabot.Core.Abstractions.EventHandlers; namespace Orabot.Core.EventHandlers @@ -11,15 +11,19 @@ namespace Orabot.Core.EventHandlers internal class RoleAssignmentReactionEventHandler : IReactionEventHandler { - private readonly IReadOnlyDictionary _freelyAssignedRoles = ConfigurationManager - .AppSettings["FreelyAssignedRolesByEmote"] - .Split(';') - .Select(x => x.Trim()) - .Where(x => !string.IsNullOrWhiteSpace(x)) - .Select(x => x.Split(':')) - .ToDictionary(x => x[0], y => y[1]); + private readonly ulong _roleAssignmentMessageId; + private readonly IReadOnlyDictionary _freelyAssignedRoles; - private readonly ulong _roleAssignmentMessageId = ulong.Parse(ConfigurationManager.AppSettings["RoleAssignmentMessageId"]); + public RoleAssignmentReactionEventHandler(IConfiguration configuration) + { + _roleAssignmentMessageId = ulong.Parse(configuration["RoleAssignmentMessageId"]); + _freelyAssignedRoles = configuration["FreelyAssignedRolesByEmote"] + .Split(';') + .Select(x => x.Trim()) + .Where(x => !string.IsNullOrWhiteSpace(x)) + .Select(x => x.Split(':')) + .ToDictionary(x => x[0], y => y[1]); + } public async Task HandleReactionAddedAsync(Cacheable messageGetter, ISocketMessageChannel channel, SocketReaction reaction) { diff --git a/Orabot.Core/Modules/GeneralModule.cs b/Orabot.Core/Modules/GeneralModule.cs index dd4fedc..4ddbbff 100644 --- a/Orabot.Core/Modules/GeneralModule.cs +++ b/Orabot.Core/Modules/GeneralModule.cs @@ -1,21 +1,22 @@ using System.Collections.Generic; -using System.Configuration; using System.Linq; using System.Threading.Tasks; using Discord.Commands; using Discord.WebSocket; +using Microsoft.Extensions.Configuration; using Orabot.Core.Extensions; namespace Orabot.Core.Modules { public class GeneralModule : ModuleBase { - private readonly string[] _trustedRoles = ConfigurationManager.AppSettings["TrustedRoles"].Split(';').Select(x => x.Trim()).ToArray(); + private readonly string[] _trustedRoles; private readonly CommandService _commands; - public GeneralModule(CommandService commands) + public GeneralModule(IConfiguration configuration, CommandService commands) { _commands = commands; + _trustedRoles = configuration["TrustedRoles"].Split(';').Select(x => x.Trim()).ToArray(); } [Command("help", true)] diff --git a/Orabot.Core/Modules/OpenRaLuaApiModule.cs b/Orabot.Core/Modules/OpenRaLuaApiModule.cs index 8f80b86..84925be 100644 --- a/Orabot.Core/Modules/OpenRaLuaApiModule.cs +++ b/Orabot.Core/Modules/OpenRaLuaApiModule.cs @@ -1,8 +1,8 @@ using System; -using System.Configuration; using System.Threading.Tasks; using Discord; using Discord.Commands; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.Modules @@ -12,14 +12,14 @@ public class OpenRaLuaApiModule : ModuleBase private const string LuaPageUrl = "https://docs.openra.net/en/latest/release/lua/"; private const string LuaPlaytestPageUrl = "https://docs.openra.net/en/latest/playtest/lua/"; - private static readonly string OpenRaIconUrl = ConfigurationManager.AppSettings["OpenRaFaviconUrl"]; - private readonly IRestClient _restClient; + private readonly string _openRaIconUrl; - public OpenRaLuaApiModule(IRestClient restClient) + public OpenRaLuaApiModule(IConfiguration configuration, IRestClient restClient) { _restClient = restClient; _restClient.BaseUrl = new Uri(LuaPageUrl); + _openRaIconUrl = configuration["OpenRaFaviconUrl"]; } [Command("lua")] @@ -62,7 +62,7 @@ private Embed BuildLuaApiPageEmbed(string pageUrl, string tableName) { Name = "OpenRA Lua API page" + (hasName ? $", table {tableName}" : string.Empty), Url = targetUrl, - IconUrl = OpenRaIconUrl + IconUrl = _openRaIconUrl }, Title = targetUrl, Url = targetUrl, diff --git a/Orabot.Core/Modules/OpenRaTraitsModule.cs b/Orabot.Core/Modules/OpenRaTraitsModule.cs index a897908..2e58a85 100644 --- a/Orabot.Core/Modules/OpenRaTraitsModule.cs +++ b/Orabot.Core/Modules/OpenRaTraitsModule.cs @@ -1,8 +1,8 @@ using System; -using System.Configuration; using System.Threading.Tasks; using Discord; using Discord.Commands; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.Modules @@ -12,15 +12,15 @@ public class OpenRaTraitsModule : ModuleBase private const string TraitsPageUrl = "https://docs.openra.net/en/latest/release/traits/"; private const string TraitsPlaytestPageUrl = "https://docs.openra.net/en/latest/playtest/traits/"; - private static readonly string OpenRaIconUrl = ConfigurationManager.AppSettings["OpenRaFaviconUrl"]; - private readonly IRestClient _restClient; + private readonly string _openRaIconUrl; - public OpenRaTraitsModule(IRestClient restClient) + public OpenRaTraitsModule(IRestClient restClient, IConfiguration configuration) { _restClient = restClient; _restClient.BaseUrl = new Uri(TraitsPageUrl); - } + _openRaIconUrl = configuration["OpenRaFaviconUrl"]; +; } [Command("traits")] [Summary("Provides a link to the OpenRA Traits documentation page. Can be used with an optional trait name to link directly.")] @@ -62,7 +62,7 @@ private Embed BuildTraitsPageEmbed(string pageUrl, string traitName) { Name = "OpenRA Traits page" + (hasName ? $", trait {traitName}" : string.Empty), Url = targetUrl, - IconUrl = OpenRaIconUrl + IconUrl = _openRaIconUrl }, Title = targetUrl, Url = targetUrl, diff --git a/Orabot.Core/Modules/OpenRaWeaponsModule.cs b/Orabot.Core/Modules/OpenRaWeaponsModule.cs index a7931b5..fe62596 100644 --- a/Orabot.Core/Modules/OpenRaWeaponsModule.cs +++ b/Orabot.Core/Modules/OpenRaWeaponsModule.cs @@ -1,8 +1,8 @@ using System; -using System.Configuration; using System.Threading.Tasks; using Discord; using Discord.Commands; +using Microsoft.Extensions.Configuration; using RestSharp; namespace Orabot.Core.Modules @@ -12,14 +12,14 @@ public class OpenRaWeaponsModule : ModuleBase private const string WeaponsPageUrl = "https://docs.openra.net/en/latest/release/weapons/"; private const string WeaponsPlaytestPageUrl = "https://docs.openra.net/en/latest/playtest/weapons/"; - private static readonly string OpenRaIconUrl = ConfigurationManager.AppSettings["OpenRaFaviconUrl"]; - private readonly IRestClient _restClient; + private readonly string _openRaIconUrl; - public OpenRaWeaponsModule(IRestClient restClient) + public OpenRaWeaponsModule(IRestClient restClient, IConfiguration configuration) { _restClient = restClient; _restClient.BaseUrl = new Uri(WeaponsPageUrl); + _openRaIconUrl = configuration["OpenRaFaviconUrl"]; } [Command("weapons")] @@ -62,7 +62,7 @@ private Embed BuildWeaponsPageEmbed(string pageUrl, string weaponName) { Name = "OpenRA Weapons page" + (hasName ? $", weapon {weaponName}" : string.Empty), Url = targetUrl, - IconUrl = OpenRaIconUrl + IconUrl = _openRaIconUrl }, Title = targetUrl, Url = targetUrl, diff --git a/Orabot.Core/Modules/QuoteModule.cs b/Orabot.Core/Modules/QuoteModule.cs index 7613ebc..e53757d 100644 --- a/Orabot.Core/Modules/QuoteModule.cs +++ b/Orabot.Core/Modules/QuoteModule.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; -using System.Configuration; using System.Linq; using System.Threading.Tasks; using Discord; using Discord.Commands; using Discord.WebSocket; +using Microsoft.Extensions.Configuration; using Orabot.Core.Objects; using Orabot.Core.Services; @@ -14,11 +14,12 @@ namespace Orabot.Core.Modules public class QuoteModule : ModuleBase { private readonly QuotingService _quotingService; - private readonly string[] _trustedRoles = ConfigurationManager.AppSettings["TrustedRoles"].Split(';').Select(x => x.Trim()).ToArray(); + private readonly string[] _trustedRoles; - public QuoteModule(QuotingService quotingService) + public QuoteModule(QuotingService quotingService, IConfiguration configuration) { _quotingService = quotingService; + _trustedRoles = configuration["TrustedRoles"].Split(';').Select(x => x.Trim()).ToArray(); } [Command("quote")] diff --git a/Orabot.Core/Modules/RoleManagementModule.cs b/Orabot.Core/Modules/RoleManagementModule.cs index 086eff5..6f4b5a1 100644 --- a/Orabot.Core/Modules/RoleManagementModule.cs +++ b/Orabot.Core/Modules/RoleManagementModule.cs @@ -1,15 +1,20 @@ -using System.Configuration; -using System.Linq; +using System.Linq; using System.Threading.Tasks; using Discord; using Discord.Commands; using Discord.WebSocket; +using Microsoft.Extensions.Configuration; namespace Orabot.Core.Modules { public class RoleManagementModule : ModuleBase { - private readonly string[] _freelyAssignedRoles = ConfigurationManager.AppSettings["FreelyAssignedRoles"].Split(';').Select(x => x.Trim()).ToArray(); + private readonly string[] _freelyAssignedRoles; + + public RoleManagementModule(IConfiguration configuration) + { + _freelyAssignedRoles = configuration["FreelyAssignedRoles"].Split(';').Select(x => x.Trim()).ToArray(); + } [Command("role")] [Summary("Adds or removes a specified role to the user.")] diff --git a/Orabot.Core/Orabot.Core.csproj b/Orabot.Core/Orabot.Core.csproj index e59149d..1858ef2 100644 --- a/Orabot.Core/Orabot.Core.csproj +++ b/Orabot.Core/Orabot.Core.csproj @@ -6,9 +6,9 @@ + - diff --git a/Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs b/Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs index cb81d2f..e0d8297 100644 --- a/Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs +++ b/Orabot.Core/Transformers/AttachmentToMessageTransformers/AttachmentLogFileToMessageTransformer.cs @@ -1,18 +1,23 @@ using System; -using System.Configuration; using System.IO; using System.Linq; using System.Net; +using Microsoft.Extensions.Configuration; namespace Orabot.Core.Transformers.AttachmentToMessageTransformers { internal class AttachmentLogFileToMessageTransformer { - private static readonly string LogStorageFolder = ConfigurationManager.AppSettings["LogStorageFolder"]; + private readonly string _logStorageFolder; + + public AttachmentLogFileToMessageTransformer(IConfiguration configuration) + { + _logStorageFolder = configuration["LogStorageFolder"]; + } internal string CreateRawMessage(Discord.Attachment attachment, out string fullText) { - var filePath = Path.Combine(LogStorageFolder, $"{Guid.NewGuid()}_{attachment.Filename}"); + var filePath = Path.Combine(_logStorageFolder, $"{Guid.NewGuid()}_{attachment.Filename}"); using var webClient = new WebClient(); webClient.DownloadFile(attachment.Url, filePath); diff --git a/Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs b/Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs index 2d410ad..bfe79b6 100644 --- a/Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs +++ b/Orabot.Core/Transformers/Replays/ReplayToReplayDataTransformers/AttachmentReplayToUtilityMetadataTransformer.cs @@ -1,9 +1,9 @@ using System; -using System.Configuration; using System.Diagnostics; using System.IO; using System.Net; using System.Runtime.InteropServices; +using Microsoft.Extensions.Configuration; using Orabot.Core.Objects.OpenRaReplay; using YamlDotNet.Serialization; @@ -11,19 +11,21 @@ namespace Orabot.Core.Transformers.Replays.ReplayToReplayDataTransformers { internal class AttachmentReplayToUtilityMetadataTransformer { - private static readonly string ReplayStorageFolder = ConfigurationManager.AppSettings["ReplayStorageFolder"]; - private static readonly string OpenRaUtilityPath = ConfigurationManager.AppSettings["OpenRaUtilityPath"]; + private readonly string _openRaUtilityPath; + private readonly string _replayStorageFolder; private readonly Deserializer _yamlDeserializer; - public AttachmentReplayToUtilityMetadataTransformer(Deserializer yamlDeserializer) + public AttachmentReplayToUtilityMetadataTransformer(Deserializer yamlDeserializer, IConfiguration configuration) { _yamlDeserializer = yamlDeserializer; + _openRaUtilityPath = configuration["OpenRaUtilityPath"]; + _replayStorageFolder = configuration["ReplayStorageFolder"]; } internal ReplayMetadata GetMetadata(Discord.Attachment attachment) { - var filePath = Path.Combine(ReplayStorageFolder, $"{Guid.NewGuid()}_{attachment.Filename}"); + var filePath = Path.Combine(_replayStorageFolder, $"{Guid.NewGuid()}_{attachment.Filename}"); using var webClient = new WebClient(); webClient.DownloadFile(attachment.Url, filePath); @@ -57,7 +59,7 @@ private string GetUtilityOutput(string filePath) return output; } - private static ProcessStartInfo GetProcessStartInfo(string filePath) + private ProcessStartInfo GetProcessStartInfo(string filePath) { string fileName; string arguments; @@ -66,13 +68,13 @@ private static ProcessStartInfo GetProcessStartInfo(string filePath) // This will likely go away once OpenRA switches to .NET 5. if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { - fileName = OpenRaUtilityPath; + fileName = _openRaUtilityPath; arguments = $"d2k --replay-metadata \"{filePath}\""; } else { fileName = "mono"; - arguments = $"{OpenRaUtilityPath} d2k --replay-metadata \"{filePath}\""; + arguments = $"{_openRaUtilityPath} d2k --replay-metadata \"{filePath}\""; } return new ProcessStartInfo diff --git a/Orabot.Hosts.ConsoleHost/App.config b/Orabot.Hosts.ConsoleHost/App.config deleted file mode 100644 index aee5105..0000000 --- a/Orabot.Hosts.ConsoleHost/App.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj b/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj index cbdf4d0..5b38e18 100644 --- a/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj +++ b/Orabot.Hosts.ConsoleHost/Orabot.Hosts.ConsoleHost.csproj @@ -13,4 +13,10 @@ + + + Always + + + diff --git a/Orabot.Hosts.ConsoleHost/Program.cs b/Orabot.Hosts.ConsoleHost/Program.cs index a2c6503..e25539a 100644 --- a/Orabot.Hosts.ConsoleHost/Program.cs +++ b/Orabot.Hosts.ConsoleHost/Program.cs @@ -15,6 +15,7 @@ class Program static void Main(string[] args) { var serviceProvider = new ServiceCollection() + .AddAppSettingsConfiguration() .AddSingleton() .AddSingleton() .AddSingleton() diff --git a/Orabot.Hosts.ConsoleHost/appsettings.json b/Orabot.Hosts.ConsoleHost/appsettings.json new file mode 100644 index 0000000..cc75ea7 --- /dev/null +++ b/Orabot.Hosts.ConsoleHost/appsettings.json @@ -0,0 +1,12 @@ +{ + "BotToken": "", + "GitHubIconsBaseUrl": "http://openra.mine.nu/Icons/", + "OpenRaFaviconUrl": "http://openra.mine.nu/Icons/OpenRA_favicon.png", + "TrustedRoles": "Caretaker;Technical Advisor;Developers", + "RoleAssignmentMessageId": 0, + "FreelyAssignedRolesByEmote": "tiberium:Tiberian Dawn; nod:Tiberian Dawn; gdi:TiberianDawn; allies:Red Alert; Atreides:Dune 2000; shaihulud:Dune 2000; Harkonnen:Dune 2000; Ordos:Dune 2000;", + "FreelyAssignedRoles": "Viewers", + "LogStorageFolder": "", + "ReplayStorageFolder": "", + "OpenRaUtilityPath": "" +} \ No newline at end of file