mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-03 16:24:27 -05:00 
			
		
		
		
	Gambling moved to a separate project. Project builds
This commit is contained in:
		@@ -35,13 +35,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Common", "src\Nadeko
 | 
				
			|||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Econ", "src\Nadeko.Econ\Nadeko.Econ.csproj", "{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37}"
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Econ", "src\Nadeko.Econ\Nadeko.Econ.csproj", "{4F4FBF7C-74F0-4AE4-B451-9E60BDCA9C37}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NadekoBot.Modules.Expresssions", "src\NadekoBot.Modules.Expresssions\NadekoBot.Modules.Expresssions.csproj", "{92E239B9-C230-4475-9506-BED20174FD20}"
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Modules.Expresssions", "src\Nadeko.Bot.Modules.Expresssions\Nadeko.Bot.Modules.Expresssions.csproj", "{92E239B9-C230-4475-9506-BED20174FD20}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Db", "src\Nadeko.Bot.Db\Nadeko.Bot.Db.csproj", "{02499E3E-3B04-4BC8-9B3C-D9494661F78E}"
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Db", "src\Nadeko.Bot.Db\Nadeko.Bot.Db.csproj", "{02499E3E-3B04-4BC8-9B3C-D9494661F78E}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Common", "src\Nadeko.Bot.Common\Nadeko.Bot.Common.csproj", "{02ABC10E-3323-4698-A388-C61D7D03797E}"
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Common", "src\Nadeko.Bot.Common\Nadeko.Bot.Common.csproj", "{02ABC10E-3323-4698-A388-C61D7D03797E}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Generators.Cloneable", "src\Nadeko.Bot.Generators.Cloneable\Nadeko.Bot.Generators.Cloneable.csproj", "{A5E71EE3-786E-438C-95C0-5BC558FCECCF}"
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nadeko.Bot.Modules.Gambling", "src\Nadeko.Bot.Modules.Gambling\Nadeko.Bot.Modules.Gambling.csproj", "{5F4F36A5-5874-4461-BB34-EE107E4B7F15}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Global
 | 
					Global
 | 
				
			||||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
@@ -122,12 +122,12 @@ Global
 | 
				
			|||||||
		{02ABC10E-3323-4698-A388-C61D7D03797E}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
 | 
							{02ABC10E-3323-4698-A388-C61D7D03797E}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
		{02ABC10E-3323-4698-A388-C61D7D03797E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
							{02ABC10E-3323-4698-A388-C61D7D03797E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
		{02ABC10E-3323-4698-A388-C61D7D03797E}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
							{02ABC10E-3323-4698-A388-C61D7D03797E}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF}.GlobalNadeko|Any CPU.ActiveCfg = Debug|Any CPU
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15}.GlobalNadeko|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15}.GlobalNadeko|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
	EndGlobalSection
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(SolutionProperties) = preSolution
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
		HideSolutionNode = FALSE
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
@@ -146,7 +146,7 @@ Global
 | 
				
			|||||||
		{92E239B9-C230-4475-9506-BED20174FD20} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
							{92E239B9-C230-4475-9506-BED20174FD20} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
				
			||||||
		{02499E3E-3B04-4BC8-9B3C-D9494661F78E} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
							{02499E3E-3B04-4BC8-9B3C-D9494661F78E} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
				
			||||||
		{02ABC10E-3323-4698-A388-C61D7D03797E} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
							{02ABC10E-3323-4698-A388-C61D7D03797E} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
				
			||||||
		{A5E71EE3-786E-438C-95C0-5BC558FCECCF} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
							{5F4F36A5-5874-4461-BB34-EE107E4B7F15} = {04929013-5BAB-42B0-B9B2-8F2BB8F16AF2}
 | 
				
			||||||
	EndGlobalSection
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(ExtensibilityGlobals) = postSolution
 | 
						GlobalSection(ExtensibilityGlobals) = postSolution
 | 
				
			||||||
		SolutionGuid = {5F3F555C-855F-4BE8-B526-D062D3E8ACA4}
 | 
							SolutionGuid = {5F3F555C-855F-4BE8-B526-D062D3E8ACA4}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,6 @@
 | 
				
			|||||||
