All versions
v1.0.2
Beta
Fabriclast month 22
Compatibility
Minecraft: Java Edition
1.21.1–1.21.11
Platform
NeoForge
Supported environments
Client-side
Changes
v1.0.2
Bug Fixes
- Fixed server detection matching other Minecraft clients: any Java process containing "fabric"/"forge" in its command line could be mistaken for the server and force-killed by the stop button. Client processes (launched with --accessToken) are now excluded
- Stricter port-based PID lookup: only netstat entries whose local address actually ends with :25565 are matched, instead of any line containing the port number
Internal
- Removed the needless singleton instance — all state was already static, so every method is now static
- Reduced public API surface: statusWatcher, addLocalhostServerIfNeeded and checkExistingServer are now private
- Unified repeated state-transition code (10+ copy-pasted sites) into markRunning() / adoptProcess() / adoptPortProcess() / abortLaunch() helpers
- Pause menu button: merged two nearly identical add-button methods into one, and replaced the fragile "find our button by its ▶ label" removal with a direct field reference
v1.0.2
バグ修正
- サーバー検出が他のMinecraftクライアントを誤認識する問題を修正: コマンドラインに"fabric"/"forge"を含むJavaプロセスがすべてサーバー扱いされ、停止ボタンで別のゲームインスタンスを強制終了する恐れがあった。クライアントプロセス(--accessToken付きで起動される)を除外
- ポートからのPID検索を厳密化: ポート番号を含むだけの行ではなく、ローカルアドレスが:25565で終わるnetstatエントリのみを対象に
内部改善
- 不要なシングルトンinstanceを削除 — 状態はすべてstaticだったため、全メソッドをstatic化
- 公開APIを縮小: statusWatcher・addLocalhostServerIfNeeded・checkExistingServerを非公開に
- 10箇所以上にコピペされていた状態遷移コードをmarkRunning() / adoptProcess() / adoptPortProcess() / abortLaunch()ヘルパーに統一
- ESCメニューのボタン: ほぼ同一の追加メソッド2つを1つに統合し、「▶ラベルで自分のボタンを探して消す」壊れやすい方式をフィールド参照に置き換え
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:p9XtPjrF:AeaB35dM"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:p9XtPjrF:AeaB35dM"
}

