ban templates will now use smarttext instead of crembed

This commit is contained in:
Kwoth
2021-07-12 02:51:55 +02:00
parent dc6d17eee7
commit 9f6cbe0929
3 changed files with 16 additions and 35 deletions

View File

@@ -413,7 +413,7 @@ WHERE GuildId={guildId}
} }
} }
public CREmbed GetBanUserDmEmbed(ICommandContext context, IGuildUser target, string defaultMessage, public SmartText GetBanUserDmEmbed(ICommandContext context, IGuildUser target, string defaultMessage,
string banReason, TimeSpan? duration) string banReason, TimeSpan? duration)
{ {
return GetBanUserDmEmbed( return GetBanUserDmEmbed(
@@ -426,7 +426,7 @@ WHERE GuildId={guildId}
duration); duration);
} }
public CREmbed GetBanUserDmEmbed(DiscordSocketClient client, SocketGuild guild, public SmartText GetBanUserDmEmbed(DiscordSocketClient client, SocketGuild guild,
IGuildUser moderator, IGuildUser target, string defaultMessage, string banReason, TimeSpan? duration) IGuildUser moderator, IGuildUser target, string defaultMessage, string banReason, TimeSpan? duration)
{ {
var template = GetBanTemplate(guild.Id); var template = GetBanTemplate(guild.Id);
@@ -450,7 +450,6 @@ WHERE GuildId={guildId}
.WithOverride("%ban.duration%", () => duration?.ToString(@"d\.hh\:mm")?? "perma") .WithOverride("%ban.duration%", () => duration?.ToString(@"d\.hh\:mm")?? "perma")
.Build(); .Build();
CREmbed crEmbed = null;
// if template isn't set, use the old message style // if template isn't set, use the old message style
if (string.IsNullOrWhiteSpace(template)) if (string.IsNullOrWhiteSpace(template))
{ {
@@ -459,8 +458,6 @@ WHERE GuildId={guildId}
color = Bot.ErrorColor.RawValue, color = Bot.ErrorColor.RawValue,
description = defaultMessage description = defaultMessage
}); });
CREmbed.TryParse(template, out crEmbed);
} }
// if template is set to "-" do not dm the user // if template is set to "-" do not dm the user
else if (template == "-") else if (template == "-")
@@ -468,23 +465,18 @@ WHERE GuildId={guildId}
return default; return default;
} }
// if template is an embed, send that embed with replacements // if template is an embed, send that embed with replacements
else if (CREmbed.TryParse(template, out crEmbed))
{
replacer.Replace(crEmbed);
}
// otherwise, treat template as a regular string with replacements // otherwise, treat template as a regular string with replacements
else else if (!SmartText.CreateFrom(template).IsEmbed)
{ {
template = JsonConvert.SerializeObject(new template = JsonConvert.SerializeObject(new
{ {
color = Bot.ErrorColor.RawValue, color = Bot.ErrorColor.RawValue,
description = replacer.Replace(template) description = template
}); });
CREmbed.TryParse(template, out crEmbed);
} }
return crEmbed; var output = SmartText.CreateFrom(template);
return replacer.Replace(output);
} }
} }
} }

View File

@@ -433,7 +433,7 @@ namespace NadekoBot.Modules.Administration
if (embed is not null) if (embed is not null)
{ {
var userChannel = await guildUser.GetOrCreateDMChannelAsync(); var userChannel = await guildUser.GetOrCreateDMChannelAsync();
await userChannel.EmbedAsync(embed, _eb); await userChannel.SendAsync(embed);
} }
} }
catch catch
@@ -500,7 +500,7 @@ namespace NadekoBot.Modules.Administration
if (embed is not null) if (embed is not null)
{ {
var userChannel = await user.GetOrCreateDMChannelAsync(); var userChannel = await user.GetOrCreateDMChannelAsync();
await userChannel.EmbedAsync(embed, _eb); await userChannel.SendAsync(embed);
} }
} }
catch catch
@@ -577,13 +577,13 @@ namespace NadekoBot.Modules.Administration
{ {
var dmChannel = await ctx.User.GetOrCreateDMChannelAsync(); var dmChannel = await ctx.User.GetOrCreateDMChannelAsync();
var defaultMessage = GetText("bandm", Format.Bold(ctx.Guild.Name), reason); var defaultMessage = GetText("bandm", Format.Bold(ctx.Guild.Name), reason);
var crEmbed = _service.GetBanUserDmEmbed(Context, var embed = _service.GetBanUserDmEmbed(Context,
(IGuildUser)Context.User, (IGuildUser)Context.User,
defaultMessage, defaultMessage,
reason, reason,
duration); duration);
if (crEmbed is null) if (embed is null)
{ {
await ConfirmLocalizedAsync("bandm_disabled"); await ConfirmLocalizedAsync("bandm_disabled");
} }
@@ -591,7 +591,7 @@ namespace NadekoBot.Modules.Administration
{ {
try try
{ {
await dmChannel.EmbedAsync(crEmbed, _eb); await dmChannel.SendAsync(embed);
} }
catch (Exception) catch (Exception)
{ {

View File

@@ -49,7 +49,7 @@ namespace NadekoBot.Modules.Help
_lazyClientId = new AsyncLazy<ulong>(async () => (await _client.GetApplicationInfoAsync()).Id); _lazyClientId = new AsyncLazy<ulong>(async () => (await _client.GetApplicationInfoAsync()).Id);
} }
public async Task<(string plainText, IEmbedBuilder embed)> GetHelpStringEmbed() public async Task<SmartText> GetHelpString()
{ {
var botSettings = _bss.Data; var botSettings = _bss.Data;
if (string.IsNullOrWhiteSpace(botSettings.HelpText) || botSettings.HelpText == "-") if (string.IsNullOrWhiteSpace(botSettings.HelpText) || botSettings.HelpText == "-")
@@ -64,18 +64,8 @@ namespace NadekoBot.Modules.Help
.WithOverride("%bot.prefix%", () => Prefix) .WithOverride("%bot.prefix%", () => Prefix)
.Build(); .Build();
var app = await _client.GetApplicationInfoAsync(); var text = SmartText.CreateFrom(botSettings.HelpText);
return r.Replace(text);
if (!CREmbed.TryParse(botSettings.HelpText, out var embed))
{
var eb = _eb.Create().WithOkColor()
.WithDescription(String.Format(botSettings.HelpText, clientId, Prefix));
return ("", eb);
}
r.Replace(embed);
return (embed.PlainText, embed.ToEmbed(_eb));
} }
[NadekoCommand, Aliases] [NadekoCommand, Aliases]
@@ -271,11 +261,10 @@ namespace NadekoBot.Modules.Help
: channel; : channel;
try try
{ {
var data = await GetHelpStringEmbed(); var data = await GetHelpString();
if (data == default) if (data == default)
return; return;
var (plainText, helpEmbed) = data; await ch.SendAsync(data);
await ch.EmbedAsync(helpEmbed, msg: plainText ?? "").ConfigureAwait(false);
try{ await ctx.OkAsync(); } catch { } // ignore if bot can't react try{ await ctx.OkAsync(); } catch { } // ignore if bot can't react
} }
catch (Exception) catch (Exception)