MiraiForum

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

    message.data.At对象的key,不能使MessageChain.get()拿到正确的at对象

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

      请问是我个例吗
      图片

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

        这是不支持也不合法的操作

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

          @karlatemp 但是为什么其它类型的消息支持呀
          替代文字
          包括text,voice等消息都支持提取

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

            因为她们的数量都是唯一的,其预期和行为可以确定

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

              @karlatemp 原来如此,明白了,那请问是不是只能通过遍历判断,或者有什么更好的主意

              At at = null;
                      for (var v : event.getMessage()){
                          if(v instanceof At) at = (At) v;
                      }
                      if(at != null)
              
              1 条回复 最后回复 回复 引用 0
              • Karlatemp
                Karlatemp 最后由 编辑

                var at = (At) event.getMessage().stream().filter(it -> it instanceof At).findFirst().orElse(null);

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

                  @karlatemp 学到了,灰常感谢

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

                    https://github.com/mamoe/mirai/blob/dev/docs/Messages.md#元素唯一性

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