首页 > 解决方案 > DeleteMessagesAsync Discord.net

问题描述

我正在使用 Discord.net (V1.0.1),

尝试转换(v0.9.6)但遇到错误。(删除最后一条消息)

(v0.9.6) 代码 图像

我的代码:

Private Async Function onMsg(message As SocketMessage) As Task

    If message.Source = MessageSource.Bot Then
        'nothing
    Else

        If message.Content.Contains("clear") Then
            Dim mssg() As Discord.MessageSource = Await DeleteMessagesAsync(100)

        End If
    End If

    End Function

错误:严重性代码描述项目文件行抑制状态错误 BC30451 'DeleteMessagesAsync' 未声明。由于其保护级别,它可能无法访问。

标签: .netdiscord.net

解决方案


这应该给你一个想法,这是针对 Discord.net V2.x

这将从使用该命令的通道中检索默认为 100 的消息列表,然后尝试删除。

如果任何消息超过 2 周,它将失败,因此需要添加例外以捕获

IEnumerable<IMessage> var = await Context.Channel.GetMessagesAsync(input).FlattenAsync();
((ITextChannel)Context.Channel).DeleteMessagesAsync(var)

推荐阅读