Skip to content

Commit eafb3dd

Browse files
committed
feat: prevent tracking start when no metrics enabled
Add hasAnyMetricEnabled() check before starting tracker. If all metrics (FPS, TPS, MSPT, Heap, CPU) are disabled, show error message instead of starting.
1 parent 77f869d commit eafb3dd

5 files changed

Lines changed: 16 additions & 4 deletions

File tree

src/main/java/org/damon233/performtrackermod/controller/TrackerController.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ public synchronized void start() {
7070
if (state.get() == TrackerState.RUNNING) {
7171
throw new IllegalStateException("error.already_running");
7272
}
73+
74+
if (!hasAnyMetricEnabled()) {
75+
throw new IllegalStateException("error.no_metrics_enabled");
76+
}
7377

7478
this.sessionId = generateSessionId();
7579

@@ -99,6 +103,14 @@ public synchronized void start() {
99103
LOGGER.info("Performance tracking started, sessionId: {}", sessionId);
100104
}
101105

106+
private boolean hasAnyMetricEnabled() {
107+
return ConfigAccess.isCollectFps() ||
108+
ConfigAccess.isCollectTps() ||
109+
ConfigAccess.isCollectMspt() ||
110+
ConfigAccess.isCollectHeap() ||
111+
ConfigAccess.isCollectCpu();
112+
}
113+
102114
public synchronized void stop() {
103115
if (state.get() == TrackerState.IDLE) {
104116
throw new IllegalStateException("error.not_running");

src/main/resources/assets/performtracker/lang/en_us.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"modmenu.summaryTranslation.performtracker": "Track game performance metrics",
44
"performtracker.start.success": "Performance tracking started. Output saved to: %s",
55
"performtracker.stop.success": "Performance tracking stopped. %d samples collected.",
6-
"performtracker.error.not_initialized": "Tracker not initialized",
6+
"performtracker.error.not_initialized": "Tracker not initialized\nPerhaps because you haven't enabled any metrics. Enable at least one in settings.",
77
"performtracker.error.already_running": "Tracker is already running",
88
"performtracker.error.not_running": "Tracker is not running",
99
"performtracker.command.start": "start",

src/main/resources/assets/performtracker/lang/lzh.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"modmenu.summaryTranslation.performtracker": "稽察遊藝效能之度數",
44
"performtracker.start.success": "效能追蹤既啟, 錄文存於: %s",
55
"performtracker.stop.success": "效能追蹤既訖, 凡集樣 %d 枚。",
6-
"performtracker.error.not_initialized": "追蹤器未始",
6+
"performtracker.error.not_initialized": "追蹤器未始\n恐未啟度數, 望君於置設啟其一。",
77
"performtracker.error.already_running": "追蹤器方行中",
88
"performtracker.error.not_running": "追蹤器未運",
99
"performtracker.command.start": "",

src/main/resources/assets/performtracker/lang/zh_cn.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"modmenu.summaryTranslation.performtracker": "追踪游戏性能指标",
44
"performtracker.start.success": "性能追踪已启动。输出保存至: %s",
55
"performtracker.stop.success": "性能追踪已停止。共收集 %d 个样本。",
6-
"performtracker.error.not_initialized": "追踪器未初始化",
6+
"performtracker.error.not_initialized": "追踪器未初始化\n可能是因为未启用任何指标。请在设置中至少启用一项指标。",
77
"performtracker.error.already_running": "追踪器已在运行中",
88
"performtracker.error.not_running": "追踪器未在运行",
99
"performtracker.command.start": "启动",

src/main/resources/assets/performtracker/lang/zh_tw.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"modmenu.summaryTranslation.performtracker": "追蹤遊戲效能指標",
44
"performtracker.start.success": "效能追蹤已啟動。輸出已儲存至: %s",
55
"performtracker.stop.success": "效能追蹤已停止。共收集 %d 筆樣本。",
6-
"performtracker.error.not_initialized": "追蹤器未初始化",
6+
"performtracker.error.not_initialized": "追蹤器未初始化\n或因为未啟用任何指標。請在設定中至少啟用一項指標。",
77
"performtracker.error.already_running": "追蹤器已在執行中",
88
"performtracker.error.not_running": "追蹤器未在執行",
99
"performtracker.command.start": "啟動",

0 commit comments

Comments
 (0)