【问题标题】:Can you wait for user response message with bwmarrin/discordgo?您可以等待 bwmarrin/discordgo 的用户响应消息吗?
【发布时间】:2022-06-21 14:31:21
【问题描述】:

是否有任何选项可以在 discordgo 中等待用户响应消息?我正在寻找类似于 discord.js awaitMessages 的东西。

【问题讨论】:

    标签: go discord


    【解决方案1】:

    不可以,但您可以创建一个包含消息和事件信息以及查看新闻消息的集合。

    简单

    1. 制作一个集合/数组
    2. 添加消息信息
    3. 检查消息事件处理程序中的传入消息是否在集合中
    4. 处理事件
    5. 从收藏中删除

    不要忘记设置超时并从集合中清除过期数据。

    【讨论】:

      【解决方案2】:

      根据文档:awaitMessages

      时间:收集器应该运行的时间量(以毫秒为单位)

      max:成功通过过滤器的消息数


      在 Go 中,只需一个关键字 go 即可轻松使用例程,因此实现异步 (async) go 非常简单。


      解决思路:

      1. 创建message storage center:它具有以下特点:
      2. 每当创建新消息时,we add the message to the message centernotifies each filter
      3. 定义您的filter function:只要此条件为真,就会收集该消息。对于example
      4. 定义callback function:这是过滤函数的结果。你可以根据这个结果做一些事情。对于example

      完整代码

      我将完整代码放在replitgist 上。 如果你想运行它,你可以复制环境变量中的replit和set your token and channel ID (or user ID)的代码来测试它。

      【讨论】:

        猜你喜欢
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多