HMCL
HMCL copied to clipboard
Minecraft低版本没有声音
启动器版本 Launcher Version
3.5.3.228
平台 Platform
Windows 10 家庭版 64位
Java
Amazon Corretto 1.8.0_342
游戏版本 Game Version
1.0
对游戏所做的修改 Modifications Made to the Game
游戏崩溃报告 Game Crash Report
No response
启动器崩溃报告 Launcher Crash Report
No response
启动器日志文件 Launcher Log File
No response
问题描述 Problem Description
在启动较低版本的Minecraft时没有任何声音,并且控制台有一连串如下输出:

在经过我的研究后,发现需要做如下修改:
将资源索引文件全部下载到.minecraft根目录下的 resources 文件夹中
将形如 --assetsDir xxx\.minecraft\assets\virtual\pre-1.6 的游戏参数更改为 --assetsDir xxx\.minecraft\resources
你的方法好像并不兼容mc 1.5.2,mc本体并不会尝试从本地加载.ogg文件,好像只能用hosts文件修改原链接到本地,然后在本地开服务器才行
我这里1.5.2也是可以的。。
游戏内使用 F3+S或者F3+R重新加载资源试试?
我这里因为各种原因,任何远古mc版本(<=1.5.2)都不会从本地加载assets,即使用F3重新加载资源
我这里因为各种原因,任何远古mc版本(<=1.5.2)都不会从本地加载assets,即使用F3重新加载资源
目录权限问题吗?看看java.exe和javaw.exe以及hmcl使用的java有没有目录的访问权限呢? 顺带一提,你访问链接能直接下载文件吗?
是我的错,我反编译了一下源码,发现resource文件夹位置和版本隔离有关
主方法是这个(1.5.2):net.minecraft.client.Minecraft.m1364a(String str) (jadx反混淆过的)
@ZekerZhayard 帮忙看下这个问题?
启动器版本 Launcher Version
3.5.3.228
平台 Platform
Windows 10 家庭版 64位
Java
Amazon Corretto 1.8.0_342
游戏版本 Game Version
1.0
对游戏所做的修改 Modifications Made to the Game
游戏崩溃报告 Game Crash Report
No response
启动器崩溃报告 Launcher Crash Report
No response
启动器日志文件 Launcher Log File
No response
问题描述 Problem Description
在启动较低版本的Minecraft时没有任何声音,并且控制台有一连串如下输出:
在经过我的研究后,发现需要做如下修改: 将资源索引文件全部下载到.minecraft根目录下的
resources文件夹中 将形如--assetsDir xxx\.minecraft\assets\virtual\pre-1.6的游戏参数更改为--assetsDir xxx\.minecraft\resources
我看到这个 http://s3.amazonaws.com/MinecraftResources 这个链接,这个下载地址已经被 MJ 给弃用了,所以是下载资源的问题?
我观察了 MMC ,他的确是使用像本 issue 这样的方法来修复的
开了下 PCL2 的源码,他也是这么做的
https://github.com/Hex-Dragon/PCL2/blob/2c2bd2d4893417d9b10e270c9cc82aceea747bbf/Plain%20Craft%20Launcher%202/Modules/Minecraft/ModMinecraft.vb#L2123-L2148
https://github.com/Hex-Dragon/PCL2/blob/2c2bd2d4893417d9b10e270c9cc82aceea747bbf/Plain%20Craft%20Launcher%202/Modules/Minecraft/ModLaunch.vb#L1583
不对,PCL2也有这个问题,只有MMC没有这个问题
@huanghongxun 要不修一下?
找到好的解决方法了:
只要读到 assetIndex json 里面有 map_to_resources 值,下载完这个资源后就将这里的文件拷贝一份到 resource 文件夹就行了
https://github.com/HMCL-dev/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java#L447
https://github.com/HMCL-dev/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java#L46-L49
找到好的解决方法了:
只要读到 assetIndex json 里面有
map_to_resources值,下载完这个资源后就将这里的文件拷贝一份到resource文件夹就行了https://github.com/huanghongxun/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java#L447
https://github.com/huanghongxun/HMCL/blob/4d88c2b1bbcb443694f060d6c5d66783e280b9be/HMCLCore/src/main/java/org/jackhuang/hmcl/game/AssetIndex.java#L46-L49
![]()
![]()
![]()
@huanghongxun 来修一下吧qwq
@Glavo 来修一下吧qwq
这个虫不好修…… 会导致 assets 存储逻辑混乱
或许可以通过软链接的方式尝试修复?
这个东西其实还有一个关键的问题,就是BMCLAPI,貌似没有这部分的缓存,如果有这部分的缓存的话,就没那么麻烦了
这个东西其实还有一个关键的问题,就是BMCLAPI,貌似没有这部分的缓存,如果有这部分的缓存的话,就没那么麻烦了
?这部分的缓存就是这个 assets 啊?
@zkitefly 有缓存吗?那没事了
@zkitefly 有缓存吗?那没事了
缓存文件就是 pre-1.6.json 的资源
我有个建议,当 index json 中含有 map_to_resources 时,下载(或拷贝)资源至该版本文件夹内的 resource 文件夹
hook试试
建议尽快修复,已经看到好多低版本没声音的例子了
https://www.bilibili.com/read/cv17798742