#nullable disable
 | 
					#nullable disable
 | 
				
			||||||
 | 
					using NadekoBot.Common;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace NadekoBot;
 | 
					namespace NadekoBot;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface IBotCredentials
 | 
					public interface IBotCredentials
 | 
				
			||||||
@@ -9,14 +11,14 @@ public interface IBotCredentials
 | 
				
			|||||||
    bool UsePrivilegedIntents { get; }
 | 
					    bool UsePrivilegedIntents { get; }
 | 
				
			||||||
    string RapidApiKey { get; }
 | 
					    string RapidApiKey { get; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    IDbOptions Db { get; }
 | 
					    Creds.DbOptions Db { get; }
 | 
				
			||||||
    string OsuApiKey { get; }
 | 
					    string OsuApiKey { get; }
 | 
				
			||||||
    int TotalShards { get; }
 | 
					    int TotalShards { get; }
 | 
				
			||||||
    IPatreonSettings Patreon { get; }
 | 
					    Creds.PatreonSettings Patreon { get; }
 | 
				
			||||||
    string CleverbotApiKey { get; }
 | 
					    string CleverbotApiKey { get; }
 | 
				
			||||||
    string Gpt3ApiKey { get; }
 | 
					    string Gpt3ApiKey { get; }
 | 
				
			||||||
    IRestartConfig RestartCommand { get; }
 | 
					    RestartConfig RestartCommand { get; }
 | 
				
			||||||
    IVotesSettings Votes { get; }
 | 
					    Creds.VotesSettings Votes { get; }
 | 
				
			||||||
    string BotListToken { get; }
 | 
					    string BotListToken { get; }
 | 
				
			||||||
    string RedisOptions { get; }
 | 
					    string RedisOptions { get; }
 | 
				
			||||||
    string LocationIqApiKey { get; }
 | 
					    string LocationIqApiKey { get; }
 | 
				
			||||||
@@ -26,7 +28,7 @@ public interface IBotCredentials
 | 
				
			|||||||
    string CoordinatorUrl { get; set; }
 | 
					    string CoordinatorUrl { get; set; }
 | 
				
			||||||
    string TwitchClientId { get; set; }
 | 
					    string TwitchClientId { get; set; }
 | 
				
			||||||
    string TwitchClientSecret { get; set; }
 | 
					    string TwitchClientSecret { get; set; }
 | 
				
			||||||
    IGoogleApiConfig Google { get; set; }
 | 
					    GoogleApiConfig Google { get; set; }
 | 
				
			||||||
    BotCacheImplemenation BotCache { get; set; }
 | 
					    BotCacheImplemenation BotCache { get; set; }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,4 @@
 | 
				
			|||||||
using Microsoft.Extensions.DependencyInjection;
 | 
					using Microsoft.Extensions.DependencyInjection;
 | 
				
			||||||
using NadekoBot.Modules.Administration.Services;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Discord;
 | 
					namespace Discord;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -21,7 +20,7 @@ public class UserPermAttribute : RequireUserPermissionAttribute
 | 
				
			|||||||
        CommandInfo command,
 | 
					        CommandInfo command,
 | 
				
			||||||
        IServiceProvider services)
 | 
					        IServiceProvider services)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        var permService = services.GetRequiredService<DiscordPermOverrideService>();
 | 
					        var permService = services.GetRequiredService<IDiscordPermOverrideService>();
 | 
				
			||||||
        if (permService.TryGetOverrides(context.Guild?.Id ?? 0, command.Name.ToUpperInvariant(), out _))
 | 
					        if (permService.TryGetOverrides(context.Guild?.Id ?? 0, command.Name.ToUpperInvariant(), out _))
 | 
				
			||||||
            return Task.FromResult(PreconditionResult.FromSuccess());
 | 
					            return Task.FromResult(PreconditionResult.FromSuccess());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,12 +1,14 @@
 | 
				
			|||||||
