我已经为我的discord bot制作了这个命令,它清除了一个频道中的一定数量的消息。它目前正在完成它的工作并且做得很好但是当它在结尾显示消息时它显示了他们想要清除的消息数量。但是我们可以说这个频道只包含20条消息,但它们确实清除了50条我希望它显示它实际清除的消息数量,而不是50条它会显示20条消息。
public class Clear : ModuleBase<SocketCommandContext>
{
[Command("clear"),RequireUserPermission(GuildPermission.ManageMessages)]
public async Task ClearMessages(int numToClear)
{
EmbedBuilder builder = new EmbedBuilder();
numToClear = numToClear + 1;
var messages = await Context.Channel.GetMessagesAsync(numToClear).Flatten();
await Context.Channel.DeleteMessagesAsync(messages);
builder.WithTitle("MESSAGES HAVE BEEN CLEARED!")
.WithDescription($"A total of `{numToClear} messages` were cleared from this chat!")
.WithColor(Color.DarkBlue);
var clearedMessage = await ReplyAsync("", false, builder.Build());
await Task.Delay(3000);
await clearedMessage.DeleteAsync();
}
}
答案 0 :(得分:0)
messages
变量具有Count
属性:
var count = messages.Count();
或者您可以使用numToClear
参数:
var count = numToClear;