feat(bot): always allow reproxying latest message in channel
This commit is contained in:
@@ -157,7 +157,13 @@ public class ProxiedMessage
|
||||
if (ctx.Guild == null)
|
||||
throw new PKSyntaxError($"You must use a message link to {editType} messages in DMs.");
|
||||
|
||||
var recent = await FindRecentMessage(ctx, timeout);
|
||||
PKMessage? recent;
|
||||
|
||||
if (isReproxy)
|
||||
recent = await ctx.Repository.GetLastMessage(ctx.Guild.Id, ctx.Channel.Id, ctx.Author.Id);
|
||||
else
|
||||
recent = await FindRecentMessage(ctx, timeout);
|
||||
|
||||
if (recent == null)
|
||||
throw new PKSyntaxError($"Could not find a recent message to {editType}.");
|
||||
|
||||
@@ -182,9 +188,15 @@ public class ProxiedMessage
|
||||
throw new PKError(error);
|
||||
}
|
||||
|
||||
var latestMessages = await _rest.GetChannelMessages(msg.Message.Channel, 2);
|
||||
var isLatestMessage = latestMessages.LastOrDefault()?.Id == ctx.Message.Id
|
||||
? latestMessages.FirstOrDefault()?.Id == msg.Message.Mid
|
||||
: latestMessages.LastOrDefault()?.Id == msg.Message.Mid;
|
||||
|
||||
var msgTimestamp = DiscordUtils.SnowflakeToInstant(msg.Message.Mid);
|
||||
if (isReproxy && SystemClock.Instance.GetCurrentInstant() - msgTimestamp > timeout)
|
||||
throw new PKError($"The message is too old to be {editTypeAction}.");
|
||||
if (isReproxy && !isLatestMessage)
|
||||
if (SystemClock.Instance.GetCurrentInstant() - msgTimestamp > timeout)
|
||||
throw new PKError($"The message is too old to be {editTypeAction}.");
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
Reference in New Issue
Block a user