#nullable disable
 | 
					#nullable disable
 | 
				
			||||||
 | 
					using NadekoBot.Services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace NadekoBot.Common.TypeReaders;
 | 
					namespace NadekoBot.Common.TypeReaders;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public sealed class CommandTypeReader : NadekoTypeReader<CommandInfo>
 | 
					public sealed class CommandTypeReader : NadekoTypeReader<CommandInfo>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    private readonly CommandService _cmds;
 | 
					    private readonly CommandService _cmds;
 | 
				
			||||||
    private readonly CommandHandler _handler;
 | 
					    private readonly ICommandHandler _handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public CommandTypeReader(CommandHandler handler, CommandService cmds)
 | 
					    public CommandTypeReader(ICommandHandler handler, CommandService cmds)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _handler = handler;
 | 
					        _handler = handler;
 | 
				
			||||||
        _cmds = cmds;
 | 
					        _cmds = cmds;
 | 
				
			||||||
@@ -47,16 +47,16 @@ public sealed class Creds : IBotCredentials
 | 
				
			|||||||
            
 | 
					            
 | 
				
			||||||
            Do all steps again but enable image search for the ImageSearchId
 | 
					            Do all steps again but enable image search for the ImageSearchId
 | 
				
			||||||
            """)]
 | 
					            """)]
 | 
				
			||||||
    public IGoogleApiConfig Google { get; set; }
 | 
					    public GoogleApiConfig Google { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Comment("""Settings for voting system for discordbots. Meant for use on global Nadeko.""")]
 | 
					    [Comment("""Settings for voting system for discordbots. Meant for use on global Nadeko.""")]
 | 
				
			||||||
    public IVotesSettings Votes { get; set; }
 | 
					    public VotesSettings Votes { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Comment("""
 | 
					    [Comment("""
 | 
				
			||||||
        Patreon auto reward system settings.
 | 
					        Patreon auto reward system settings.
 | 
				
			||||||
        go to https://www.patreon.com/portal -> my clients -> create client
 | 
					        go to https://www.patreon.com/portal -> my clients -> create client
 | 
				
			||||||
        """)]
 | 
					        """)]
 | 
				
			||||||
    public IPatreonSettings Patreon { get; set; }
 | 
					    public PatreonSettings Patreon { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Comment("""Api key for sending stats to DiscordBotList.""")]
 | 
					    [Comment("""Api key for sending stats to DiscordBotList.""")]
 | 
				
			||||||
    public string BotListToken { get; set; }
 | 
					    public string BotListToken { get; set; }
 | 
				
			||||||
