mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04: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);
|
||||||
|
|
||||||
@@ -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