Compare commits

...
Author SHA1 Message Date
Burning_TNT af3719403d Support #3000: Support neoforge.mods.toml (#3031)
* Support #3000

* Fix #2371

* Rename references.

* Code cleanup.
2024-05-15 22:24:48 +08:00
Liyan Zhao e0764d6f0c support java from homebrew (#3035)
* fix: support java from homebrew

* fix: support java from homebrew

* fix: add ~/Library/Java/JavaVirtualMachine
2024-05-14 00:15:07 +08:00
zkitefly 908f47f75e Update Copyright (#3010) 2024-05-13 23:45:46 +08:00
Glavo a3af719087 支持自动下载 Java 21 (#3045) 2024-05-13 23:41:23 +08:00
zkitefly 7f13d6646b Update ExitWaiter.java (#3042) 2024-05-12 20:36:21 +08:00
Kieran Moy e8b4c38451 Add cinnamon desktop support (#3017) 2024-05-07 23:40:18 +08:00
Glavo 38ba6802a0 Bump Hub Mirror Action to 1.4 (#3034) 2024-05-07 23:36:28 +08:00
Glavo 381eead7b6 将 1.20.5 和 1.20.6 添加至 versions.txt (#3008)
* 更新 versions.txt

* update
2024-05-07 23:27:22 +08:00
3gf8jv4dv df953e5ea7 Fix NeoForge 2x icon not working (#2994) 2024-04-17 22:00:28 +08:00
Glavo 2fd2954a06 更新指向 XZ 主页的链接 (#2990) 2024-04-15 05:37:04 +08:00
Glavo a8bb5c1570 修复导入部分整合包失败的问题 (#2989)
* 修复导入部分整合包失败的问题

* update

* update
2024-04-15 04:02:24 +08:00
zkitefly a33377d1f2 add macos_failed_to_find_service_port_for_display (#2797)
* add macos_failed_to_find_service_port_for_display

日志来自 HMCL KOOK

* updata i18n

* Update I18N_zh.properties
2024-04-15 02:38:59 +08:00
zkiteflyandGlavo e515542add 还原 MCBBS 的鸣谢 (#2958)
* Update AboutPage.java

* update

---------

Co-authored-by: Glavo <zjx001202@gmail.com>
2024-04-15 02:35:20 +08:00
zkitefly 48b6bd4ea1 add NEOFORGE_FOREST_OPTIFINE (#2976)
* add NEOFORGE_FOREST_OPTIFINE

* fix
2024-04-15 02:10:02 +08:00
Liyan Zhao 9cf23f69a6 Fix Microsoft authentication (#2986)
* fix: microsoft login #2979

* fix: typo
2024-04-15 02:07:47 +08:00
Glavo 4104ca082d 修复日志文件夹不存在时无法将日志写入文件的问题 (#2984) 2024-04-11 19:43:18 +08:00
Glavo 32f8ffad46 修复整合包下载失败提示窗标题未正确格式化的问题 (#2980)
* 修复 i18n 问题

* update

* update
2024-04-08 21:49:54 +08:00
Glavo a5e04a7b81 将 24w14potato 添加至 versions.txt (#2962)
* 将 24w14potato 添加至 versions.txt

* Update test
2024-04-02 13:55:52 +08:00
29 changed files with 332 additions and 23 deletions

No files matched your search

+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Mirror GitHub to Gitee
uses: Yikun/hub-mirror-action@v1.3
uses: Yikun/hub-mirror-action@v1.4
with:
src: github/HMCL-dev
dst: gitee/huanghongxun
+1 -1
View File
@@ -118,7 +118,7 @@ tasks.getByName<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("sha
manifest {
attributes(
"Created-By" to "Copyright(c) 2013-2023 huangyuhui.",
"Created-By" to "Copyright(c) 2013-2024 huangyuhui.",
"Main-Class" to "org.jackhuang.hmcl.Main",
"Multi-Release" to "true",
"Implementation-Version" to project.version,
@@ -354,7 +354,9 @@ public final class LauncherHelper {
if (org.jackhuang.hmcl.util.platform.Platform.isCompatibleWithX86Java()) {
JavaVersionConstraint.VersionRanges range = JavaVersionConstraint.findSuitableJavaVersionRange(gameVersion, version);
if (range.getMandatory().contains(VersionNumber.asVersion("17.0.1"))) {
if (range.getMandatory().contains(VersionNumber.asVersion("21.0.3"))) {
targetJavaVersion = GameJavaVersion.JAVA_21;
} else if (range.getMandatory().contains(VersionNumber.asVersion("17.0.1"))) {
targetJavaVersion = GameJavaVersion.JAVA_17;
} else if (range.getMandatory().contains(VersionNumber.asVersion("16.0.1"))) {
targetJavaVersion = GameJavaVersion.JAVA_16;
@@ -465,6 +467,11 @@ public final class LauncherHelper {
() -> FXUtils.openLink(OPENJDK_DOWNLOAD_LINK), null);
breakAction.run();
return Task.fromCompletableFuture(future);
case VANILLA_JAVA_21:
Controllers.confirm(i18n("launch.advice.require_newer_java_version", gameVersion.toString(), 21), i18n("message.warning"),
() -> FXUtils.openLink(OPENJDK_DOWNLOAD_LINK), null);
breakAction.run();
return Task.fromCompletableFuture(future);
case VANILLA_JAVA_8:
Controllers.dialog(i18n("launch.advice.java8_1_13"), i18n("message.error"), MessageType.ERROR, breakAction);
return Task.fromCompletableFuture(future);
@@ -202,6 +202,7 @@ public class GameCrashWindow extends Stage {
case TWILIGHT_FOREST_OPTIFINE:
case PERFORMANT_FOREST_OPTIFINE:
case JADE_FOREST_OPTIFINE:
case NEOFORGE_FOREST_OPTIFINE:
message = i18n("game.crash.reason.mod", "OptiFine");
LOG.info("Crash cause: " + result.getRule() + ": " + i18n("game.crash.reason.mod", "OptiFine"));
break;
@@ -109,6 +109,11 @@ public class AboutPage extends StackPane {
mcmod.setSubtitle(i18n("about.thanks_to.mcmod.statement"));
mcmod.setExternalLink("https://www.mcmod.cn/");
IconedTwoLineListItem mcbbs = new IconedTwoLineListItem();
mcbbs.setImage(FXUtils.newBuiltinImage("/assets/img/chest.png"));
mcbbs.setTitle(i18n("about.thanks_to.mcbbs"));
mcbbs.setSubtitle(i18n("about.thanks_to.mcbbs.statement"));
IconedTwoLineListItem contributors = new IconedTwoLineListItem();
contributors.setImage(FXUtils.newBuiltinImage("/assets/img/github.png"));
contributors.setTitle(i18n("about.thanks_to.contributors"));
@@ -121,7 +126,7 @@ public class AboutPage extends StackPane {
users.setSubtitle(i18n("about.thanks_to.users.statement"));
users.setExternalLink("https://docs.hmcl.net/groups.html");
thanks.getContent().setAll(yushijinhun, bangbang93, glavo, zekerzhayard, zkitefly, burningtnt, mcmod, shulkerSakura, gamerteam, redLnn, contributors, users);
thanks.getContent().setAll(yushijinhun, bangbang93, glavo, zekerzhayard, zkitefly, burningtnt, mcmod, mcbbs, shulkerSakura, gamerteam, redLnn, contributors, users);
}
ComponentList dep = new ComponentList();
@@ -144,7 +149,7 @@ public class AboutPage extends StackPane {
IconedTwoLineListItem xz = new IconedTwoLineListItem();
xz.setTitle("XZ for Java");
xz.setSubtitle("Lasse Collin, Igor Pavlov, and/or Brett Okken.\nPublic Domain.");
xz.setExternalLink("https://xz.tukaani.org/xz-for-java/");
xz.setExternalLink("https://tukaani.org/xz/java.html");
IconedTwoLineListItem fxgson = new IconedTwoLineListItem();
fxgson.setTitle("fx-gson");
@@ -83,7 +83,7 @@ public final class Versions {
} catch (IOException e) {
Controllers.dialog(
i18n("install.failed.downloading.detail", file.getFile().getUrl()) + "\n" + StringUtils.getStackTrace(e),
i18n("download.failed"), MessageDialogPane.MessageType.ERROR);
i18n("download.failed.no_code", file.getFile().getUrl()), MessageDialogPane.MessageType.ERROR);
return;
}
Controllers.taskDialog(
@@ -96,7 +96,7 @@ public final class Versions {
} else {
Controllers.dialog(
i18n("install.failed.downloading.detail", file.getFile().getUrl()) + "\n" + StringUtils.getStackTrace(e),
i18n("download.failed"), MessageDialogPane.MessageType.ERROR);
i18n("download.failed.no_code", file.getFile().getUrl()), MessageDialogPane.MessageType.ERROR);
}
}).executor(true),
i18n("message.downloading"),
File renamed without changes.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -37,6 +37,8 @@ about.thanks_to.gamerteam.statement=For providing the default background image.
about.thanks_to.glavo.statement=Responsible for maintaining HMCL.
about.thanks_to.zekerzhayard.statement=Contribute a lot of technical support to HMCL.
about.thanks_to.zkitefly.statement=Responsible for maintaining documentation of HMCL.
about.thanks_to.mcbbs=MCBBS (Minecraft Chinese Forum)
about.thanks_to.mcbbs.statement=or providing mcbbs.net download mirror for Mainland China users.
about.thanks_to.mcmod=mcmod.cn
about.thanks_to.mcmod.statement=For providing Chinese translations and wiki for various mods.
about.thanks_to.red_lnn.statement=For providing the default background image.
@@ -323,6 +325,7 @@ download.existing=The file cannot be saved because it already exists. You can us
download.external_link=Open Download Website
download.failed=Failed to download %1$s, response code: %2$d
download.failed.empty=No versions are available, please click here to go back.
download.failed.no_code=Failed to download %s
download.failed.refresh=Unable to fetch version list. Please click here to retry.
download.game=Game
download.provider.bmclapi=BMCLAPI (bangbang93, https://bmclapi2.bangbang93.com/)
@@ -475,6 +478,7 @@ If your computer has a discrete graphics card, you need to check whether the gam
If you are using your integrated graphics card, please notice that Minecraft 1.16.5 or older requires <a href="https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html">Java 1.8.0_51 or older</a> for Intel(R) Core(TM) 3000 processor series or earlier.\n\
\n\
Turning on the "Use OpenGL software renderer" option in the instance settings can also solve this problem, but when this option is turned on, the frame rate will be significantly reduced in the case of insufficient CPU performance. So it is only recommended to turn it on for debugging purposes or in case of emergency.
game.crash.reason.macos_failed_to_find_service_port_for_display=The current game cannot continue due to a failure to initialize the OpenGL window on the Apple silicon platform.\nFor this issue, HMCL does not have direct solutions at the moment. Please try opening any browser and going fullscreen, then return to HMCL, launch the game, and <b>quickly return to the browser page</b> before the game window pops up, wait for the game window to appear, and then switch back to the game window.
game.crash.reason.illegal_access_error=The game crashed because of some mod(s).\n\
\n\
If you know: %1$s, you can update or delete the mod(s) and then try again.
@@ -413,6 +413,7 @@ Por favor, inténtelo de nuevo después de actualizar su controlador gráfico a
Si tu ordenador tiene una tarjeta gráfica discreta, tienes que comprobar si el juego utiliza gráficos integrados/núcleo. Si es así, inicie el launcher utilizando su tarjeta gráfica discreta. Si el problema persiste, probablemente debería considerar la posibilidad de adquirir una nueva tarjeta gráfica o un nuevo ordenador.\n\
\n\
Si utiliza su tarjeta gráfica integrada, tenga en cuenta que Minecraft 1.16.5 o anterior requiere <a href="https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html">Java 1.8.0_51 o más antiguo</a> para la serie de procesadores Intel(R) Core(TM) 3000 o anteriores.
game.crash.reason.macos_failed_to_find_service_port_for_display=El juego actual no puede continuar debido a un fallo al inicializar la ventana de OpenGL en la plataforma de Apple silicon.\nPara este problema, HMCL no tiene soluciones directas por el momento. Intente abrir cualquier navegador y ponerlo en pantalla completa, luego vuelva a HMCL, inicie el juego y <b>vuelva rápidamente a la página del navegador</b> antes de que aparezca la ventana del juego, espere a que aparezca la ventana del juego y luego vuelva a la ventana del juego.
game.crash.reason.illegal_access_error=El juego se bloquea por culpa de algún(os) mod(s).\n\
\n\
Si sabes: %1$s, puedes actualizar o eliminar los mods y volver a intentarlo.
@@ -367,6 +367,7 @@ game.crash.reason.graphics_driver=現在、お使いのグラフィックカー
ゲームを起動する前に、グラフィックカードのドライバーを最新バージョンにアップグレードしてみてください。\n\
ディスクリートグラフィックカードを搭載している場合、統合型/コアグラフィックカードを使用してゲームが起動するかどうかを確認する必要があります。その場合、ディスクリートグラフィックカードを使用したゲームでHMCLを起動してみてください。それでも問題がある場合は、新しいグラフィックカードや新しいコンピュータの購入を検討する必要があるかもしれません。\n\
コアグラフィックカードが必要な場合は、お使いのパソコンのCPUがIntel(R) Core(TM) 3000シリーズ以上であることをご確認ください。その場合、Minecraft 1.16.5以前の場合は、ゲームに使用しているJavaバージョンを1.8.0_51以下にダウングレードするか、ディスクリートグラフィックカードを交換するか、または、新しい コンピュータを使用します。
game.crash.reason.macos_failed_to_find_service_port_for_display=現在のゲームは、Apple silicon プラットフォームでの OpenGL ウィンドウの初期化に失敗したため、続行できません。\nこの問題に対して、HMCL には直接的な解決策がありません。ブラウザを任意に開いてフルスクリーンにし、その後 HMCL に戻り、ゲームを起動し、ゲームウィンドウが表示される前<b>に素早くブラウザのページに戻ってください</b>。ゲームウィンドウが表示されたらゲームウィンドウに戻ってください。
game.crash.reason.illegal_access_error=一部のmodが原因でゲームがクラッシュしました。\n認識している場合:%1$s、modを更新または削除して、再試行してください。
game.crash.reason.install_mixinbootstrap=MixinBootstrapが見つからないため、現在のゲームを続行できません。\n<a href="https://www.curseforge.com/minecraft/mc-mods/mixinbootstrap">MixinBootstrap</a>をインストールしてみてください。インストール後にクラッシュする場合は、モジュールのファイル名の前に英語の「! をモジュールのファイル名の前につけてみてください。
game.crash.reason.jdk_9=Javaのバージョンが高すぎるため、ゲームを実行できません。\nJava 8をダウンロードしてインストールし、ゲーム設定で新しくインストールしたJavaを選択する必要があります。
@@ -386,6 +386,7 @@ game.crash.reason.graphics_driver=Игра вылетела из-за пробл
Обновите графический драйвер до последней версии.\n\
Если в вашем компьютере установлена дискретная видеокарта, необходимо проверить, использует ли игра интегрированную/ядер графику. Если это так, запустите HMCL и игру с использованием дискретной видеокарты. Если у вас по-прежнему возникают подобные проблемы, вы можете подумать о приобретении новой видеокарты или нового компьютера.\n\
Если же вы хотите продолжать использовать графическое ядро, проверьте, используете ли вы процессор Intel(R) Core(TM) 3000 series или более старый. Если это так, то для Minecraft 1.16.5 или более старой версии вам необходимо понизить версию Java до 1.8.0_51 или более старой версии, либо приобрести специальную видеокарту или новый компьютер.
game.crash.reason.macos_failed_to_find_service_port_for_display=Текущая игра не может быть запущена из-за сбоя инициализации OpenGL окна на платформе Apple silicon.\nДля этой проблемы у HMCL временно нет прямых решений. Попробуйте открыть любой браузер и перейти в полноэкранный режим, затем вернуться в HMCL, запустить игру и <b>быстро вернуться на страницу браузера</b> перед появлением игрового окна, дождаться появления игрового окна, а затем вернуться в игровое окно.
game.crash.reason.illegal_access_error=Игра вылетела из-за некоторых модов.\nЕсли вы узнаёте: %1$s, вы можете обновить или удалить мод и повторить попытку.
game.crash.reason.install_mixinbootstrap=Текущая игра не может быть запущена из-за отсутствия MixinBootstrap. \nДля решения проблемы вы можете попробовать установить <a href="https://www.curseforge.com/minecraft/mc-mods/mixinbootstrap">MixinBootstrap</a>. Если после установки произошел сбой, попробуйте добавить английский символ "!" перед именем файла модуля. перед именем файла модуля, чтобы попытаться решить проблему.
game.crash.reason.jdk_9=Невозможно запустить игру из-за того, что версия Java слишком высокая.\nНеобходимо скачать и установить Java 8 и вновь выбрать установленную Java в настройках игры.
@@ -35,6 +35,8 @@ about.thanks_to.gamerteam.statement=提供預設背景圖
about.thanks_to.glavo.statement=負責 HMCL 的日常維護
about.thanks_to.zekerzhayard.statement=為 HMCL 貢獻許多技術支持
about.thanks_to.zkitefly.statement=負責維護 HMCL 的文檔
about.thanks_to.mcbbs=MCBBS 我的世界中文論壇
about.thanks_to.mcbbs.statement=提供 MCBBS 下載源 (現已停止服務)
about.thanks_to.mcmod=MC 百科
about.thanks_to.mcmod.statement=提供 Mod 中文名映射表與 Mod 百科
about.thanks_to.red_lnn.statement=提供預設背景圖
@@ -332,6 +334,7 @@ download.existing=檔案已存在,無法保存。你可以選擇另存為將
download.external_link=打開下載網站
download.failed=下載失敗: %1$s,錯誤碼:%2$d
download.failed.empty=沒有能安裝的版本,按一下此處返回。
download.failed.no_code=下載失敗: %s
download.failed.refresh=載入版本列表失敗,按一下此處重試。
download.game=新遊戲
download.provider.bmclapi=BMCLAPI (bangbang93,https://bmclapi2.bangbang93.com/)
@@ -432,6 +435,7 @@ game.crash.reason.graphics_driver=當前遊戲因為你的顯示卡驅動存在
如果你的電腦存在獨立顯示卡,你需要檢查遊戲是否使用集成/核芯顯示卡啟動。如果是,請嘗試使用獨立顯示卡啟動 HMCL 與遊戲。如果仍有問題,你可能需要考慮換一個新顯示卡或新電腦。\n\
如果你確實需要使用核芯顯示卡,請檢查你的電腦的 CPU 是否是 Intel(R) Core(TM) 3000 系列或更舊的處理器,如果是,對於 Minecraft 1.16.5 及更舊版本,請你將遊戲所使用的 Java 版本降級至 1.8.0_51 及以下版本,否則你需要更換獨立顯示卡或新電腦。\n\
在版本設定中打開“使用 OpenGL 軟渲染器”選項也可以解决此問題,但打開此選項後在 CPU 效能不足的情况下幀數會顯著降低,僅推薦以調試為目的或應急時開啟。
game.crash.reason.macos_failed_to_find_service_port_for_display=當前遊戲因為 apple silicon 平台下初始化 opengl 窗口失敗,無法繼續運行。\n對於該問題,HMCL 暫無直接性的解決方案。請您嘗試任意打開一個瀏覽器並全屏,然後再回到 HMCL 啟動遊戲,在彈出遊戲窗口前<b>迅速切回瀏覽器頁面</b>,等待遊戲窗口出現後再切回遊戲窗口。
game.crash.reason.illegal_access_error=當前遊戲因為某些 Mod 的問題,無法繼續運行。\n如果你認識:%1$s,你可以更新或刪除對應 Mod 再試。
game.crash.reason.install_mixinbootstrap=當前遊戲因為缺失 MixinBootstrap,無法繼續運行。\n你可以嘗試安裝 <a href="https://www.curseforge.com/minecraft/mc-mods/mixinbootstrap">MixinBootstrap</a> 解決該問題。若安裝後崩潰,嘗試在該模組的文件名前加入英文“!”嘗試解決。
game.crash.reason.jdk_9=當前遊戲因為 Java 版本過高,無法繼續運行。\n你需要下載安裝 Java 8,並在遊戲設置中將 Java 設置為 1.8 的版本。
@@ -35,6 +35,8 @@ about.thanks_to.gamerteam.statement=提供默认背景图
about.thanks_to.glavo.statement=负责 HMCL 的日常维护
about.thanks_to.zekerzhayard.statement=为 HMCL 贡献许多技术支持
about.thanks_to.zkitefly.statement=负责维护 HMCL 的文档
about.thanks_to.mcbbs=MCBBS 我的世界中文论坛
about.thanks_to.mcbbs.statement=提供 MCBBS 下载源 (现已停止服务)
about.thanks_to.mcmod=MC 百科
about.thanks_to.mcmod.statement=提供模组中文名映射表与 Mod 百科
about.thanks_to.red_lnn.statement=提供默认背景图
@@ -333,6 +335,7 @@ download.existing=文件已存在,无法保存。你可以在模组选择栏
download.external_link=打开下载网站
download.failed=下载失败: %1$s,错误码:%2$d
download.failed.empty=[没有可供安装的版本,点击此处返回]
download.failed.no_code=下载失败: %s
download.failed.refresh=[加载版本列表失败,点击此处重试]
download.game=新游戏
download.provider.bmclapi=BMCLAPI(bangbang93,https://bmclapi2.bangbang93.com)
@@ -425,6 +428,7 @@ game.crash.reason.graphics_driver=当前游戏因为显卡驱动问题而崩溃
- 如果你确实需要使用核芯显卡,请检查你的电脑的 CPU 是否是 Intel(R) Core(TM) 3000 系列或更旧的处理器,如果是,对于 Minecraft 1.16.5 及更旧版本,请你将游戏所使用的 Java 版本降级至 1.8.0_51 及以下版本 <a href="https://github.com/frekele/oracle-java/releases/8u51-b16">Java 1.8.0 历史版本</a> ,否则请跳过;\n\
- 在全局(特定)游戏设置,高级设置中打开“使用 OpenGL 软渲染器”(开启此选项后帧数会显著降低,仅推荐在以调试为目的或应急时开启)。\n\
如果仍有问题,你可能需要考虑换一张新显卡或一台新电脑。
game.crash.reason.macos_failed_to_find_service_port_for_display=当前游戏因为 Apple silicon 平台下初始化 OpenGL 窗口失败,无法继续运行。\n对于该问题,HMCL 暂无直接性的解决方案。请您尝试任意打开一个浏览器并全屏,然后再回到 HMCL 启动游戏,在弹出游戏窗口前<b>迅速切回浏览器页面</b>,等待游戏窗口出现后再切回游戏窗口。
game.crash.reason.illegal_access_error=当前游戏因为某些模组的问题,无法继续运行。\n如果你认识:%1$s,你可以更新或删除对应模组再试。
game.crash.reason.install_mixinbootstrap=当前游戏因为缺失 MixinBootstrap,无法继续运行。\n你可以尝试安装 <a href="https://www.curseforge.com/minecraft/mc-mods/mixinbootstrap">MixinBootstrap</a> 解决该问题。若安装后崩溃,尝试在该模组的文件名前加入英文“!”尝试解决。
game.crash.reason.need_jdk11=当前游戏因为 Java 虚拟机版本不合适,无法继续运行。\n你需要下载安装 <a href="https://bell-sw.com/pages/downloads/#downloads">Java 11</a>,并在全局(特定)游戏设置中将 Java 设置为 11 开头的版本。
@@ -43,7 +43,7 @@ public class AuthlibInjectorDownloader implements AuthlibInjectorArtifactProvide
private final Supplier<DownloadProvider> downloadProvider;
/**
* @param artifactsDirectory where to save authlib-injector artifacts
* @param artifactLocation where to save authlib-injector artifacts
*/
public AuthlibInjectorDownloader(Path artifactLocation, Supplier<DownloadProvider> downloadProvider) {
this.artifactLocation = artifactLocation;
@@ -146,6 +146,16 @@ public class MicrosoftService {
long notAfter = minecraftResponse.expiresIn * 1000L + System.currentTimeMillis();
// Check MC ownership, this is necessary, see GitHub#2979
HttpURLConnection request = HttpRequest.GET("https://api.minecraftservices.com/entitlements/mcstore")
.authorization("Bearer " + minecraftResponse.accessToken)
.retry(5)
.accept("application/json").createConnection();
if (request.getResponseCode() != 200) {
throw new ResponseCodeException(new URL("https://api.minecraftservices.com/entitlements/mcstore"), request.getResponseCode());
}
// Get Minecraft Account UUID
MinecraftProfileResponse profileResponse = getMinecraftProfile(minecraftResponse.tokenType, minecraftResponse.accessToken);
handleErrorResponse(profileResponse);
@@ -131,9 +131,14 @@ public abstract class VersionList<T extends RemoteVersion> {
lock.readLock().lock();
try {
T result = null;
for (T it : versions.get(gameVersion))
TreeSet<T> remoteVersions = versions.get(gameVersion);
for (T it : remoteVersions)
if (remoteVersion.equals(it.getSelfVersion()))
result = it;
if (result == null)
for (T it : remoteVersions)
if (remoteVersion.equals(it.getFullVersion()))
result = it;
return Optional.ofNullable(result);
} finally {
lock.readLock().unlock();
@@ -31,6 +31,11 @@ public class OptiFineRemoteVersion extends RemoteVersion {
super(LibraryAnalyzer.LibraryType.OPTIFINE.getPatchId(), gameVersion, selfVersion, null, snapshot ? Type.SNAPSHOT : Type.RELEASE, urls);
}
@Override
public String getFullVersion() {
return getGameVersion() + "_" + getSelfVersion();
}
@Override
public Task<Version> getInstallTask(DefaultDependencyManager dependencyManager, Version baseVersion) {
return new OptiFineInstallTask(dependencyManager, baseVersion, this);
@@ -46,6 +46,8 @@ public final class CrashReportAnalyzer {
// Maybe software rendering? Suggest user for using a graphics card.
OPENGL_NOT_SUPPORTED(Pattern.compile("The driver does not appear to support OpenGL")),
GRAPHICS_DRIVER(Pattern.compile("(Pixel format not accelerated|GLX: Failed to create context: GLXBadFBConfig|Couldn't set pixel format|net\\.minecraftforge\\.fml.client\\.SplashProgress|org\\.lwjgl\\.LWJGLException|EXCEPTION_ACCESS_VIOLATION(.|\\n|\\r)+# C {2}\\[(ig|atio|nvoglv))")),
// macOS initializing OpenGL window issues
MACOS_FAILED_TO_FIND_SERVICE_PORT_FOR_DISPLAY(Pattern.compile("java\\.lang\\.IllegalStateException: GLFW error before init: \\[0x10008\\]Cocoa: Failed to find service port for display")),
// Out of memory
OUT_OF_MEMORY(Pattern.compile("(java\\.lang\\.OutOfMemoryError|The system is out of physical RAM or swap space|Out of Memory Error|Error occurred during initialization of VM\\RToo small maximum heap)")),
// Memory exceeded
@@ -139,6 +141,8 @@ public final class CrashReportAnalyzer {
TWILIGHT_FOREST_OPTIFINE(Pattern.compile("java\\.lang\\.IllegalArgumentException: (.*) outside of image bounds (.*)")),
// Jade is not compatible with OptiFine on Minecraft 1.20+
JADE_FOREST_OPTIFINE(Pattern.compile("Critical injection failure: LVT in net/minecraft/client/renderer/GameRenderer::m_109093_\\(FJZ\\)V has incompatible changes at opcode 760 in callback jade\\.mixins\\.json:GameRendererMixin-\\>@Inject::jade\\$runTick\\(FJZLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;IILcom/mojang/blaze3d/platform/Window;Lorg/joml/Matrix4f;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/gui/GuiGraphics;\\)V\\.")),
// NeoForge 与 OptiFine 不兼容
NEOFORGE_FOREST_OPTIFINE(Pattern.compile("cpw\\.mods\\.modlauncher\\.InvalidLauncherSetupException: Invalid Services found OptiFine")),
// 一些模组与 Sodium 不兼容
// https://github.com/CaffeineMC/sodium-fabric/wiki/Known-Issues#rtss-incompatible
@@ -39,6 +39,8 @@ public enum JavaVersionConstraint {
VANILLA_JAVA_16(JavaVersionConstraint.RULE_MANDATORY, GameVersionNumber.atLeast("1.17"), VersionNumber.atLeast("16")),
// Minecraft>=1.18 requires Java 17
VANILLA_JAVA_17(JavaVersionConstraint.RULE_MANDATORY, GameVersionNumber.atLeast("1.18"), VersionNumber.atLeast("17")),
// Minecraft>=1.20.5 requires Java 21
VANILLA_JAVA_21(JavaVersionConstraint.RULE_MANDATORY, GameVersionNumber.atLeast("1.20.5"), VersionNumber.atLeast("21")),
// Minecraft<=1.7.2+Forge requires Java<=7, But LegacyModFixer may fix that problem. So only suggest user using Java 7.
MODDED_JAVA_7(JavaVersionConstraint.RULE_SUGGESTED, GameVersionNumber.atMost("1.7.2"), VersionNumber.atMost("1.7.999")) {
@Override
@@ -70,7 +70,6 @@ final class ExitWaiter implements Runnable {
EventBus.EVENT_BUS.fireEvent(new JVMLaunchFailedEvent(this, process));
exitType = ProcessListener.ExitType.JVM_ERROR;
} else if (exitCode != 0 || StringUtils.containsOne(errorLines,
"Someone is closing me!",
"Crash report saved to", "Could not save crash report to", "This crash report has been saved to:",
"Unable to launch", "An exception was thrown, the game will display an error screen and halt.")) {
EventBus.EVENT_BUS.fireEvent(new ProcessExitedAbnormallyEvent(this, process));
@@ -112,11 +112,29 @@ public final class ForgeNewModMetadata {
}
}
private static final int ACC_FORGE = 0x01;
private static final int ACC_NEO_FORGED = 0x02;
public static LocalModFile fromFile(ModManager modManager, Path modFile, FileSystem fs) throws IOException, JsonParseException {
Path modstoml = fs.getPath("META-INF/mods.toml");
if (Files.notExists(modstoml))
try {
return fromFile0("META-INF/mods.toml", ACC_FORGE | ACC_NEO_FORGED, ModLoaderType.FORGE, modManager, modFile, fs);
} catch (Exception ignored) {
}
try {
return fromFile0("META-INF/neoforge.mods.toml", ACC_NEO_FORGED, ModLoaderType.NEO_FORGED, modManager, modFile, fs);
} catch (Exception ignored) {
}
throw new IOException("File " + modFile + " is not a Forge 1.13+ or NeoForge mod.");
}
private static LocalModFile fromFile0(String tomlPath, int loaderACC, ModLoaderType defaultLoader, ModManager modManager, Path modFile, FileSystem fs) throws IOException, JsonParseException {
Path modToml = fs.getPath(tomlPath);
if (Files.notExists(modToml))
throw new IOException("File " + modFile + " is not a Forge 1.13+ or NeoForge mod.");
Toml toml = new Toml().read(FileUtils.readText(modstoml));
Toml toml = new Toml().read(FileUtils.readText(modToml));
ForgeNewModMetadata metadata = toml.to(ForgeNewModMetadata.class);
if (metadata == null || metadata.getMods().isEmpty())
throw new IOException("Mod " + modFile + " `mods.toml` is malformed..");
@@ -132,28 +150,34 @@ public final class ForgeNewModMetadata {
}
}
ModLoaderType modLoaderType = analyzeModLoader(toml, mod.getModId());
if (modLoaderType == null) {
throw new IOException("File " + modFile + " is not a Forge 1.13+ or NeoForge mod.");
}
ModLoaderType type = analyzeLoader(toml, mod.getModId(), loaderACC, defaultLoader);
return new LocalModFile(modManager, modManager.getLocalMod(mod.getModId(), modLoaderType), modFile, mod.getDisplayName(), new LocalModFile.Description(mod.getDescription()),
return new LocalModFile(modManager, modManager.getLocalMod(mod.getModId(), type), modFile, mod.getDisplayName(), new LocalModFile.Description(mod.getDescription()),
mod.getAuthors(), jarVersion == null ? mod.getVersion() : mod.getVersion().replace("${file.jarVersion}", jarVersion), "",
mod.getDisplayURL(),
metadata.getLogoFile());
}
private static ModLoaderType analyzeModLoader(Toml toml, String modID) {
private static ModLoaderType analyzeLoader(Toml toml, String modID, int loaderACC, ModLoaderType defaultLoader) throws IOException {
List<HashMap<String, Object>> dependencies = toml.getList("dependencies." + modID);
if (dependencies != null) {
for (HashMap<String, Object> dependency : dependencies) {
switch ((String) dependency.get("modId")) {
case "forge": return ModLoaderType.FORGE;
case "neoforge": return ModLoaderType.NEO_FORGED;
case "forge": return checkLoaderACC(loaderACC, ACC_FORGE, ModLoaderType.FORGE);
case "neoforge": return checkLoaderACC(loaderACC, ACC_NEO_FORGED, ModLoaderType.NEO_FORGED);
}
}
}
return null;
// ??? I have no idea why some of the Forge mods doesn't provide this key.
return defaultLoader;
}
private static ModLoaderType checkLoaderACC(int current, int target, ModLoaderType res) throws IOException {
if ((target & current) != 0) {
return res;
} else {
throw new IOException("Mismatched loader.");
}
}
}
@@ -302,6 +302,7 @@ public final class FileUtils {
case "kde":
case "mate":
case "deepin":
case "x-cinnamon":
return true;
}
}
@@ -210,6 +210,7 @@ public final class Logger {
if (logFolder != null) {
String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH-mm-ss"));
try {
Files.createDirectories(logFolder);
for (int n = 0; ; n++) {
Path file = logFolder.resolve(time + (n == 0 ? "" : "." + n) + ".log").toAbsolutePath().normalize();
try {
@@ -335,11 +335,18 @@ public final class JavaVersion {
javaExecutables.add(listDirectory(Paths.get("/Library/Java/JavaVirtualMachines"))
.flatMap(dir -> Stream.of(dir.resolve("Contents/Home"), dir.resolve("Contents/Home/jre")))
.map(JavaVersion::getExecutable));
javaExecutables.add(listDirectory(Paths.get(System.getProperty("user.home"), "Library/Java/JavaVirtualMachines"))
.flatMap(dir -> Stream.of(dir.resolve("Contents/Home"), dir.resolve("Contents/Home/jre")))
.map(JavaVersion::getExecutable));
javaExecutables.add(listDirectory(Paths.get("/System/Library/Java/JavaVirtualMachines"))
.map(dir -> dir.resolve("Contents/Home"))
.map(JavaVersion::getExecutable));
javaExecutables.add(Stream.of(Paths.get("/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java")));
javaExecutables.add(Stream.of(Paths.get("/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/MacOS/itms/java/bin/java")));
// Homebrew
javaExecutables.add(Stream.of(Paths.get("/opt/homebrew/opt/java/bin/java")));
javaExecutables.add(listDirectory(Paths.get("/opt/homebrew/Cellar/openjdk"))
.map(JavaVersion::getExecutable));
break;
default:
@@ -736,3 +736,24 @@
24w03b
24w04a
24w05a
24w05b
24w06a
24w07a
24w09a
24w10a
24w11a
24w12a
24w13a
24w14potato
24w14a
1.20.5-pre1
1.20.5-pre2
1.20.5-pre3
1.20.5-pre4
1.20.5-rc1
1.20.5-rc2
1.20.5-rc3
1.20.5
1.20.6-rc1
1.20.6
24w18a
@@ -281,6 +281,13 @@ public class CrashReportAnalyzerTest {
CrashReportAnalyzer.Rule.GRAPHICS_DRIVER);
}
@Test
public void macosFailedToFindServicePortForDisplay() throws IOException {
CrashReportAnalyzer.Result result = findResultByRule(
CrashReportAnalyzer.anaylze(loadLog("/logs/macos_failed_to_find_service_port_for_display.txt")),
CrashReportAnalyzer.Rule.MACOS_FAILED_TO_FIND_SERVICE_PORT_FOR_DISPLAY);
}
@Test
public void modName() throws IOException {
CrashReportAnalyzer.Result result = findResultByRule(
@@ -448,6 +455,13 @@ public class CrashReportAnalyzerTest {
CrashReportAnalyzer.Rule.PERFORMANT_FOREST_OPTIFINE);
}
@Test
public void neoforgeForestOptiFineIncompatible() throws IOException {
CrashReportAnalyzer.Result result = findResultByRule(
CrashReportAnalyzer.anaylze(loadLog("/crash-report/mod/neoforgeforest_optifine_incompatibility.txt")),
CrashReportAnalyzer.Rule.NEOFORGE_FOREST_OPTIFINE);
}
@Test
public void fabricMissingMinecraft() throws IOException {
CrashReportAnalyzer.Result result = findResultByRule(
@@ -178,7 +178,9 @@ public class GameVersionNumberTest {
"23w13a_or_b",
"23w14a",
"1.20",
"24w13a",
"24w14potato",
"24w14a",
"Unknown",
"100.0"
);
@@ -0,0 +1,55 @@
[14:42:15] [main/INFO]: ModLauncher running: args [--username, Zkitefly, --version, 1.20.4-of, --gameDir, /home/zkitefly/.minecraft, --assetsDir, /home/zkitefly/.minecraft/assets, --assetIndex, 12, --uuid, 4453d157b2b8488c8be610fe8d34ef8c, --accessToken, ❄❄❄❄❄❄❄❄, --clientId, ${clientid}, --xuid, ${auth_xuid}, --userType, msa, --versionType, HMCL (PR Collection) 3.5.unofficial-eb0b16b (PR Collection), --width, 854, --height, 480, --fml.neoForgeVersion, 20.4.223, --fml.fmlVersion, 2.0.17, --fml.mcVersion, 1.20.4, --fml.neoFormVersion, 20231207.154220, --launchTarget, forgeclient]
[14:42:15] [main/INFO]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.10 by BellSoft; OS Linux arch amd64 version 5.10.0-amd64-desktop
[14:42:15] [main/INFO]: Loading ImmediateWindowProvider fmlearlywindow
[14:42:15] [main/INFO]: Trying GL version 4.6
[14:42:15] [main/INFO]: Requested GL version 4.6 got version 4.6
[14:42:15] [main/INFO]: OptiFineTransformationService.onLoad
[14:42:15] [main/INFO]: OptiFine ZIP file URL: union:/home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar%23167!/
[14:42:15] [main/ERROR]: Error loading OptiFine ZIP file: union:/home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar%23167!/
java.nio.file.NoSuchFileException: /home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar#167
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) ~[?:?]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[?:?]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55) ~[?:?]
at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148) ~[?:?]
at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99) ~[?:?]
at java.nio.file.Files.readAttributes(Files.java:1851) ~[?:?]
at java.util.zip.ZipFile$Source.get(ZipFile.java:1428) ~[?:?]
at java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:718) ~[?:?]
at java.util.zip.ZipFile.<init>(ZipFile.java:252) ~[?:?]
at java.util.zip.ZipFile.<init>(ZipFile.java:181) ~[?:?]
at java.util.zip.ZipFile.<init>(ZipFile.java:195) ~[?:?]
at optifine.OptiFineTransformationService.onLoad(OptiFineTransformationService.java:109) ~[?:?]
at cpw.mods.modlauncher.TransformationServiceDecorator.onLoad(TransformationServiceDecorator.java:53) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.TransformationServicesHandler.lambda$loadTransformationServices$11(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?]
at java.util.HashMap$Values.forEach(HashMap.java:1065) ~[?:?]
at cpw.mods.modlauncher.TransformationServicesHandler.loadTransformationServices(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:48) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.Launcher.run(Launcher.java:88) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]
[14:42:15] [main/ERROR]: Service failed to load OptiFine
cpw.mods.modlauncher.api.IncompatibleEnvironmentException: Error loading OptiFine ZIP file: union:/home/zkitefly/.minecraft/mods/preview_OptiFine_1.20.4_HD_U_I8_pre4.jar%23167!/
at optifine.OptiFineTransformationService.onLoad(OptiFineTransformationService.java:122) ~[?:?]
at cpw.mods.modlauncher.TransformationServiceDecorator.onLoad(TransformationServiceDecorator.java:53) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.TransformationServicesHandler.lambda$loadTransformationServices$11(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?]
at java.util.HashMap$Values.forEach(HashMap.java:1065) ~[?:?]
at cpw.mods.modlauncher.TransformationServicesHandler.loadTransformationServices(TransformationServicesHandler.java:116) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:48) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.Launcher.run(Launcher.java:88) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?]
at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]
[14:42:15] [main/ERROR]: Found 1 services that failed to load : [OptiFine]
Exception in thread "main" cpw.mods.modlauncher.InvalidLauncherSetupException: Invalid Services found OptiFine
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.TransformationServicesHandler.validateTransformationServices(TransformationServicesHandler.java:110)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:49)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.run(Launcher.java:88)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.Launcher.main(Launcher.java:78)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)
at MC-BOOTSTRAP/cpw.mods.modlauncher@10.0.9/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)
at cpw.mods.bootstraplauncher@1.1.2/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141)
[HMCL ProcessListener] Minecraft exit with code 1(0x1), type is APPLICATION_ERROR.
@@ -0,0 +1,131 @@
[16:28:06] [main/INFO]: ModLauncher running: args [--username, byc, --version, 1.16.5guangying, --gameDir, /Users/biwenbo/Library/Application Support/minecraft/versions/1.16.5guangying, --assetsDir, /Users/biwenbo/Library/Application Support/minecraft/assets, --assetIndex, 1.16, --uuid, 6b38b80450703b1b91dd32b6d78cb31c, --accessToken, ❄❄❄❄❄❄❄❄, --userType, msa, --versionType, HMCL 3.5.5, --width, 854, --height, 480, --tweakClass, optifine.OptiFineTweaker, --launchTarget, fmlclient, --fml.forgeVersion, 36.2.41, --fml.mcVersion, 1.16.5, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20210115.111550]
[16:28:06] [main/INFO]: ModLauncher 8.1.3+8.1.3+main-8.1.x.c94d18ec starting: java version 1.8.0_381 by Oracle Corporation
[16:28:07] [main/INFO]: OptiFineTransformationService.onLoad
[16:28:07] [main/INFO]: OptiFine ZIP file: /Users/biwenbo/Library/Application Support/minecraft/libraries/optifine/OptiFine/1.16.5_HD_U_G8/OptiFine-1.16.5_HD_U_G8.jar
[16:28:07] [main/INFO]: Target.PRE_CLASS is available
[16:28:07] [main/INFO]: Added Lets Encrypt root certificates as additional trust
[16:28:07] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.4 Source=file:/Users/biwenbo/Library/Application%20Support/minecraft/libraries/org/spongepowered/mixin/0.8.4/mixin-0.8.4.jar Service=ModLauncher Env=CLIENT
[16:28:07] [main/INFO]: OptiFineTransformationService.initialize
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:105]: Description : Cocoa: Failed to find service port for display
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:106]: Stacktrace :
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: org.lwjgl.glfw.GLFW.glfwInit(GLFW.java:827)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.progress.ClientVisualization.initWindow(ClientVisualization.java:58)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.progress.ClientVisualization.start(ClientVisualization.java:335)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.progress.EarlyProgressVisualization.accept(EarlyProgressVisualization.java:29)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.FMLLoader.setupLaunchHandler(FMLLoader.java:176)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.FMLServiceProvider.initialize(FMLServiceProvider.java:80)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:68)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.TransformationServicesHandler.lambda$initialiseTransformationServices$7(TransformationServicesHandler.java:107)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: java.util.HashMap$Values.forEach(HashMap.java:982)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:107)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:59)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.Launcher.run(Launcher.java:76)
[16:28:09] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.Launcher.main(Launcher.java:66)
[16:28:09] [main/ERROR]: Suppressing Last GLFW error: [0x10008]Cocoa: Failed to find service port for display
[16:28:10] [main/INFO]: OptiFineTransformationService.transformers
[16:28:10] [main/INFO]: Targets: 311
[16:28:11] [main/INFO]: additionalClassesLocator: [optifine., net.optifine.]
[16:28:11] [main/INFO]: Launching target 'fmlclient' with arguments [--version, 1.16.5guangying, --gameDir, /Users/biwenbo/Library/Application Support/minecraft/versions/1.16.5guangying, --assetsDir, /Users/biwenbo/Library/Application Support/minecraft/assets, --uuid, 6b38b80450703b1b91dd32b6d78cb31c, --username, byc, --assetIndex, 1.16, --accessToken, ❄❄❄❄❄❄❄❄, --userType, msa, --versionType, HMCL 3.5.5, --width, 854, --height, 480, --tweakClass, optifine.OptiFineTweaker]
[16:28:12] [main/INFO]: [net.minecraft.client.main.Main:main:80]: Completely ignored arguments: [--tweakClass, optifine.OptiFineTweaker]
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:105]: Description : Cocoa: Failed to find service port for display
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:106]: Stacktrace :
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3050)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.BackgroundWaiter.runAndTick(BackgroundWaiter.java:19)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraft.client.main.Main.main(Main.java:123)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: java.lang.reflect.Method.invoke(Method.java:498)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:37)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.Launcher.run(Launcher.java:82)
[16:28:14] [main/INFO]: [org.lwjgl.glfw.GLFWErrorCallback$1:invoke:110]: cpw.mods.modlauncher.Launcher.main(Launcher.java:66)
[16:28:26] [Render thread/INFO]: Environment: authHost='http://localhost:58297/authserver', accountsHost='http://127.0.0.1:58307/https/api.mojang.com', sessionHost='http://127.0.0.1:58307/https/sessionserver.mojang.com', servicesHost='http://127.0.0.1:58307/https/api.minecraftservices.com', name='PROD'
[16:28:27] [Render thread/INFO]: Setting user: byc
[16:28:27] [Render thread/INFO]: [OptiFine] (Reflector) Class not present: net.minecraft.launchwrapper.Launch
[16:28:27] [Render thread/INFO]: Backend library: LWJGL version 3.2.1 build 12
[16:28:27] [Render thread/INFO]: [net.minecraft.util.registry.Bootstrap:func_179870_a:123]: ---- Minecraft Crash Report ----
// I just don't know what went wrong :(
Time: 24-2-1 下午4:28
Description: Initializing game
java.lang.IllegalStateException: GLFW error before init: [0x10008]Cocoa: Failed to find service port for display
at com.mojang.blaze3d.platform.GLX.lambda$_initGlfw$1(GLX.java:81) ~[?:?] {re:classloading,xf:OptiFine:default}
at net.minecraft.client.MainWindow.func_211162_a(MainWindow.java:178) ~[?:?] {re:classloading,xf:OptiFine:default}
at com.mojang.blaze3d.platform.GLX._initGlfw(GLX.java:79) ~[?:?] {re:classloading,xf:OptiFine:default}
at com.mojang.blaze3d.systems.RenderSystem.initBackendSystem(SourceFile:1060) ~[?:?] {re:classloading}
at net.minecraft.client.Minecraft.<init>(Minecraft.java:416) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:149) ~[1.16.5guangying.jar:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_381] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_381] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_381] {}
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_381] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:37) ~[forge-1.16.5-36.2.41.jar:36.2] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.1.3.jar:?] {}
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at com.mojang.blaze3d.platform.GLX.lambda$_initGlfw$1(GLX.java:81) ~[?:?] {re:classloading,xf:OptiFine:default}
at net.minecraft.client.MainWindow.func_211162_a(MainWindow.java:178) ~[?:?] {re:classloading,xf:OptiFine:default}
at com.mojang.blaze3d.platform.GLX._initGlfw(GLX.java:79) ~[?:?] {re:classloading,xf:OptiFine:default}
at com.mojang.blaze3d.systems.RenderSystem.initBackendSystem(SourceFile:1060) ~[?:?] {re:classloading}
at net.minecraft.client.Minecraft.<init>(Minecraft.java:416) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.main.Main.main(Main.java:149) ~[1.16.5guangying.jar:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_381] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_381] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_381] {}
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_381] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:37) ~[forge-1.16.5-36.2.41.jar:36.2] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.1.3.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.1.3.jar:?] {}
-- System Details --
Details:
Minecraft Version: 1.16.5
Minecraft Version ID: 1.16.5
Operating System: Mac OS X (x86_64) version 14.1.2
Java Version: 1.8.0_381, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 2220089736 bytes (2117 MB) / 3355443200 bytes (3200 MB) up to 4294967296 bytes (4096 MB)
CPUs: 8
JVM Flags: 11 total; -Xmx4069m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32m -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -XX:-DontCompileHugeMethods -XX:+IgnoreUnrecognizedVMOptions
Launched Version: 1.16.5guangying
Backend library: LWJGL version 3.2.1 build 12
Backend API: NO CONTEXT
GL Caps:
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'forge'
Type: Client (map_client.txt)
CPU: <unknown>
OptiFine Version: OptiFine_1.16.5_HD_U_G8
OptiFine Build: 20210515-161946
Render Distance Chunks: 8
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: null
OpenGlRenderer: null
OpenGlVendor: null
CpuCount: 8
[16:28:27] [Render thread/INFO]: [net.minecraft.util.registry.Bootstrap:func_179870_a:123]: #@!@# Game crashed! Crash report saved to: #@!@# /Users/biwenbo/Library/Application Support/minecraft/versions/1.16.5guangying/crash-reports/crash-2024-02-01_16.28.27-client.txt