@@ -81,7 +81,7 @@ public sealed class Creds : IBotCredentials
 | 
				
			|||||||
    public string RedisOptions { get; set; }
 | 
					    public string RedisOptions { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Comment("""Database options. Don't change if you don't know what you're doing. Leave null for default values""")]
 | 
					    [Comment("""Database options. Don't change if you don't know what you're doing. Leave null for default values""")]
 | 
				
			||||||
    public IDbOptions Db { get; set; }
 | 
					    public DbOptions Db { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [Comment("""
 | 
					    [Comment("""
 | 
				
			||||||
        Address and port of the coordinator endpoint. Leave empty for default.
 | 
					        Address and port of the coordinator endpoint. Leave empty for default.
 | 
				
			||||||
@@ -143,7 +143,7 @@ public sealed class Creds : IBotCredentials
 | 
				
			|||||||
            cmd: NadekoBot.exe
 | 
					            cmd: NadekoBot.exe
 | 
				
			||||||
            args: "{0}"
 | 
					            args: "{0}"
 | 
				
			||||||
        """)]
 | 
					        """)]
 | 
				
			||||||
    public IRestartConfig RestartCommand { get; set; }
 | 
					    public RestartConfig RestartCommand { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Creds()
 | 
					    public Creds()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -1,16 +1,16 @@
 | 
				
			|||||||
// // global using System.Collections.Concurrent;
 | 
					// // global using System.Collections.Concurrent;
 | 
				
			||||||
// global using NonBlocking;
 | 
					global using NonBlocking;
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// // packages
 | 
					// // packages
 | 
				
			||||||
// global using Serilog;
 | 
					// global using Serilog;
 | 
				
			||||||
global using Humanizer;
 | 
					global using Humanizer;
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// // nadekobot
 | 
					// // nadekobot
 | 
				
			||||||
// global using NadekoBot;
 | 
					global using NadekoBot;
 | 
				
			||||||
// global using NadekoBot.Services;
 | 
					global using NadekoBot.Services;
 | 
				
			||||||
global using Nadeko.Common; // new project
 | 
					global using Nadeko.Common; // new project
 | 
				
			||||||
// global using NadekoBot.Common; // old + nadekobot specific things
 | 
					global using NadekoBot.Common; // old + nadekobot specific things
 | 
				
			||||||
// global using NadekoBot.Common.Attributes;
 | 
					global using NadekoBot.Common.Attributes;
 | 
				
			||||||
global using NadekoBot.Extensions;
 | 
					global using NadekoBot.Extensions;
 | 
				
			||||||
// global using Nadeko.Snake;
 | 
					// global using Nadeko.Snake;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -29,3 +29,6 @@ global using LeftoverAttribute = Discord.Commands.RemainderAttribute;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// non-essential
 | 
					// non-essential
 | 
				
			||||||
global using JetBrains.Annotations;
 | 
					global using JetBrains.Annotations;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					global using Serilog;
 | 
				
			||||||
							
								
								
									
										12
									
								
								src/Nadeko.Bot.Common/IBot.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/Nadeko.Bot.Common/IBot.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					#nullable disable
 | 
				
			||||||
 | 
					using NadekoBot.Services.Database.Models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NadekoBot;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface IBot
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    IReadOnlyList<ulong> GetCurrentGuildIds();
 | 
				
			||||||
 | 
					    event Func<GuildConfig, Task> JoinedGuild;
 | 
				
			||||||
 | 
					    IReadOnlyCollection<GuildConfig> AllGuildConfigs { get; }
 | 
				
			||||||
 | 
					    bool IsReady { get; }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								src/Nadeko.Bot.Common/ICurrencyProvider.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/Nadeko.Bot.Common/ICurrencyProvider.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					namespace Nadeko.Bot.Common;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface ICurrencyProvider
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    string GetCurrencySign();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								src/Nadeko.Bot.Common/IDiscordPermOverrideService.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/Nadeko.Bot.Common/IDiscordPermOverrideService.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					#nullable disable
 | 
				
			||||||
 | 
					namespace Nadeko.Common;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface IDiscordPermOverrideService
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    bool TryGetOverrides(ulong guildId, string commandName, out Nadeko.Bot.Db.GuildPerm? perm);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								src/Nadeko.Bot.Common/IPermissionChecker.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/Nadeko.Bot.Common/IPermissionChecker.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					using NadekoBot;
 | 
				
			||||||
 | 
					using NadekoBot.Services;
 | 
				
			||||||
 | 
					using OneOf;
 | 
				
			||||||
 | 
					using OneOf.Types;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Nadeko.Bot.Common;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface IPermissionChecker
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Task<OneOf<Success, Error<LocStr>>> CheckAsync(IGuild guild,
 | 
				
			||||||
 | 
					        IMessageChannel channel,
 | 
				
			||||||
 | 
					        IUser author,
 | 
				
			||||||
 | 
					        string module,
 | 
				
			||||||
 | 
					        string cmd);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -15,10 +15,12 @@
 | 
				
			|||||||
        <ProjectReference Include="..\Nadeko.Bot.Db\Nadeko.Bot.Db.csproj" />
 | 
					        <ProjectReference Include="..\Nadeko.Bot.Db\Nadeko.Bot.Db.csproj" />
 | 
				
			||||||
        <ProjectReference Include="..\Nadeko.Common\Nadeko.Common.csproj" />
 | 
					        <ProjectReference Include="..\Nadeko.Common\Nadeko.Common.csproj" />
 | 
				
			||||||
        <PackageReference Include="JetBrains.Annotations" Version="2022.3.1" />
 | 
					        <PackageReference Include="JetBrains.Annotations" Version="2022.3.1" />
 | 
				
			||||||
 | 
					        <PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
 | 
				
			||||||
        <PackageReference Include="SixLabors.Fonts" Version="1.0.0-beta17" />
 | 
					        <PackageReference Include="SixLabors.Fonts" Version="1.0.0-beta17" />
 | 
				
			||||||
        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
 | 
					        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
 | 
				
			||||||
        <PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta14" />
 | 
					        <PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta14" />
 | 
				
			||||||
        <PackageReference Include="SixLabors.Shapes" Version="1.0.0-beta0009" />
 | 
					        <PackageReference Include="SixLabors.Shapes" Version="1.0.0-beta0009" />
 | 
				
			||||||
 | 
					        <PackageReference Include="CommandLineParser" Version="2.9.1" />
 | 
				
			||||||
        <PackageReference Include="Humanizer" Version="2.14.1">
 | 
					        <PackageReference Include="Humanizer" Version="2.14.1">
 | 
				
			||||||
            <PrivateAssets>all</PrivateAssets>
 | 
					            <PrivateAssets>all</PrivateAssets>
 | 
				
			||||||
            <Publish>True</Publish>
 | 
					            <Publish>True</Publish>
 | 
				
			||||||
@@ -29,9 +31,6 @@
 | 
				
			|||||||
    </ItemGroup>
 | 
					    </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <ItemGroup>
 | 
					    <ItemGroup>
 | 
				
			||||||
        <None Update="data\**\*">
 | 
					        <AdditionalFiles Include="..\NadekoBot\data\strings\responses\responses.en-US.json" />
 | 
				
			||||||
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
 | 
					 | 
				
			||||||
        </None>
 | 
					 | 
				
			||||||
        <AdditionalFiles Include="data\strings\responses\responses.en-US.json" />
 | 
					 | 
				
			||||||
    </ItemGroup>
 | 
					    </ItemGroup>
 | 
				
			||||||
</Project>
 | 
					</Project>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										7
									
								
								src/Nadeko.Bot.Common/Patronage/FeatureLimitKey.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/Nadeko.Bot.Common/Patronage/FeatureLimitKey.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					namespace NadekoBot.Modules.Utility.Patronage;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public readonly struct FeatureLimitKey
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public string PrettyName { get; init; }
 | 
				
			||||||
 | 
					    public string Key { get; init; }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -2,12 +2,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public static class PatronExtensions
 | 
					public static class PatronExtensions
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public static DateOnly ToDateOnly(this DateTime dateTime)
 | 
					 | 
				
			||||||
        => DateOnly.FromDateTime(dateTime);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static bool IsBeforeToday(this DateTime date)
 | 
					 | 
				
			||||||
        => date < DateTime.UtcNow.Date;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static string ToFullName(this PatronTier tier)
 | 
					    public static string ToFullName(this PatronTier tier)
 | 
				
			||||||
        => tier switch
 | 
					        => tier switch
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -24,7 +24,7 @@ public class CommandHandler : INService, IReadyExecutor, ICommandHandler
 | 
				
			|||||||
    private readonly DiscordSocketClient _client;
 | 
					    private readonly DiscordSocketClient _client;
 | 
				
			||||||
    private readonly CommandService _commandService;
 | 
					    private readonly CommandService _commandService;
 | 
				
			||||||
    private readonly BotConfigService _bss;
 | 
					    private readonly BotConfigService _bss;
 | 
				
			||||||
    private readonly Bot _bot;
 | 
					    private readonly IBot _bot;
 | 
				
			||||||
    private readonly IBehaviorHandler _behaviorHandler;
 | 
					    private readonly IBehaviorHandler _behaviorHandler;
 | 
				
			||||||
    private readonly IServiceProvider _services;
 | 
					    private readonly IServiceProvider _services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,7 +38,7 @@ public class CommandHandler : INService, IReadyExecutor, ICommandHandler
 | 
				
			|||||||
        DbService db,
 | 
					        DbService db,
 | 
				
			||||||
        CommandService commandService,
 | 
					        CommandService commandService,
 | 
				
			||||||
        BotConfigService bss,
 | 
					        BotConfigService bss,
 | 
				
			||||||
        Bot bot,
 | 
					        IBot bot,
 | 
				
			||||||
        IBehaviorHandler behaviorHandler,
 | 
					        IBehaviorHandler behaviorHandler,
 | 
				
			||||||
        // InteractionService interactions,
 | 
					        // InteractionService interactions,
 | 
				
			||||||
        IServiceProvider services)
 | 
					        IServiceProvider services)
 | 
				
			||||||
							
								
								
									
										12
									
								
								src/Nadeko.Bot.Common/Services/IRemindService.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/Nadeko.Bot.Common/Services/IRemindService.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					#nullable disable
 | 
				
			||||||
 | 
					namespace NadekoBot.Modules.Utility.Services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface IRemindService
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Task AddReminderAsync(ulong userId,
 | 
				
			||||||
 | 
					        ulong targetId,
 | 
				
			||||||
 | 
					        ulong? guildId,
 | 
				
			||||||
 | 
					        bool isPrivate,
 | 
				
			||||||
 | 
					        DateTime time,
 | 
				
			||||||
 | 
					        string message);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -13,11 +13,6 @@ public interface IStatsService
 | 
				
			|||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    long CommandsRan { get; }
 | 
					    long CommandsRan { get; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					 | 
				
			||||||
    ///     The Discord framework used by the bot.
 | 
					 | 
				
			||||||
    /// </summary>
 | 
					 | 
				
			||||||
    string Library { get; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    ///     The amount of messages seen by the bot since startup.
 | 
					    ///     The amount of messages seen by the bot since startup.
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								src/Nadeko.Bot.Common/Services/Impl/IImageCache.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/Nadeko.Bot.Common/Services/Impl/IImageCache.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					namespace NadekoBot.Services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface IImageCache
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Task<byte[]?> GetHeadsImageAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetTailsImageAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetCurrencyImageAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetXpBackgroundImageAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetRategirlBgAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetRategirlDotAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetDiceAsync(int num);
 | 
				
			||||||
 | 
					    Task<byte[]?> GetSlotEmojiAsync(int number);
 | 
				
			||||||
 | 
					    Task<byte[]?> GetSlotBgAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetRipBgAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetRipOverlayAsync();
 | 
				
			||||||
 | 
					    Task<byte[]?> GetImageDataAsync(Uri url);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										19
									
								
								src/Nadeko.Bot.Common/Services/Impl/ImagesConfig.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/Nadeko.Bot.Common/Services/Impl/ImagesConfig.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					using NadekoBot.Common.Configs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace NadekoBot.Services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public sealed class ImagesConfig : ConfigServiceBase<ImageUrls>
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    private const string PATH = "data/images.yml";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static readonly TypedKey<ImageUrls> _changeKey =
 | 
				
			||||||
 | 
					        new("config.images.updated");
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public override string Name
 | 
				
			||||||
 | 
					        => "images";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public ImagesConfig(IConfigSeria serializer, IPubSub pubSub)
 | 
				
			||||||
 | 
					        : base(PATH, serializer, pubSub, _changeKey)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -11,6 +11,12 @@ namespace NadekoBot.Extensions;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public static class Extensions
 | 
					public static class Extensions
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    public static DateOnly ToDateOnly(this DateTime dateTime)
 | 
				
			||||||
 | 
					        => DateOnly.FromDateTime(dateTime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static bool IsBeforeToday(this DateTime date)
 | 
				
			||||||
 | 
					        => date < DateTime.UtcNow.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static readonly Regex _urlRegex =
 | 
					    private static readonly Regex _urlRegex =
 | 
				
			||||||
        new(@"^(https?|ftp)://(?<path>[^\s/$.?#].[^\s]*)$", RegexOptions.Compiled);
 | 
					        new(@"^(https?|ftp)://(?<path>[^\s/$.?#].[^\s]*)$", RegexOptions.Compiled);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -40,7 +46,7 @@ public static class Extensions
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public static ulong[] GetGuildIds(this DiscordSocketClient client)
 | 
					    public static ulong[] GetGuildIds(this DiscordSocketClient client)
 | 
				
			||||||
        => client.Guilds
 | 
					        => client.Guilds
 | 
				
			||||||
                 .Map(x => x.Id);
 | 
					            .Map(x => x.Id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    ///     Generates a string in the format HHH:mm if timespan is >= 2m.
 | 
					    ///     Generates a string in the format HHH:mm if timespan is >= 2m.
 | 
				
			||||||
@@ -154,8 +160,13 @@ public static class Extensions
 | 
				
			|||||||
            if (logService is not null)
 | 
					            if (logService is not null)
 | 
				
			||||||
                logService.AddDeleteIgnore(msg.Id);
 | 
					                logService.AddDeleteIgnore(msg.Id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try { await msg.DeleteAsync(); }
 | 
					            try
 | 
				
			||||||
            catch { }
 | 
					            {
 | 
				
			||||||
 | 
					                await msg.DeleteAsync();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        return msg;
 | 
					        return msg;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
4.3.13
 | 
					 | 
				
			||||||
@@ -1,115 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "runtimeTarget": {
 | 
					 | 
				
			||||||
    "name": ".NETCoreApp,Version=v6.0",
 | 
					 | 
				
			||||||
    "signature": ""
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "compilationOptions": {},
 | 
					 | 
				
			||||||
  "targets": {
 | 
					 | 
				
			||||||
    ".NETCoreApp,Version=v6.0": {
 | 
					 | 
				
			||||||
      "NorthShirahebi/1.0.0": {
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Nadeko.Medusa": "4.3.10"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "NorthShirahebi.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Discord.Net.Core/3.104.0": {
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Newtonsoft.Json": "13.0.1",
 | 
					 | 
				
			||||||
          "System.Collections.Immutable": "5.0.0",
 | 
					 | 
				
			||||||
          "System.Interactive.Async": "5.0.0",
 | 
					 | 
				
			||||||
          "System.ValueTuple": "4.5.0"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Nadeko.Medusa/4.3.10": {
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Discord.Net.Core": "3.104.0",
 | 
					 | 
				
			||||||
          "Serilog": "2.11.0",
 | 
					 | 
				
			||||||
          "YamlDotNet": "11.2.1"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Newtonsoft.Json/13.0.1": {},
 | 
					 | 
				
			||||||
      "Serilog/2.11.0": {},
 | 
					 | 
				
			||||||
      "System.Collections.Immutable/5.0.0": {},
 | 
					 | 
				
			||||||
      "System.Interactive.Async/5.0.0": {
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "System.Linq.Async": "5.0.0"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "System.Linq.Async/5.0.0": {},
 | 
					 | 
				
			||||||
      "System.ValueTuple/4.5.0": {},
 | 
					 | 
				
			||||||
      "YamlDotNet/11.2.1": {}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "libraries": {
 | 
					 | 
				
			||||||
    "NorthShirahebi/1.0.0": {
 | 
					 | 
				
			||||||
      "type": "project",
 | 
					 | 
				
			||||||
      "serviceable": false,
 | 
					 | 
				
			||||||
      "sha512": ""
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Discord.Net.Core/3.104.0": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-kGCH8WA5C39oLGNb/4+r6M038BKnrxNFyjFZ0YPUiNXPki3CGCugMleSvPjUcUaz7UnvOFA9W8JzgN6KQWbuOQ==",
 | 
					 | 
				
			||||||
      "path": "discord.net.core/3.104.0",
 | 
					 | 
				
			||||||
      "hashPath": "discord.net.core.3.104.0.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Nadeko.Medusa/4.3.10": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-vwuTD/Gu+6SBU5wG+wnaijcbjkAiYiQK2oTKCiJnP5uqWtLD33pTAoXNkMMu0soQj1hetFVoDUUbMLeg/JLAKg==",
 | 
					 | 
				
			||||||
      "path": "nadeko.medusa/4.3.10",
 | 
					 | 
				
			||||||
      "hashPath": "nadeko.medusa.4.3.10.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Newtonsoft.Json/13.0.1": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
 | 
					 | 
				
			||||||
      "path": "newtonsoft.json/13.0.1",
 | 
					 | 
				
			||||||
      "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Serilog/2.11.0": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==",
 | 
					 | 
				
			||||||
      "path": "serilog/2.11.0",
 | 
					 | 
				
			||||||
      "hashPath": "serilog.2.11.0.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "System.Collections.Immutable/5.0.0": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==",
 | 
					 | 
				
			||||||
      "path": "system.collections.immutable/5.0.0",
 | 
					 | 
				
			||||||
      "hashPath": "system.collections.immutable.5.0.0.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "System.Interactive.Async/5.0.0": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-QaqhQVDiULcu4vm6o89+iP329HcK44cETHOYgy/jfEjtzeFy0ZxmuM7nel9ocjnKxEM4yh1mli7hgh8Q9o+/Iw==",
 | 
					 | 
				
			||||||
      "path": "system.interactive.async/5.0.0",
 | 
					 | 
				
			||||||
      "hashPath": "system.interactive.async.5.0.0.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "System.Linq.Async/5.0.0": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-cPtIuuH8TIjVHSi2ewwReWGW1PfChPE0LxPIDlfwVcLuTM9GANFTXiMB7k3aC4sk3f0cQU25LNKzx+jZMxijqw==",
 | 
					 | 
				
			||||||
      "path": "system.linq.async/5.0.0",
 | 
					 | 
				
			||||||
      "hashPath": "system.linq.async.5.0.0.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "System.ValueTuple/4.5.0": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==",
 | 
					 | 
				
			||||||
      "path": "system.valuetuple/4.5.0",
 | 
					 | 
				
			||||||
      "hashPath": "system.valuetuple.4.5.0.nupkg.sha512"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "YamlDotNet/11.2.1": {
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "serviceable": true,
 | 
					 | 
				
			||||||
      "sha512": "sha512-tBt8K+korVfrjH9wyDEhiLKxbs8qoLCLIFwvYgkSUuMC9//w3z0cFQ8LQAI/5MCKq+BMil0cfRTRvPeE7eXhQw==",
 | 
					 | 
				
			||||||
      "path": "yamldotnet/11.2.1",
 | 
					 | 
				
			||||||
      "hashPath": "yamldotnet.11.2.1.nupkg.sha512"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -1,10 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "runtimeOptions": {
 | 
					 | 
				
			||||||
    "tfm": "net6.0",
 | 
					 | 
				
			||||||
    "rollForward": "LatestMinor",
 | 
					 | 
				
			||||||
    "framework": {
 | 
					 | 
				
			||||||
      "name": "Microsoft.NETCore.App",
 | 
					 | 
				
			||||||
      "version": "6.0.0"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
hug:
 | 
					 | 
				
			||||||
  desc: "Hug a friend!"
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
    - "@someone"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
kiss:
 | 
					 | 
				
			||||||
  desc: "K-kiss someone s-special!"
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
    - "@someone"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pat:
 | 
					 | 
				
			||||||
  desc: "A good boy deserves pats."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
    - "@someone"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cuddle:
 | 
					 | 
				
			||||||
  desc: "Cuddle your lover. ...Or yourself."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
    - "@someone"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wave:
 | 
					 | 
				
			||||||
  desc: "Greet your friends with a friendly wave."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
    - "@someone"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
catgirl:
 | 
					 | 
				
			||||||
  desc: "Spawn a random catgirl!"
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Rain:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image with a rainy scenery."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Weapon:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image featuring weapon(s)."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Mountain:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image with a mountainous scenery."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Swimmingpool:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image featuring a swimming pool(?)."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Sportswear:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image with one or more characters wearing sportswear."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Baggyclothes:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image with one or more characters wearing baggy clothes."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Dress:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image with one or more characters wearing a dress"
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Tree:
 | 
					 | 
				
			||||||
  desc: "Spawn a random image where one or more characters are in a tree."
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
Screenshot:
 | 
					 | 
				
			||||||
  desc: "Spawn image of a screenshot of the original source of the image. (ex. Screenshot of an anime scene)"
 | 
					 | 
				
			||||||
  args:
 | 
					 | 
				
			||||||
    - ""
 | 
					 | 
				
			||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
medusa.description: "Images and interactions module - For interacting with members and showing emotions."
 | 
					 | 
				
			||||||
@@ -1,5 +0,0 @@
 | 
				
			|||||||
# DO NOT CHANGE
 | 
					 | 
				
			||||||
version: 1
 | 
					 | 
				
			||||||
# List of medusae automatically loaded at startup
 | 
					 | 
				
			||||||
loaded:
 | 
					 | 
				
			||||||
  - NorthShirahebi
 | 
					 | 
				
			||||||
@@ -54,7 +54,7 @@ public static class GuildConfigExtensions
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public static IEnumerable<GuildConfig> GetAllGuildConfigs(
 | 
					    public static IEnumerable<GuildConfig> GetAllGuildConfigs(
 | 
				
			||||||
        this DbSet<GuildConfig> configs,
 | 
					        this DbSet<GuildConfig> configs,
 | 
				
			||||||
        List<ulong> availableGuilds)
 | 
					        IReadOnlyList<ulong> availableGuilds)
 | 
				
			||||||
        => configs.IncludeEverything().AsNoTracking().Where(x => availableGuilds.Contains(x.GuildId)).ToList();
 | 
					        => configs.IncludeEverything().AsNoTracking().Where(x => availableGuilds.Contains(x.GuildId)).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user