Skip to content

config.yml

此页面描述了 UPU 的插件配置文件中所有选项的解释。在修改任何属性后,您都需要重新启动服务端来让修改生效。虽然 UPU 支持某些服务端的重载(reload)功能,但您不应当依赖此功能。

verbose

这是一个默认值为 falseboolean 类型属性。该属性定义了是否允许 UPU 输出详细的用于调试的操作日志。大多数用户都没有必要将此属性设为 true,因为输出的大多数日志与用户无关,并且会让控制台看起来很乱。

如果您遇到了 UPU 相关的问题,或者出现了报错,则可能需要将其设为 true,以便在报告问题时让 UPU 的开发者能更快弄清楚发生了什么问题。

总而言之,除非您有理由启用此功能,否则应将其保持为禁用。

language

这是一个默认值为 systemString 类型属性。顾名思义,这个属性定义了 UPU 将以何种语言提供可见的文本。默认值 system 代表 UPU 会尝试使用您的操作系统语言,并且优先使用该语言中已翻译的字符串。如果处于某种原因,您不想使用操作系统的本地语言,则可以使用此属性选择另一门语言。值得注意的是,UPU 接受包含地区的区域代码,例如 "en-GB",也接受通用的区域代码,例如 "en"。您还可以使用 JVM 参数 upu.locale 指定优先语言。请注意,如果您选择了非本机的区域,则可能需要额外的字体/语言包才能显示该语言中的字符。 通常,如果您更喜欢以英语而不是您的母语使用 UPU,则需要更改这个属性。

platform.name

这是一个默认值为 nullString 类型属性。该属性定义了当前运行的服务端的名称,这个名称在许多地方都有使用,最多的使用在更新检查中,将会传递给远程服务器查找适用于当前平台的插件文件。如果此属性为 null ,UPU 会尝试从服务端处获取名称。

通常情况下 UPU 能够正确识别您使用的服务端的名称,只有在 UPU 无法正确识别您使用的服务端时,您才需要修改此属性帮助 UPU。因此,除非您有充分的理由编辑此属性,否则应将其保留为默认值。

platform.game-versions

这是一个默认值为 nullList<String> 类型属性。该属性定义了当前运行的服务端支持的 Minecraft 版本,部分插件对支持的 Minecraft 版本有要求,因此 UPU 会将其传递给远程服务器查找适用于当前 Minecraft 版本的插件文件。

通常情况下,您不需要关注您的服务端支持哪些 Minecraft 版本(尤其是在 Velocity 这类代理服务端上),只有在少数特定插件需要指定 Minecraft 版本时,您才需要关心此选项。

如果此属性为 null,UPU 会尝试从服务端处获取支持的 Minecraft 版本。如果此属性为空数组,代表您指定当前服务端不需要关心 Minecraft 版本,UPU 不会向远程服务器发送有关 Minecraft 版本的信息。除非您有理由编辑此属性,否则应将其保留为默认值。

platform.loaders

这是一个默认值为 nullList<String> 类型属性。该属性定义了当前运行的服务端支持的加载器。加载器是一个特殊概念,某些服务端基于上游服务端进行分支,并增加了一些上游服务端没有的独特功能,而某些插件需要使用这些独特功能,就诞生了加载器这个概念,UPU 会将其传递给远程服务器查找适用于当前加载器的插件文件。

这里举一个简单的例子,Paper 服务端是 Bukkit 服务端的下游(至少曾经是),而 squaremap 使用了 Paper 服务端的一些特性,导致其无法兼容 Bukkit 服务端,这样,UPU 就需要向远程服务器传递 Paper 作为支持的加载器来查找更新,否则远程服务器发现我们使用的服务端不兼容 Paper,就不会告诉我们 squaremap 插件的更新。

如果此属性为 null 或空数组,UPU 会尝试从服务端处获取支持的加载器类型。除非您有理由编辑此属性,否则应将其保留为默认值。

updater.strategy

这是一个默认值为 nativeString 类型属性。该属性定义了 UPU 要如何安装新版本的插件到您的服务端,我们称为“升级策略”。UPU 内置了许多升级策略,帮助您安全的升级服务端上的旧插件,并以新插件文件替换。

默认值 native 是一个通用的升级策略,它会尝试禁用运行中的插件,然后删除旧的插件文件,再将新的插件文件移动到插件文件夹中,之后提醒您重新启动服务器以使用新插件。UPU 在 Bukkit 平台内置了名为 bukkit 的升级策略,在 Velocity 平台内置了名为 velocity 的升级策略,它们只适用于对应的平台,但它们也为对应平台提供了高度的适配性,能够更好的工作。

如果您希望使用别的升级策略,或者出于某些原因 native 升级策略无法正常工作,则您可以配置此属性为其他策略的标识符。此外,如果有其他开发者提供了别的升级策略,也可以使用它们。

updater.allow-upgrade-now

这是一个默认值为 trueboolean 类型属性。该属性定义了如果当前使用的升级策略不支持安全升级,是否允许在 /upu upgrade 中添加参数 --now 来立即执行升级操作。如上文所述,native 升级策略所有平台通用,但正因为如此,native 策略在运行中卸载插件并删除文件的行为可能会导致问题,因此 UPU 会将升级操作延迟到服务器关闭时进行。换句话说,如果使用 /upu upgrade --now 命令,UPU 就会立即执行卸载插件、删除文件等一系列升级操作。您可能不希望让服务器处于不稳定状态,也不想某天突然鬼使神差的使用 --now 参数,那么您就可以将这个属性设为 false,这样 UPU 就会忽略 --now 参数。

