Repeater and Greet services are now using smarttext instead of crembed

This commit is contained in:
Kwoth
2021-07-12 02:26:31 +02:00
parent 468bc5324d
commit dc6d17eee7
2 changed files with 28 additions and 92 deletions

View File

@@ -259,18 +259,12 @@ where ((guildid >> 22) % {_creds.TotalShards}) == {_client.ShardId};")
try try
{ {
IMessage newMsg; var text = SmartText.CreateFrom(repeater.Message);
if (CREmbed.TryParse(repeater.Message, out var crEmbed)) text = rep.Replace(text);
{
rep.Replace(crEmbed); var newMsg = await channel.SendAsync(text);
newMsg = await channel.EmbedAsync(crEmbed, _eb);
}
else
{
newMsg = await channel.SendMessageAsync(rep.Replace(repeater.Message));
}
_ = newMsg.AddReactionAsync(new Emoji("🔄")); _ = newMsg.AddReactionAsync(new Emoji("🔄"));
if (_noRedundant.Contains(repeater.Id)) if (_noRedundant.Contains(repeater.Id))
{ {
await SetRepeaterLastMessageInternal(repeater.Id, newMsg.Id); await SetRepeaterLastMessageInternal(repeater.Id, newMsg.Id);

View File

@@ -139,39 +139,19 @@ namespace NadekoBot.Services
.WithManyUsers(users) .WithManyUsers(users)
.Build(); .Build();
if (CREmbed.TryParse(conf.ChannelByeMessageText, out var embedData)) var text = SmartText.CreateFrom(conf.ChannelByeMessageText);
text = rep.Replace(text);
try
{ {
rep.Replace(embedData); var toDelete = await channel.SendAsync(text);
try if (conf.AutoDeleteByeMessagesTimer > 0)
{ {
var toDelete = await channel.EmbedAsync(embedData, _eb).ConfigureAwait(false); toDelete.DeleteAfter(conf.AutoDeleteByeMessagesTimer);
if (conf.AutoDeleteByeMessagesTimer > 0)
{
toDelete.DeleteAfter(conf.AutoDeleteByeMessagesTimer);
}
}
catch (Exception ex)
{
Log.Warning(ex, "Error embeding bye message");
} }
} }
else catch (Exception ex)
{ {
var msg = rep.Replace(conf.ChannelByeMessageText); Log.Warning(ex, "Error embeding bye message");
if (string.IsNullOrWhiteSpace(msg))
return;
try
{
var toDelete = await channel.SendMessageAsync(msg.SanitizeMentions()).ConfigureAwait(false);
if (conf.AutoDeleteByeMessagesTimer > 0)
{
toDelete.DeleteAfter(conf.AutoDeleteByeMessagesTimer);
}
}
catch (Exception ex)
{
Log.Warning(ex, "Error sending bye message");
}
} }
} }
@@ -190,40 +170,19 @@ namespace NadekoBot.Services
.WithManyUsers(users) .WithManyUsers(users)
.Build(); .Build();
if (CREmbed.TryParse(conf.ChannelGreetMessageText, out var embedData)) var text = SmartText.CreateFrom(conf.ChannelGreetMessageText);
text = rep.Replace(text);
try
{ {
rep.Replace(embedData); var toDelete = await channel.SendAsync(text).ConfigureAwait(false);
try if (conf.AutoDeleteGreetMessagesTimer > 0)
{ {
var toDelete = await channel.EmbedAsync(embedData, _eb).ConfigureAwait(false); toDelete.DeleteAfter(conf.AutoDeleteGreetMessagesTimer);
if (conf.AutoDeleteGreetMessagesTimer > 0)
{
toDelete.DeleteAfter(conf.AutoDeleteGreetMessagesTimer);
}
}
catch (Exception ex)
{
Log.Warning(ex, "Error embeding greet message");
} }
} }
else catch (Exception ex)
{ {
var msg = rep.Replace(conf.ChannelGreetMessageText); Log.Warning(ex, "Error embeding greet message");
if (!string.IsNullOrWhiteSpace(msg))
{
try
{
var toDelete = await channel.SendMessageAsync(msg.SanitizeMentions()).ConfigureAwait(false);
if (conf.AutoDeleteGreetMessagesTimer > 0)
{
toDelete.DeleteAfter(conf.AutoDeleteGreetMessagesTimer);
}
}
catch (Exception ex)
{
Log.Warning(ex, "Error sending greet message");
}
}
} }
} }
@@ -232,33 +191,16 @@ namespace NadekoBot.Services
var rep = new ReplacementBuilder() var rep = new ReplacementBuilder()
.WithDefault(user, channel, (SocketGuild)user.Guild, _client) .WithDefault(user, channel, (SocketGuild)user.Guild, _client)
.Build(); .Build();
if (CREmbed.TryParse(conf.DmGreetMessageText, out var embedData)) var text = SmartText.CreateFrom(conf.DmGreetMessageText);
rep.Replace(text);
try
{ {
rep.Replace(embedData); await channel.SendAsync(text).ConfigureAwait(false);
try
{
await channel.EmbedAsync(embedData, _eb).ConfigureAwait(false);
}
catch
{
return false;
}
} }
else catch
{ {
var msg = rep.Replace(conf.DmGreetMessageText); return false;
if (!string.IsNullOrWhiteSpace(msg))
{
try
{
await channel.SendConfirmAsync(_eb, msg).ConfigureAwait(false);
}
catch
{
return false;
}
}
} }
return true; return true;