diff --git a/locale/Messages.resx b/locale/Messages.resx
index e7eb832..1ebd008 100644
--- a/locale/Messages.resx
+++ b/locale/Messages.resx
@@ -400,7 +400,7 @@
Octobot's source code
- About Octobot
+ About {0}
developer & designer, Octobot's Wiki creator
diff --git a/locale/Messages.ru.resx b/locale/Messages.ru.resx
index 7d7a725..333fae0 100644
--- a/locale/Messages.ru.resx
+++ b/locale/Messages.ru.resx
@@ -400,7 +400,7 @@
Исходный код Octobot
- Об Octobot
+ О боте {0}
разработчик
diff --git a/locale/Messages.tt-ru.resx b/locale/Messages.tt-ru.resx
index 82ce19a..b0036f5 100644
--- a/locale/Messages.tt-ru.resx
+++ b/locale/Messages.tt-ru.resx
@@ -400,7 +400,7 @@
репа Octobot (тык)
- немного об Octobot
+ немного об {0}
скучный девелопер + дизайнер создавший Octobot's Wiki
diff --git a/src/Commands/AboutCommandGroup.cs b/src/Commands/AboutCommandGroup.cs
index eec1f99..4c396d9 100644
--- a/src/Commands/AboutCommandGroup.cs
+++ b/src/Commands/AboutCommandGroup.cs
@@ -28,11 +28,11 @@ namespace Octobot.Commands;
public class AboutCommandGroup : CommandGroup
{
private static readonly (string Username, Snowflake Id)[] Developers =
- {
+ [
("Octol1ttle", new Snowflake(504343489664909322)),
("mctaylors", new Snowflake(326642240229474304)),
("neroduckale", new Snowflake(474943797063843851))
- };
+ ];
private readonly ICommandContext _context;
private readonly IFeedbackService _feedback;
@@ -96,7 +96,8 @@ public class AboutCommandGroup : CommandGroup
builder.AppendBulletPointLine($"{tag} — {$"AboutDeveloper@{dev.Username}".Localized()}");
}
- var embed = new EmbedBuilder().WithSmallTitle(Messages.AboutBot, bot)
+ var embed = new EmbedBuilder()
+ .WithSmallTitle(string.Format(Messages.AboutBot, bot.Username), bot)
.WithDescription(builder.ToString())
.WithColour(ColorsList.Cyan)
.WithImageUrl("https://cdn.mctaylors.ru/octobot-banner.png")
diff --git a/src/Commands/BanCommandGroup.cs b/src/Commands/BanCommandGroup.cs
index f0da978..bbcf459 100644
--- a/src/Commands/BanCommandGroup.cs
+++ b/src/Commands/BanCommandGroup.cs
@@ -33,12 +33,12 @@ public class BanCommandGroup : CommandGroup
private readonly IDiscordRestGuildAPI _guildApi;
private readonly GuildDataService _guildData;
private readonly IDiscordRestUserAPI _userApi;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public BanCommandGroup(
ICommandContext context, IDiscordRestChannelAPI channelApi, GuildDataService guildData,
IFeedbackService feedback, IDiscordRestGuildAPI guildApi, IDiscordRestUserAPI userApi,
- UtilityService utility)
+ Utility utility)
{
_context = context;
_channelApi = channelApi;
diff --git a/src/Commands/ClearCommandGroup.cs b/src/Commands/ClearCommandGroup.cs
index 7ebd4ea..1d0ad64 100644
--- a/src/Commands/ClearCommandGroup.cs
+++ b/src/Commands/ClearCommandGroup.cs
@@ -30,11 +30,11 @@ public class ClearCommandGroup : CommandGroup
private readonly IFeedbackService _feedback;
private readonly GuildDataService _guildData;
private readonly IDiscordRestUserAPI _userApi;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public ClearCommandGroup(
IDiscordRestChannelAPI channelApi, ICommandContext context, GuildDataService guildData,
- IFeedbackService feedback, IDiscordRestUserAPI userApi, UtilityService utility)
+ IFeedbackService feedback, IDiscordRestUserAPI userApi, Utility utility)
{
_channelApi = channelApi;
_context = context;
diff --git a/src/Commands/KickCommandGroup.cs b/src/Commands/KickCommandGroup.cs
index cad8ea9..ee94b93 100644
--- a/src/Commands/KickCommandGroup.cs
+++ b/src/Commands/KickCommandGroup.cs
@@ -30,12 +30,12 @@ public class KickCommandGroup : CommandGroup
private readonly IDiscordRestGuildAPI _guildApi;
private readonly GuildDataService _guildData;
private readonly IDiscordRestUserAPI _userApi;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public KickCommandGroup(
ICommandContext context, IDiscordRestChannelAPI channelApi, GuildDataService guildData,
IFeedbackService feedback, IDiscordRestGuildAPI guildApi, IDiscordRestUserAPI userApi,
- UtilityService utility)
+ Utility utility)
{
_context = context;
_channelApi = channelApi;
diff --git a/src/Commands/MuteCommandGroup.cs b/src/Commands/MuteCommandGroup.cs
index 6a28f38..522c7f7 100644
--- a/src/Commands/MuteCommandGroup.cs
+++ b/src/Commands/MuteCommandGroup.cs
@@ -32,11 +32,11 @@ public class MuteCommandGroup : CommandGroup
private readonly IDiscordRestGuildAPI _guildApi;
private readonly GuildDataService _guildData;
private readonly IDiscordRestUserAPI _userApi;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public MuteCommandGroup(
ICommandContext context, GuildDataService guildData, IFeedbackService feedback,
- IDiscordRestGuildAPI guildApi, IDiscordRestUserAPI userApi, UtilityService utility)
+ IDiscordRestGuildAPI guildApi, IDiscordRestUserAPI userApi, Utility utility)
{
_context = context;
_guildData = guildData;
diff --git a/src/Commands/SettingsCommandGroup.cs b/src/Commands/SettingsCommandGroup.cs
index d379c41..7d4a72e 100644
--- a/src/Commands/SettingsCommandGroup.cs
+++ b/src/Commands/SettingsCommandGroup.cs
@@ -36,7 +36,7 @@ public class SettingsCommandGroup : CommandGroup
/// that the orders match.
///
private static readonly IOption[] AllOptions =
- {
+ [
GuildSettings.Language,
GuildSettings.WelcomeMessage,
GuildSettings.LeaveMessage,
@@ -52,17 +52,17 @@ public class SettingsCommandGroup : CommandGroup
GuildSettings.MuteRole,
GuildSettings.EventNotificationRole,
GuildSettings.EventEarlyNotificationOffset
- };
+ ];
private readonly ICommandContext _context;
private readonly IFeedbackService _feedback;
private readonly GuildDataService _guildData;
private readonly IDiscordRestUserAPI _userApi;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public SettingsCommandGroup(
ICommandContext context, GuildDataService guildData,
- IFeedbackService feedback, IDiscordRestUserAPI userApi, UtilityService utility)
+ IFeedbackService feedback, IDiscordRestUserAPI userApi, Utility utility)
{
_context = context;
_guildData = guildData;
diff --git a/src/Commands/ToolsCommandGroup.cs b/src/Commands/ToolsCommandGroup.cs
index 78058cb..f04ddf6 100644
--- a/src/Commands/ToolsCommandGroup.cs
+++ b/src/Commands/ToolsCommandGroup.cs
@@ -393,7 +393,7 @@ public class ToolsCommandGroup : CommandGroup
}
private static readonly TimestampStyle[] AllStyles =
- {
+ [
TimestampStyle.ShortDate,
TimestampStyle.LongDate,
TimestampStyle.ShortTime,
@@ -401,7 +401,7 @@ public class ToolsCommandGroup : CommandGroup
TimestampStyle.ShortDateTime,
TimestampStyle.LongDateTime,
TimestampStyle.RelativeTime
- };
+ ];
///
/// A slash command that shows the current timestamp with an optional offset in all styles supported by Discord.
diff --git a/src/Octobot.cs b/src/Octobot.cs
index 1806330..5cffd70 100644
--- a/src/Octobot.cs
+++ b/src/Octobot.cs
@@ -87,7 +87,7 @@ public sealed class Octobot
.AddPostExecutionEvent()
// Services
.AddSingleton()
- .AddSingleton()
+ .AddSingleton()
.AddHostedService()
.AddHostedService()
.AddHostedService()
diff --git a/src/Responders/GuildLoadedResponder.cs b/src/Responders/GuildLoadedResponder.cs
index 2d66a3b..a1e7d16 100644
--- a/src/Responders/GuildLoadedResponder.cs
+++ b/src/Responders/GuildLoadedResponder.cs
@@ -25,11 +25,11 @@ public class GuildLoadedResponder : IResponder
private readonly GuildDataService _guildData;
private readonly ILogger _logger;
private readonly IDiscordRestUserAPI _userApi;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public GuildLoadedResponder(
IDiscordRestChannelAPI channelApi, GuildDataService guildData, ILogger logger,
- IDiscordRestUserAPI userApi, UtilityService utility)
+ IDiscordRestUserAPI userApi, Utility utility)
{
_channelApi = channelApi;
_guildData = guildData;
diff --git a/src/Services/GuildDataService.cs b/src/Services/GuildDataService.cs
index 3cc8cea..961c8f9 100644
--- a/src/Services/GuildDataService.cs
+++ b/src/Services/GuildDataService.cs
@@ -11,7 +11,7 @@ namespace Octobot.Services;
///
/// Handles saving, loading, initializing and providing .
///
-public sealed class GuildDataService : IHostedService
+public sealed class GuildDataService
{
private readonly ConcurrentDictionary _datas = new();
private readonly ILogger _logger;
@@ -24,16 +24,6 @@ public sealed class GuildDataService : IHostedService
lifetime.ApplicationStopping.Register(ApplicationStopping);
}
- public Task StartAsync(CancellationToken ct)
- {
- return Task.CompletedTask;
- }
-
- public Task StopAsync(CancellationToken ct)
- {
- return Task.CompletedTask;
- }
-
private void ApplicationStopping()
{
SaveAsync(CancellationToken.None).GetAwaiter().GetResult();
diff --git a/src/Services/Update/MemberUpdateService.cs b/src/Services/Update/MemberUpdateService.cs
index e7860ae..06e531f 100644
--- a/src/Services/Update/MemberUpdateService.cs
+++ b/src/Services/Update/MemberUpdateService.cs
@@ -16,7 +16,7 @@ namespace Octobot.Services.Update;
public sealed partial class MemberUpdateService : BackgroundService
{
private static readonly string[] GenericNicknames =
- {
+ [
"Albatross", "Alpha", "Anchor", "Banjo", "Bell", "Beta", "Blackbird", "Bulldog", "Canary",
"Cat", "Calf", "Cyclone", "Daisy", "Dalmatian", "Dart", "Delta", "Diamond", "Donkey", "Duck",
"Emu", "Eclipse", "Flamingo", "Flute", "Frog", "Goose", "Hatchet", "Heron", "Husky", "Hurricane",
@@ -24,16 +24,16 @@ public sealed partial class MemberUpdateService : BackgroundService
"Nautilus", "Ostrich", "Octopus", "Pelican", "Puffin", "Pyramid", "Rattle", "Robin", "Rose",
"Salmon", "Seal", "Shark", "Sheep", "Snake", "Sonar", "Stump", "Sparrow", "Toaster", "Toucan",
"Torus", "Violet", "Vortex", "Vulture", "Wagon", "Whale", "Woodpecker", "Zebra", "Zigzag"
- };
+ ];
private readonly IDiscordRestChannelAPI _channelApi;
private readonly IDiscordRestGuildAPI _guildApi;
private readonly GuildDataService _guildData;
private readonly ILogger _logger;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public MemberUpdateService(IDiscordRestChannelAPI channelApi, IDiscordRestGuildAPI guildApi,
- GuildDataService guildData, ILogger logger, UtilityService utility)
+ GuildDataService guildData, ILogger logger, Utility utility)
{
_channelApi = channelApi;
_guildApi = guildApi;
diff --git a/src/Services/Update/ScheduledEventUpdateService.cs b/src/Services/Update/ScheduledEventUpdateService.cs
index dd9be0d..ac5c109 100644
--- a/src/Services/Update/ScheduledEventUpdateService.cs
+++ b/src/Services/Update/ScheduledEventUpdateService.cs
@@ -19,10 +19,10 @@ public sealed class ScheduledEventUpdateService : BackgroundService
private readonly IDiscordRestGuildScheduledEventAPI _eventApi;
private readonly GuildDataService _guildData;
private readonly ILogger _logger;
- private readonly UtilityService _utility;
+ private readonly Utility _utility;
public ScheduledEventUpdateService(IDiscordRestChannelAPI channelApi, IDiscordRestGuildScheduledEventAPI eventApi,
- GuildDataService guildData, ILogger logger, UtilityService utility)
+ GuildDataService guildData, ILogger logger, Utility utility)
{
_channelApi = channelApi;
_eventApi = eventApi;
diff --git a/src/Services/Update/SongUpdateService.cs b/src/Services/Update/SongUpdateService.cs
index 391c416..53cc59b 100644
--- a/src/Services/Update/SongUpdateService.cs
+++ b/src/Services/Update/SongUpdateService.cs
@@ -9,7 +9,7 @@ namespace Octobot.Services.Update;
public sealed class SongUpdateService : BackgroundService
{
private static readonly (string Author, string Name, TimeSpan Duration)[] SongList =
- {
+ [
("Yoko & the Gold Bazookas", "Rockagilly Blues", new TimeSpan(0, 2, 52)),
("Deep Cut", "Big Betrayal", new TimeSpan(0, 5, 55)),
("Squid Sisters", "Tomorrow's Nostalgia Today", new TimeSpan(0, 3, 7)),
@@ -30,7 +30,7 @@ public sealed class SongUpdateService : BackgroundService
("Turquoise October", "Octoling Rendezvous", new TimeSpan(0, 1, 57)),
("Damp Socks feat. Off the Hook", "Tentacle to the Metal", new TimeSpan(0, 2, 51)),
("Off the Hook", "Fly Octo Fly ~ Ebb & Flow (Octo)", new TimeSpan(0, 3, 5))
- };
+ ];
private readonly List _activityList = [new Activity("with Remora.Discord", ActivityType.Game)];
diff --git a/src/Services/UtilityService.cs b/src/Services/Utility.cs
similarity index 97%
rename from src/Services/UtilityService.cs
rename to src/Services/Utility.cs
index 9ac481b..401b067 100644
--- a/src/Services/UtilityService.cs
+++ b/src/Services/Utility.cs
@@ -1,7 +1,6 @@
using System.Drawing;
using System.Text;
using System.Text.Json.Nodes;
-using Microsoft.Extensions.Hosting;
using Octobot.Data;
using Octobot.Extensions;
using Remora.Discord.API.Abstractions.Objects;
@@ -17,14 +16,14 @@ namespace Octobot.Services;
/// Provides utility methods that cannot be transformed to extension methods because they require usage
/// of some Discord APIs.
///
-public sealed class UtilityService : IHostedService
+public sealed class Utility
{
private readonly IDiscordRestChannelAPI _channelApi;
private readonly IDiscordRestGuildScheduledEventAPI _eventApi;
private readonly IDiscordRestGuildAPI _guildApi;
private readonly IDiscordRestUserAPI _userApi;
- public UtilityService(
+ public Utility(
IDiscordRestChannelAPI channelApi, IDiscordRestGuildScheduledEventAPI eventApi, IDiscordRestGuildAPI guildApi,
IDiscordRestUserAPI userApi)
{
@@ -34,16 +33,6 @@ public sealed class UtilityService : IHostedService
_userApi = userApi;
}
- public Task StartAsync(CancellationToken ct)
- {
- return Task.CompletedTask;
- }
-
- public Task StopAsync(CancellationToken ct)
- {
- return Task.CompletedTask;
- }
-
///
/// Checks whether or not a member can interact with another member
///