资源重载保护

资源重载保护

通过允许阻止、确认或延迟到重启后再进行客户端资源重载,防止意外、不必要且不安全的客户端资源重载。

资源重载保护 (Resource Reload Guard)

资源重载保护是一个适用于 Minecraft Java Edition 1.20.1 的客户端模组。

在大型整合包中,重载客户端资源可能需要数分钟,并可能导致长时间的内存垃圾回收暂停、卡顿甚至崩溃。此模组并不会加速资源加载。相反,它守护已知的用户操作,避免昂贵的重载意外或不必要地启动。

支持的环境

  • Minecraft 1.20.1
  • Forge 47.x
  • Fabric Loader(需要 Fabric API)

Forge 和 Fabric 使用不同的 JAR 文件。 将对应加载器的 JAR 安装到客户端的 mods 目录中。 Fabric 版本还需要 Fabric API。

功能特性

资源包

  • 检测已启用、已禁用以及已重排顺序的资源包。
  • 当资源包的 ID 和顺序未变化时,跳过应用选择的操作。
  • 允许您返回编辑状态,而不会丢失当前选择。
  • 可以放弃当前选择,并恢复到打开界面之前的状态。
  • 可以立即应用,或保存选择以供下次启动时使用。

语言

  • 当所选语言未变化时,跳过重载。
  • 在应用前显示当前语言和所选语言。
  • 可以立即应用,或保存语言以供下次启动时使用。

Mipmap 级别

  • 在离开视频设置前检测 mipmap 级别的变化。
  • 可以返回视频设置、仅放弃 mipmap 更改、将其推迟到下次启动,或立即应用。
  • 仅在选择了 立即应用 时才重载客户端纹理。

安全措施

  • 危险操作永远不会获得初始焦点。
  • Esc 键始终返回安全界面。
  • 危险按钮会保持禁用状态,直到配置的客户端刻数和等效的单调时间都已过去。
  • 初始加载、模组发起的重载、服务器资源包、恢复性重载以及来源不明的重载不会被全局取消。

F3+T

  • 在原版重载开始前阻止它。
  • 仅在明确确认后才运行它。
  • 防止按键重复导致的重复提示和重载。
  • 在重载进行中时,拒绝额外的用户请求。

配置

首次启动时会生成一个带注释的 TOML 文件:

config/resource_reload_guard.toml
键 默认值 描述
debugKeyPolicy CONFIRM F3+T 的策略
resourcePackPolicy CONFIRM 资源包更改的策略
languagePolicy CONFIRM 语言更改的策略
mipmapPolicy CONFIRM mipmap 级别更改的策略
skipUnchangedResourcePackApply true 跳过未更改的资源包选择
allowDeferredResourcePackApply true 允许推迟资源包更改
allowDeferredLanguageApply true 允许推迟语言更改
allowDeferredMipmapApply true 允许推迟 mipmap 更改
blockUserRequestsWhileReloading true 重载期间拒绝额外的受守护请求
dangerousButtonDelayTicks 20 危险按钮变为可操作前的延迟(单位:刻)
showLoadedModCount true 显示已加载模组数量作为参考信息
largeEnvironmentWarningThreshold 200 触发非阻塞性警告的模组数量阈值

可用的策略值为 ALLOW、CONFIRM、BLOCK 和 RESTART_ONLY。 已加载的模组数量仅用于显示信息性警告;它永远不会自动阻止重载或估算其持续时间。

已知限制

  • 此模组不预测重载持续时间,也不优化重载管道。
  • 大幅改写了资源包、语言或视频设置界面——或注入到相同原版方法中的模组——可能会与其 Mixin 冲突。
  • 服务器资源包和无法识别来源的重载不在该守护的范围之内。
  • 此模组不会自动重启 Minecraft 进程。