MiraiForum

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

    已解决 如何获取引用的信息源?

    开发交流
    command reply java message
    2
    6
    542
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Orisland
      Orisland 摸鱼 最后由 Orisland 编辑

      例如:
      254d9987-d6ca-417f-9df1-f0f97fe8ddfa-image.png
      我希望得到该信息中引用的信息的具体内容。

      @Handler
          public void quoteBack(CommandSenderOnMessage sender){
              System.out.println(sender.getFromEvent().getMessage().contentToString());
              QuoteReply reply = new QuoteReply(sender.getFromEvent().getSource());
              MessageChain chain = sender.getFromEvent().getSource().getOriginalMessage();
              System.out.println(reply.toString());
              System.out.println(chain.get(0));
              System.out.println(chain.toString());
              if (sender.getFromEvent().getMessage().contentToString().contains("quote")){
                  sender.sendMessage("back");
              }
          }
      

      sender.getFromEvent().getSource().getOriginalMessage();
      new QuoteReply(sender.getFromEvent().getSource());
      该代码似乎并无法达成目的。
      它只会返回如下内容:
      c0d141d3-92e7-4f29-b705-c705c2fc8b90-image.png e9ba4d34-2304-4819-9ee1-0bc45f018cf2-image.png
      有什么办法解决吗?

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

        具体做法如下:

        public void function(CommandSenderOnMessage sender) throws IOException {
                QuoteReply reply = sender.getFromEvent().getMessage().get(QuoteReply.Key);
                MessageChain chain = reply.getSource().getOriginalMessage();
                do something...
            }
        

        或者全写一起,

        public void function(CommandSenderOnMessage sender) throws IOException {
                MessageChain chain = sender.getFromEvent().getMessage().get(QuoteReply.Key).getSource().getOriginalMessage();
                do something...
            }
        
        1 条回复 最后回复 回复 引用 0
        • Karlatemp
          Karlatemp 最后由 编辑

          要获取真实内容请使用新加的获取历史消息

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

            reply.getSource()

            Orisland 1 条回复 最后回复 回复 引用 1
            • Orisland
              Orisland 摸鱼 @Karlatemp 最后由 编辑

              @karlatemp
              新加的历史信息指的是?

              1 条回复 最后回复 回复 引用 0
              • Orisland
                Orisland 摸鱼 @Karlatemp 最后由 编辑

                @karlatemp
                是指这样吗?
                f0e140a2-f835-4697-a9c9-dd76c059c89b-image.png
                该指令的结果
                36a5061e-4d37-46fa-8cd0-4be9ea21e9ac-image.png

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

                  具体做法如下:

                  public void function(CommandSenderOnMessage sender) throws IOException {
                          QuoteReply reply = sender.getFromEvent().getMessage().get(QuoteReply.Key);
                          MessageChain chain = reply.getSource().getOriginalMessage();
                          do something...
                      }
                  

                  或者全写一起,

                  public void function(CommandSenderOnMessage sender) throws IOException {
                          MessageChain chain = sender.getFromEvent().getMessage().get(QuoteReply.Key).getSource().getOriginalMessage();
                          do something...
                      }
                  
                  1 条回复 最后回复 回复 引用 0
                  • 1 / 1
                  • First post
                    Last post
                  Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact