HMCL-dev / HMCL-dev/HMCL

[Feature] 关于已启动的实例进程管理功能的建议

Open
#5,719 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
10.1k
Forks
934
Avg merge
1d 5h
Merged PRs (30d)
82

Description

注: 以下内容由AI生成(就算不说应该也都知道吧(毕竟AI味十足))(核心内容就是关于实例多开和管理)

概述 | Summary

建议增强 HMCL 对已启动的 Minecraft 游戏实例(进程)的管理能力,具体可在启动界面提供以下一种或多种交互方式:

1.在启动按钮附近(例如按钮上或按钮旁)显示当前正在运行的实例数量或名称,以提醒用户。

2.在启动按钮旁增加一个“强制关闭已启动实例”的快捷按钮(点击后弹出确认对话框),方便用户手动结束可能隐藏在后台的进程。

3.或者采纳 Glavo 在直播中提到的方案:当用户尝试启动新实例时,若已有实例正在运行,则弹出一个对话框列出所有正在运行的实例,让用户选择关闭哪些后再继续启动。

这些方案的目的是让用户能更直观地掌握实例运行状态,并能够快速干预,避免因多开或残留进程导致的问题。

原因 | Reason

当前 HMCL 在启动实例后,除了任务栏或系统进程管理器外,没有在启动器界面内对已运行实例进行明确的状态提示或管理入口。这可能导致以下问题:

  • 有时由于未知原因,已启动的游戏实例可能会在系统后台隐藏(例如最小化后无法找回),而启动器仍显示可启动状态,用户可能无意中再次启动同一个实例,造成多开冲突。

  • 多开实例虽然在某些场景下有用,但也会增加内存占用或导致游戏崩溃(如部分 Mod 不支持多开),用户需要一个简单的途径在启动新实例前关闭已有的实例。

  • 对于不熟悉系统进程管理的普通用户,直接在启动器内提供关闭实例的功能可以降低操作门槛,提升用户体验。

详情 | Description

具体实现方式可考虑以下几点:

  • 状态指示:在启动器主界面的状态栏或启动按钮附近,增加一个图标或文字,显示当前正在运行的实例数量。点击该指示可展开列表,列出每个实例的名称、进程ID等信息。

  • 强制关闭:在启动按钮旁增加一个“停止所有实例”或“强制关闭”的小按钮(如红色方块图标),点击后弹出确认对话框,用户可选择关闭全部或部分实例。关闭应调用系统 API 终止对应的 Java 进程。

  • 启动前提示:当用户点击启动按钮时,若检测到已有实例正在运行,可弹出一个对话框,列出所有正在运行的实例及其启动时间、内存占用等信息,并让用户选择“关闭所选并启动”、“忽略并启动”或“取消启动”。默认建议用户关闭以避免冲突。

  • 兼容性考虑:对于需要多开的用户,应提供设置选项(如“允许同时运行多个实例”),以便跳过上述提示或限制。

这些改进可以在不改变现有启动逻辑的前提下,为用户提供更灵活的实例管理手段,从而减少因多开或残留进程引发的崩溃问题。

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. First map the existing launcher UI and Minecraft process handling, then agree on one management flow and define completion around visible instance status, selectable termination behavior, launch-time handling, and multi-instance compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.