mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-04 00:34:26 -05:00 
			
		
		
		
	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:
		@@ -105,7 +105,7 @@ namespace NadekoBot
 | 
			
		||||
                .AddSingleton<ISeria, JsonSeria>()
 | 
			
		||||
                .AddSingleton<IPubSub, RedisPubSub>()
 | 
			
		||||
                .AddSingleton<IConfigSeria, YamlSeria>()
 | 
			
		||||
                .AddBotStringsServices()
 | 
			
		||||
                .AddBotStringsServices(_creds.TotalShards)
 | 
			
		||||
                .AddConfigServices()
 | 
			
		||||
                .AddConfigMigrators()
 | 
			
		||||
                .AddMemoryCache()
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
        {
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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 () =>
 | 
			
		||||
 
 | 
			
		||||
@@ -64,5 +64,10 @@ namespace NadekoBot.Services
 | 
			
		||||
        {
 | 
			
		||||
            return _client.Guilds.Count;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Task Reload()
 | 
			
		||||
        {
 | 
			
		||||
            return Task.CompletedTask;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1263,3 +1263,5 @@ imageonlychannel:
 | 
			
		||||
  - imageonlychannel
 | 
			
		||||
  - imageonly
 | 
			
		||||
  - imagesonly
 | 
			
		||||
coordreload:
 | 
			
		||||
  - coordreload
 | 
			
		||||
@@ -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:
 | 
			
		||||
    - "" 
 | 
			
		||||
		Reference in New Issue
	
	Block a user