Mirai闪照破解

2022-8-23 / 0 评论 / 631 阅读 / 正在检测是否收录...

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);
    }
}

效果图

效果图

评论一下?

OωO
取消