Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除机器人发送的Discord.net消息_C#_Discord_Discord.net - Fatal编程技术网

C# 删除机器人发送的Discord.net消息

C# 删除机器人发送的Discord.net消息,c#,discord,discord.net,C#,Discord,Discord.net,我正在尝试创建一个机器人程序,它能够在执行命令后仅删除机器人程序消息。 我知道我是如何知道该命令已经执行的,但是我在删除bot发送的消息时遇到了问题 await Message.ModifyAsync(msg => msg.Content = "test [edited]"); 然而,这只会发生在最后一条已经发送的消息上(这可以相对容易地修复,我知道如何做到这一点),重要的是,这会发生在聊天室中的所有消息上!我想做的是,让我只删除机器人在第一时间发送的消息。 谢谢获取并存储bot

我正在尝试创建一个机器人程序,它能够在执行命令后仅删除机器人程序消息。 我知道我是如何知道该命令已经执行的,但是我在删除bot发送的消息时遇到了问题

    await Message.ModifyAsync(msg => msg.Content = "test [edited]");
然而,这只会发生在最后一条已经发送的消息上(这可以相对容易地修复,我知道如何做到这一点),重要的是,这会发生在聊天室中的所有消息上!我想做的是,让我只删除机器人在第一时间发送的消息。
谢谢

获取并存储bot作为变量发送的消息,稍后将其删除。

var botMsg = await ReplyAsync("A message!");
await botMsg.DeleteAsync();
如果需要删除多条消息,请创建一个列表,并将每条消息存储到该列表中。然后在命令末尾使用
wait Context.Channel.DeleteMessagesAsync(list)

编辑 传递消息ID列表和消息本身都有重载方法。
传递消息ID列表的示例:

List<ulong> msgToDel = new List<ulong>();
msgToDel.Add((await ReplyAsync("test1")).Id); //Send a msg, then add the msg ID to the list.
msgToDel.Add((await ReplyAsync("test2")).Id);
//Blah...
await Context.Channel.DeleteMessagesAsync(msgToDel);
List msgToDel=new List();
msgToDel.Add((等待回复同步(“test1”)).Id)//发送消息,然后将消息ID添加到列表中。
msgToDel.Add((等待回复同步(“test2”)).Id);
//废话。。。
wait Context.Channel.DeleteMessagesAsync(msgToDel);

您可以查看文档中的
DeleteMessagesAsync()

好的,我是否在列表中存储消息id或纯文本。如果可能的话,你有一个有效的演示吗?我会接受的this@15wshepth我编辑了我的问题来回答这个问题,检查一下。