MemoryShadow / minecraftctl

This is a minecraft server management tool that supports background running, fast download deployment (beta), start, stop, restart, backup, restore backup, send messages to players, monitor player messages and respond (alpha)
https://MemoryShadow.github.io/minecraftctl
GNU General Public License v3.0
6 stars 1 forks source link

将build条目集成到minecraftctl-install中 #5

Closed MemoryShadow closed 1 year ago

MemoryShadow commented 2 years ago

目前来说, 此提交面临的问题是高版本的混淆映射表下载缓慢(在游戏官网), 需要download模块介入加速, 但获取混淆映射表的路径在BuildTools.jar中, 需要解析此工具的运作模式以提前获得需要下载的文件路径

目前来说, 其他加速部分可以参阅这篇教程来进行提前处理

经过我的观察,Bukkit混淆映射就在BuildData仓库里,你只需要根据需要版本在提交记录里找,然后checkout到对应的提交号就可以了。---ZX夏夜之风

MemoryShadow commented 1 year ago

目前还尚未主动解决混淆映射表难以下载的问题, 但依照我本地测试, 这个问题似乎没有再出现了

后续将会进行一些测试以确认这件事

SNWCreations commented 1 year ago

一般来说,你把Spigot的BuildData仓库clone下载下来,然后去 hub.spigotmc.org/versions 文件夹(我建立的镜像在我账号下的 spigotversions 仓库)寻找对应版本的Json,解析一下,得到其中的BuildData值,就是对应版本的commit

SNWCreations commented 1 year ago

另外,我其实不是很理解为什么要这么做,如果只是想要加快构建Spigot,BuildTools+ (在我账号下的 BuildToolsPlus 仓库)重现了那份教程。直接下载它,然后调用即可。

MemoryShadow commented 1 year ago

另外,我其实不是很理解为什么要这么做,如果只是想要加快构建Spigot,BuildTools+ (在我账号下的 BuildToolsPlus 仓库)重现了那份教程。直接下载它,然后调用即可。

因为在之前高版本的构建(大约在1.18.2刚出来的时候,今年6月份左右)出现过下载混淆映射表从官网下载导致下载时间过长的问题,所以需要考虑预处理的问题, 在最新的构建测试中, 好像这种问题没有再发生了

我的推测是,在旧版中, 混淆映射表的来源是逆向工作,而在新版本中,官方将混淆映射表贴出来了

SNWCreations commented 1 year ago

另外,我其实不是很理解为什么要这么做,如果只是想要加快构建Spigot,BuildTools+ (在我账号下的 BuildToolsPlus 仓库)重现了那份教程。直接下载它,然后调用即可。

因为在之前高版本的构建(大约在1.18.2刚出来的时候,今年6月份左右)出现过下载混淆映射表从官网下载导致下载时间过长的问题,所以需要考虑预处理的问题, 在最新的构建测试中, 好像这种问题没有再发生了

我的推测是,在旧版中, 混淆映射表的来源是逆向工作,而在新版本中,官方将混淆映射表贴出来了

你这么说我倒是有点印象,SpigotMC 好像确实改用 Mojang 表了

SNWCreations commented 1 year ago

但要下载 Mojang 映射表的话,也可以到 BMCLAPI 请求对应版本的 JSON,解析获得其服务器的映射表 我已经有一段时间没再关注 SpigotMC 高版本的更新(我到现在还在 1.16.5 上开发插件),对此不清楚。

MemoryShadow commented 1 year ago

但要下载 Mojang 映射表的话,也可以到 BMCLAPI 请求对应版本的 JSON,解析获得其服务器的映射表 我已经有一段时间没再关注 SpigotMC 高版本的更新(我到现在还在 1.16.5 上开发插件),对此不清楚。

对的,目前就是希望使用BMCL项目加速,使用多源下载来加快部署进度,所以才希望提前获取映射表来加速下载,问题就是我对SpigotMC项目的架构了解的没有那么深入,希望您能够指明一下具体在哪个文件里或者搜索路径在哪儿。拜托您啦XD

SNWCreations commented 1 year ago

但要下载 Mojang 映射表的话,也可以到 BMCLAPI 请求对应版本的 JSON,解析获得其服务器的映射表 我已经有一段时间没再关注 SpigotMC 高版本的更新(我到现在还在 1.16.5 上开发插件),对此不清楚。

对的,目前就是希望使用BMCL项目加速,使用多源下载来加快部署进度,所以才希望提前获取映射表来加速下载,问题就是我对SpigotMC项目的架构了解的没有那么深入,希望您能够指明一下具体在哪个文件里或者搜索路径在哪儿。拜托您啦XD

Minecraft 的 version.json 格式可以在以下链接看见: https://wiki.biligame.com/mc/Client.json version.json 可以通过如下格式获得 https://bmclapi2.bangbang93.com/version/<MC版本>/json 依据 Minecraft Wiki,你可以在 JSON 的 downloads 键的 server_mappings 值中找到服务端混淆映射表的下载链接

MemoryShadow commented 1 year ago

但要下载 Mojang 映射表的话,也可以到 BMCLAPI 请求对应版本的 JSON,解析获得其服务器的映射表 我已经有一段时间没再关注 SpigotMC 高版本的更新(我到现在还在 1.16.5 上开发插件),对此不清楚。

对的,目前就是希望使用BMCL项目加速,使用多源下载来加快部署进度,所以才希望提前获取映射表来加速下载,问题就是我对SpigotMC项目的架构了解的没有那么深入,希望您能够指明一下具体在哪个文件里或者搜索路径在哪儿。拜托您啦XD

Minecraft 的 version.json 格式可以在以下链接看见: https://wiki.biligame.com/mc/Client.json version.json 可以通过如下格式获得 https://bmclapi2.bangbang93.com/version/<MC版本>/json 依据 Minecraft Wiki,你可以在 JSON 的 downloads 键的 server_mappings 值中找到服务端混淆映射表的下载链接

好的好的,非常感谢您的帮助,我去解析看看

MemoryShadow commented 1 year ago

TODO: 预先加载混淆映射表到位置: work/minecraft_server.\<version>.txt