From 0354ebb5d901fc3b3552a9cd3bb0648d721afa7b Mon Sep 17 00:00:00 2001 From: wangbing Date: Sat, 19 Oct 2024 00:57:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=87=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- legend/城镇_欢迎新成员#L199,773.png | Bin 7482 -> 0 bytes legend/慕慕_工具栏.png | Bin 522 -> 522 bytes src/main/java/xyz/wbsite/jmacro/JMacro.java | 6 +--- .../java/xyz/wbsite/jmacro/util/Logger.java | 29 +++++++++--------- .../xyz/wbsite/jmacro/wjdr/MacroForWJDR.java | 15 +++++++-- 5 files changed, 28 insertions(+), 22 deletions(-) delete mode 100644 legend/城镇_欢迎新成员#L199,773.png diff --git a/legend/城镇_欢迎新成员#L199,773.png b/legend/城镇_欢迎新成员#L199,773.png deleted file mode 100644 index 2f7dbf21f4a4631a5292482c9c540d3430483409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7482 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 Hu0mjfXttH1 diff --git a/src/main/java/xyz/wbsite/jmacro/JMacro.java b/src/main/java/xyz/wbsite/jmacro/JMacro.java index 06f2a44..625f5b7 100644 --- a/src/main/java/xyz/wbsite/jmacro/JMacro.java +++ b/src/main/java/xyz/wbsite/jmacro/JMacro.java @@ -311,11 +311,7 @@ public abstract class JMacro { * 获取聚焦区域 */ public ViewRect getFocusRect() { - if (focusRect != null) { - return focusRect; - } - // 返回屏幕区域 - return getScreenRect(); + return focusRect; } /** diff --git a/src/main/java/xyz/wbsite/jmacro/util/Logger.java b/src/main/java/xyz/wbsite/jmacro/util/Logger.java index 568e015..3bc7b61 100644 --- a/src/main/java/xyz/wbsite/jmacro/util/Logger.java +++ b/src/main/java/xyz/wbsite/jmacro/util/Logger.java @@ -4,7 +4,8 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.caller.CallerUtil; import cn.hutool.core.util.StrUtil; -import xyz.wbsite.jmacro.JMainService; +import cn.hutool.log.level.Level; +import xyz.wbsite.jmacro.ex.MacroErrorException; /** * 日志记录器 @@ -15,9 +16,10 @@ import xyz.wbsite.jmacro.JMainService; */ public class Logger { + public static void info(String format, Object... arg) { DateTime date = DateUtil.date(); - String level = "INFO"; + String level = Level.INFO.toString(); String log = StrUtil.format(format, arg); String name = CallerUtil.getCallerCaller().getSimpleName(); // 获取当前线程的堆栈追踪 @@ -27,17 +29,16 @@ public class Logger { System.out.println(StrUtil.format("[{}] [{}] {} [{}:{}]", date, level, log, name, lineNumber)); } - public static void error(String log, Object... arg) { - info(log, arg); - // 中断1分钟 - for (int i = 0; i < 60; i++) { - if (JMainService.getInstance().run) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - } + public static void error(String format, Object... arg) { + DateTime date = DateUtil.date(); + String level = Level.ERROR.toString(); + String log = StrUtil.format(format, arg); + String name = CallerUtil.getCallerCaller().getSimpleName(); + // 获取当前线程的堆栈追踪 + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + // 通常堆栈追踪数组的第三个元素是logMessage方法的调用者 + int lineNumber = stackTrace[2].getLineNumber(); + System.out.println(StrUtil.format("[{}] [{}] {} [{}:{}]", date, level, log, name, lineNumber)); + throw new MacroErrorException(StrUtil.format(format, arg)); } } diff --git a/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java b/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java index 0d334ca..2efae8b 100644 --- a/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java +++ b/src/main/java/xyz/wbsite/jmacro/wjdr/MacroForWJDR.java @@ -35,12 +35,21 @@ public class MacroForWJDR extends JMacro { @Override public synchronized ViewRect focus() { - Logger.info("请确保MuMu显示分辨率为540 x 960(DPI 240)"); + Logger.info("请确保MuMu配置如下:"); + Logger.info("显卡渲染模式:Vulkan模式"); + Logger.info("性能配置:中性能"); + Logger.info("显卡使用策略:画面标签更好"); + Logger.info("其他优化:强制使用独立显卡"); + Logger.info("分辨率设置:显示分辨率为540 x 960(DPI 240)"); + Logger.info("画面设置:画面亮度【50】,画面风格【普通】"); + Logger.info("帧率设置:60"); + Logger.info("技术上次关闭时的窗口位置和大小:60"); + Logger.info("固定窗口大小,禁止手动拉伸"); ViewRect rect = getScreenRect(); Logger.info("查找定位MuMu工具栏"); - ViewRect mumu = findLegend("慕慕_工具栏", 0.95d); + ViewRect mumu = findLegend("慕慕_工具栏", 0.98d); if (mumu == null) { - Logger.info("聚焦窗口失败,默认全屏"); + Logger.error("聚焦窗口失败"); } else { // 计算应用窗口返回 rect.setLeft(mumu.getLeft() - 428);