动态分辨率

动态分辨率

直接在服务器上托管资源包

工具

DynRes 使用一个集成的 Web 服务器直接从服务器目录提供资源包。

它还会修改服务器,将该资源包指定为默认资源包(覆盖 server.properties 中的 resource-pack 和 resource-pack-sha1)。

你可以在配置中设置 Web 服务器的端口、要托管的文件以及是否提供哈希值。

要在你的服务器上使用此模组,你需要将资源包放置在配置的位置(默认:server/resources.zip),并将配置中的 baseLink 修改为你的公开地址(即玩家将输入的地址)。

此模组仅在服务器端需要。如果将其添加到客户端,它唯一会做的事情就是记录一些关于服务器连接的信息。

配置 最近有一位用户联系我,询问如何配置此模组以在其服务器上正常工作。 以下是我(略作修改的)回复,将其添加在此处,希望能对其他人也有所帮助。


DynRes 的资源包托管功能实际上是由一个通用库提供的,即 libjf-web-v1。 因此,实际托管的配置需要在那里进行。

还需要注意的是,如果你想使用 Minecraft 所使用的同一端口来托管资源包,libjf-web-v1 会将接收逻辑委托给 libjf-mainhttp-v0。 这样带来的不幸后果是,配置分散在两个文件中,而且由于 libjf-web 更加通用,其配置提供了与 DynRes 无关的额外功能。 我会尝试在这里解释一种可行的设置方案,但如果你有任何进一步的问题或需求,请务必提出。

首先,DynRes 中的 resourcesFile 应该是要提供的资源包的相对路径。

hashResources 选项会向客户端提供一个校验和,供其缓存资源包,因此它应该能提升性能。 在旧版本中,这会导致服务器运行时无法更改资源包。 这个问题现在已经修复了。

假设你想在游戏所使用的同一端口上托管资源包(这是最容易设置的方案,所以我推荐这样做。注意,这不应影响性能,因为 HTTP 处理器在检测到非 HTTP 连接后就会被移除), 将 libjf-web 配置中的 port 和 portOverride 选项设置为 -1。

然后,将 serverIp 选项设置为用户用于连接你的 Minecraft 服务器的地址(不一定是 IP)。 注意,你不需要在此地址后附加端口,因为模组会自动附加。

如果附加的端口有误(这不应该发生。注意,25565 等同于在 Minecraft 中不输入端口),你可以使用 portOverride 进行调整。 服务器启动时,日志中应该会包含类似这样的消息:"Initialized DynRes at http://127.0.0.1:25565/resources.zip",其中 127.0.0.1 应替换为你的地址。 尝试在浏览器中访问此地址,并在访问时观察游戏日志。 如果文件被下载了,那么一切都配置正确了。

Suggestions and Support