【问题标题】:DeleteMessagesAsync Discord.netDeleteMessagesAsync Discord.net
【发布时间】:2019-07-19 20:47:05
【问题描述】:

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

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

(v0.9.6) 代码 Image

我的代码:

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' 未声明。由于其保护级别,它可能无法访问。

【问题讨论】:

  • 您正在寻找的方法在 ITextChannel 下作为 DeleteMessagesAsync。看这个方法的文档here
  • 我已经看过了,但还是很难理解哦
  • 您需要做的是使用GetMessagesAsync通过文本通道实例获取您希望删除的消息,然后将所述消息传递给DeleteMessagesAsync方法。

标签: .net discord.net


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 2017-12-14
    • 2021-09-13
    • 2019-02-08
    • 2021-04-08
    • 2019-05-10
    • 2020-10-03
    • 1970-01-01
    • 2021-05-04
    相关资源
    最近更新 更多