MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    请问MessageReceipt如何判断是否可撤回(超时/已撤回/权限不足)

    开发交流
    4
    10
    627
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • HollisMeynell
      HollisMeynell 最后由 HollisMeynell 编辑

      如题,使用场景是程序需要oauth授权链接,想当认证成功后及时撤回防止多次认证,现在是使用了map存储返回的消息,另开一个线程当得到授权后撤回消息并从map中删除messagereceipt,不过因为有一些小伙伴拿到了授权链接但是不去认证或者超出了可撤回时间,导致messagereceipt无法删除发生内存泄漏,请问有什么办法解决

      另外有没有办法可以拿到MessageReceipt的特征值(尽可能使基本类型,类似于消息id这种)可以通过bot获取可撤回的消息,尽量减少重复代码(偷懒

      1 条回复 最后回复 回复 引用 0
      • cssxsh
        cssxsh 最后由 编辑

        MessageReceipt.source

        HollisMeynell 1 条回复 最后回复 回复 引用 0
        • HollisMeynell
          HollisMeynell @cssxsh 最后由 编辑

          @cssxsh 这个似乎没有验证是否可以撤回

          1 条回复 最后回复 回复 引用 0
          • Nambers
            Nambers 摸鱼 最后由 编辑

            撤回的时候catch就可以了?

            HollisMeynell 1 条回复 最后回复 回复 引用 0
            • HollisMeynell
              HollisMeynell @Nambers 最后由 编辑

              @nambers 目前我的解决办法是封装一个类,包含receipt跟撤回时限时间戳,catch也是一种办法XDDD

              1 条回复 最后回复 回复 引用 0
              • cssxsh
                cssxsh 最后由 编辑

                写一个扩展属性就好

                1 条回复 最后回复 回复 引用 0
                • Karlatemp
                  Karlatemp 最后由 编辑

                  在撤回的时候直接撤回, 用 try-catch 包装一下, 并删除引用

                  如果撤回不了后面继续尝试也是撤回不了的, 不管撤回结果直接移除引用即可

                  HollisMeynell 1 条回复 最后回复 回复 引用 0
                  • HollisMeynell
                    HollisMeynell @Karlatemp 最后由 编辑

                    @karlatemp 虽然是可以啦,主要是异常我都交由全局异常处理了,会写一大堆奇怪的logXD

                    1 条回复 最后回复 回复 引用 0
                    • Karlatemp
                      Karlatemp 最后由 编辑

                      可以定义一个新的方法来撤回

                      internal suspend fun MessageSource.recallNoError() {
                      kotlin.runCatching { this.recall() }
                      }
                      
                      HollisMeynell 1 条回复 最后回复 回复 引用 0
                      • HollisMeynell
                        HollisMeynell @Karlatemp 最后由 编辑

                        @karlatemp 好,灰常感谢大佬!

                        1 条回复 最后回复 回复 引用 0
                        • 1 / 1
                        • First post
                          Last post
                        Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact