MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. hujiayucc
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 2
    • 帖子 4
    • 最佳 0
    • 有争议的 0
    • 群组 0

    hujiayucc

    @hujiayucc

    0
    声望
    3
    资料浏览
    4
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录
    年龄 23

    hujiayucc 取消关注 关注

    hujiayucc 发布的最新帖子

    • RE: Mirai闪照破解

      @MrXiaoM 谢谢,学习到了

      发布在 技术交流板块
      hujiayucc
      hujiayucc
    • Mirai闪照破解

      Mirai实现闪照破解

      直接上代码:

      public class Event extends SimpleListenerHost {
          /**
           * 私聊模板
           */
          @EventHandler
          private ListeningStatus FlashImage(FriendMessageEvent event) {
              String msg = event.getMessage().contentToString();
              if (msg.equals("[闪照]")) {
                  //这里切记不要用 contentToString() 转码
                  String flashid = event.getMessage().toString();
                  //获取闪照的ImageID,明白意思就行,下面群聊的注释我就不写了
                  //Tool类代码我自己写的,待会下面贴源码
                  flashid = Tool.getSubst(flashid, "flash:", "]");
                  //用ImageID发送一次图片得到Image元素消息
                  Image image = Image.fromId(flashid);
                  //用 MessageChainBuilder() 构建消息
                  MessageChain messages = new MessageChainBuilder().append("你发送了一个闪照\n").append(image).build();
                  //发送消息
                  event.getSender().sendMessage(messages);
              }
              //返回继续监听
              return ListeningStatus.LISTENING;
          }
      
          /**
           * 群聊模板
           */
          @EventHandler
          private ListeningStatus FlashImage(GroupMessageEvent event) {
              String msg = event.getMessage().contentToString();
              if (msg.equals("[闪照]")) {
                  long qq = event.getSender().getId();
                  String flashid = event.getMessage().toString();
                  flashid = Tool.getSubst(flashid, "flash:", "]");
                  Image image = Image.fromId(flashid);
                  MessageChain messages = new MessageChainBuilder().append(new At(qq))
                          .append("(").append(String.valueOf(qq)).append(") ")
                          .append("发送了一个闪照\n").append(image).build();
                  event.getGroup().sendMessage(messages);
              }
              return ListeningStatus.LISTENING;
          }
      }
      

      Tool.java

      public class Tool {
          /**
           * 取右边文本
           * @param str 原文本
           * @param leftStr 左边文本
           * @return 右边文本
           */
          public static String getRights(String str, String leftStr) {
              return str.substring(str.indexOf(leftStr) + leftStr.length());
          }
      
          /**
           * 取左边文本
           * @param str 原文本
           * @param rightStr 左边文本
           * @return 左边文本
           */
          public static String getLefts(String str, String rightStr) {
              return str.substring(0, str.indexOf(rightStr));
          }
      
          /**
           * 取中间文本
           * @param str 原文本
           * @param leftStr 左边文本
           * @param rightStr 右边文本
           * @return 中间文本
           */
          public static String getSubst(String str, String leftStr, String rightStr) {
              String temp = getRights(str,leftStr);
              return getLefts(temp,rightStr);
          }
      }
      

      效果图

      效果图

      发布在 技术交流板块
      hujiayucc
      hujiayucc