Added .coordreload which will reload coord.yml when using NadekoBot.Coordinator

- bots with more than 1 shard will now use redis strings provider
This commit is contained in:
Kwoth
2021-12-01 09:41:23 +01:00
parent 1e6d0806d7
commit 219ca39cd1
8 changed files with 37 additions and 7 deletions

View File

@@ -105,7 +105,7 @@ namespace NadekoBot
.AddSingleton<ISeria, JsonSeria>()
.AddSingleton<IPubSub, RedisPubSub>()
.AddSingleton<IConfigSeria, YamlSeria>()
.AddBotStringsServices()
.AddBotStringsServices(_creds.TotalShards)
.AddConfigServices()
.AddConfigMigrators()
.AddMemoryCache()

View File

@@ -14,11 +14,15 @@ namespace NadekoBot.Extensions
{
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddBotStringsServices(this IServiceCollection services)
=> services
.AddSingleton<IStringsSource, LocalFileStringsSource>()
.AddSingleton<IBotStringsProvider, LocalBotStringsProvider>()
.AddSingleton<IBotStrings, BotStrings>();
public static IServiceCollection AddBotStringsServices(this IServiceCollection services, int totalShards)
=> totalShards <= 1
? services
.AddSingleton<IStringsSource, LocalFileStringsSource>()
.AddSingleton<IBotStringsProvider, LocalBotStringsProvider>()
.AddSingleton<IBotStrings, BotStrings>()
: services.AddSingleton<IStringsSource, LocalFileStringsSource>()
.AddSingleton<IBotStringsProvider, RedisBotStringsProvider>()
.AddSingleton<IBotStrings, BotStrings>();
public static IServiceCollection AddConfigServices(this IServiceCollection services)
{

View File

@@ -506,6 +506,14 @@ namespace NadekoBot.Modules.Administration
_strings.Reload();
await ReplyConfirmLocalizedAsync(strs.bot_strings_reloaded).ConfigureAwait(false);
}
[NadekoCommand, Aliases]
[OwnerOnly]
public async Task CoordReload()
{
await _coord.Reload();
await ctx.OkAsync();
}
private static UserStatus SettableUserStatusToUserStatus(SettableUserStatus sus)
{

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace NadekoBot.Services
{
@@ -10,6 +11,7 @@ namespace NadekoBot.Services
bool RestartShard(int shardId);
IList<ShardStatus> GetAllShardStatuses();
int GetGuildCount();
Task Reload();
}
public class ShardStatus

View File

@@ -79,6 +79,11 @@ namespace NadekoBot.Services
return res.Statuses.Sum(x => x.GuildCount);
}
public async Task Reload()
{
await _coordClient.ReloadAsync(new());
}
public Task OnReadyAsync()
{
Task.Run(async () =>

View File

@@ -64,5 +64,10 @@ namespace NadekoBot.Services
{
return _client.Guilds.Count;
}
public Task Reload()
{
return Task.CompletedTask;
}
}
}

View File

@@ -1263,3 +1263,5 @@ imageonlychannel:
- imageonlychannel
- imageonly
- imagesonly
coordreload:
- coordreload

View File

@@ -2138,4 +2138,8 @@ imageonlychannel:
Toggles whether the channel only allows images.
Users who send more than a few non-image messages will be banned from using the channel.
args:
- ""
- ""
coordreload:
desc: "Reloads coordinator config"
args:
- ""