请注意,此属性影响那些声明支持安全升级的升级策略。UPU 内置的另外两个平台专用的升级策略 bukkitvelocity 就支持安全升级,在这种情况下,升级操作始终立刻进行,而不会延迟到服务端关闭,您也不必修改此属性。

updater.filename

这是一个默认值为 ${originName}String 类型属性。该属性定义了下载文件时的文件名命名规则。如果此属性出现了默认值 ${originName},那么 UPU 在下载文件时会始终使用远程服务器提供的文件名。除此之外,UPU 会按照此处的命名规则来命名下载的文件,其中 ${pluginId} 将会替换为此次下载操作涉及的插件名称,${channel} 会被替换为更新渠道名称,{$timestamp} 会被替换为下载操作执行时的时间戳。除非您有理由编辑此属性,否则应将其保留为默认值。

updater.proxy.uri

这是一个默认值为 nullString 类型属性。该属性定义了一个 Web 代理地址,内部 HTTP 相关通讯都会经过此代理,特别是其中的 github.com 服务。为 UPU 请求设置代理对于绕过各种形式的防火墙非常有用。

此属性定义为一个 URI 字符串:

URI 字符串由协议(支持 http/https/socks4/socks4a/socks5)、主机和可省略的端口组成。 一个完整 URI 字符串的示例是 "http://contoso.com:8080"

如果您的代理服务器需要身份验证,您还需要设置 username 和/或 password 属性。 如果不需要验证,就只需要设置此属性。

除非您有理由编辑此属性,否则应将其保留为默认值。

updater.proxy.username

这是一个默认值为 nullString 类型属性。该属性定义了提供代理功能的服务器所支持的 Basic、Digest、NTLM 或 Kerberos 身份验证方式使用的用户名。如果您的代理不需要用户提供凭据,就不需要在这里输入任何内容。该属性只有在您设置了 uri 属性的情况下才会生效。

除非您有理由编辑此属性,否则应将其保留为默认值。

updater.proxy.password

这是一个默认值为 nullString 类型属性。该属性定义了提供代理功能的服务器所支持的 Basic、Digest、NTLM 或 Kerberos 身份验证方式使用的密码。如果您的代理不需要用户提供凭据,就不需要在这里输入任何内容。该属性只有在您设置了 uri 属性的情况下才会生效。

除非您有理由编辑此属性,否则应将其保留为默认值。

updater.repository.check-mode

这是一个默认值为 1byte 类型属性。此属性定义下文 check-list 属性所使用的插件仓库更新配置检查模式。通过指定此属性,您可以轻松启用/禁用所有插件从远程仓库获取更新配置的能力,但您明确指定的插件除外。

  • 值为 0,表示Whitelist(白名单),禁用所有插件从远程仓库获取更新配置,在 check-list 属性中定义的除外。
  • 值为 1,表示Blacklist(黑名单),启用所有插件从远程仓库获取更新配置,在 check-list 属性中定义的除外。

UPU 开发者提醒您,为了您的安全,您只应该为信任来源启用自动更新配置检查。虽然 UPU 默认只会从我们的仓库中检查更新配置,我们对提供的更新配置的安全性负责,但如果您定义了其他获取配置的仓库地址,则您有义务保证您提供的仓库地址没有安全问题

默认情况下,/upu repo update 命令将触发插件配置更新检查。如果您只想要手动修改插件的更新配置,而不希望从其他来源获取更新配置,则可以使用将此属性设为 0,并清空 check-list 属性列表。除此之外,除非您有理由编辑此属性,否则应将其保留为默认值。

updater.repository.check-list

这是一个默认值为空数组的 List<String> 类型属性。此属性定义一个插件组件名称列表,以作为插件自动检查更新配置的黑名单或白名单,具体模式由上文的 check-mode 属性指定。

除非您有理由编辑此属性,否则应将其保留为默认值。

updater.plugin-list-mode

这是一个默认值为 1byte 类型属性。与上文的 updater.repository.check-mode 不同,此属性定义下文 plugin-list 属性所使用的插件更新模式。通过指定此属性,您可以轻松启用/禁用所有插件自动更新的能力,但您明确指定的插件除外。

  • 值为 0,表示Whitelist(白名单),禁用所有插件的自动更新,在 plugin-list 属性中定义的除外。
  • 值为 1,表示Blacklist(黑名单),启用所有插件的自动更新,在 plugin-list 属性中定义的除外。

UPU 开发者提醒您,为了您的安全,您只应该为信任来源启用自动更新。请注意,无论此处如何设置,恶意插件都可以更新自身或远程执行命令,因此,该设置只适用于 UPU 自带的插件更新功能,并且您仍然应该确保在使用插件之前验证每个插件的安全性。

默认情况下,/upu update 命令将触发插件更新检查,并且通常不会执行代码,在 /upu upgrade 命令后才会实际执行更新操作。但如果有插件向 UPU 注册了自定义更新实现,那么 /upu update 也会执行代码。因此,始终从官方来源下载所有插件,是保证您的服务端数据和操作系统安全的最佳选择。如上文所述,我们对通过 UPU 官方仓库提供的插件更新配置的安全负责,如果您选择从其他来源获取插件,则您有义务保证您提供的来源没有安全问题

除非您有理由编辑此属性,否则应将其保留为默认值。

updater.plugin-list

这是一个默认值为空数组的 List<String> 类型属性。此属性定义一个插件组件名称列表,以作为插件自动检查更新配置的黑名单或白名单,具体模式由上文的 plugin-list-mode 属性指定。

除非您有理由编辑此属性,否则应将其保留为默认值。