config.yml
此页面描述了 UPU 的插件配置文件中所有选项的解释。在修改任何属性后,您都需要重新启动服务端来让修改生效。虽然 UPU 支持某些服务端的重载(reload)功能,但您不应当依赖此功能。
verbose
这是一个默认值为 false 的 boolean 类型属性。该属性定义了是否允许 UPU 输出详细的用于调试的操作日志。大多数用户都没有必要将此属性设为 true,因为输出的大多数日志与用户无关,并且会让控制台看起来很乱。
如果您遇到了 UPU 相关的问题,或者出现了报错,则可能需要将其设为 true,以便在报告问题时让 UPU 的开发者能更快弄清楚发生了什么问题。
总而言之,除非您有理由启用此功能,否则应将其保持为禁用。
language
这是一个默认值为 system 的 String 类型属性。顾名思义,这个属性定义了 UPU 将以何种语言提供可见的文本。默认值 system 代表 UPU 会尝试使用您的操作系统语言,并且优先使用该语言中已翻译的字符串。如果处于某种原因,您不想使用操作系统的本地语言,则可以使用此属性选择另一门语言。值得注意的是,UPU 接受包含地区的区域代码,例如 "en-GB",也接受通用的区域代码,例如 "en"。您还可以使用 JVM 参数 upu.locale 指定优先语言。请注意,如果您选择了非本机的区域,则可能需要额外的字体/语言包才能显示该语言中的字符。 通常,如果您更喜欢以英语而不是您的母语使用 UPU,则需要更改这个属性。
platform.name
这是一个默认值为 null 的 String 类型属性。该属性定义了当前运行的服务端的名称,这个名称在许多地方都有使用,最多的使用在更新检查中,将会传递给远程服务器查找适用于当前平台的插件文件。如果此属性为 null ,UPU 会尝试从服务端处获取名称。
通常情况下 UPU 能够正确识别您使用的服务端的名称,只有在 UPU 无法正确识别您使用的服务端时,您才需要修改此属性帮助 UPU。因此,除非您有充分的理由编辑此属性,否则应将其保留为默认值。
platform.game-versions
这是一个默认值为 null 的 List<String> 类型属性。该属性定义了当前运行的服务端支持的 Minecraft 版本,部分插件对支持的 Minecraft 版本有要求,因此 UPU 会将其传递给远程服务器查找适用于当前 Minecraft 版本的插件文件。
通常情况下,您不需要关注您的服务端支持哪些 Minecraft 版本(尤其是在 Velocity 这类代理服务端上),只有在少数特定插件需要指定 Minecraft 版本时,您才需要关心此选项。
如果此属性为 null,UPU 会尝试从服务端处获取支持的 Minecraft 版本。如果此属性为空数组,代表您指定当前服务端不需要关心 Minecraft 版本,UPU 不会向远程服务器发送有关 Minecraft 版本的信息。除非您有理由编辑此属性,否则应将其保留为默认值。
platform.loaders
这是一个默认值为 null 的 List<String> 类型属性。该属性定义了当前运行的服务端支持的加载器。加载器是一个特殊概念,某些服务端基于上游服务端进行分支,并增加了一些上游服务端没有的独特功能,而某些插件需要使用这些独特功能,就诞生了加载器这个概念,UPU 会将其传递给远程服务器查找适用于当前加载器的插件文件。
这里举一个简单的例子,Paper 服务端是 Bukkit 服务端的下游(至少曾经是),而 squaremap 使用了 Paper 服务端的一些特性,导致其无法兼容 Bukkit 服务端,这样,UPU 就需要向远程服务器传递 Paper 作为支持的加载器来查找更新,否则远程服务器发现我们使用的服务端不兼容 Paper,就不会告诉我们 squaremap 插件的更新。
如果此属性为 null 或空数组,UPU 会尝试从服务端处获取支持的加载器类型。除非您有理由编辑此属性,否则应将其保留为默认值。
updater.strategy
这是一个默认值为 native 的 String 类型属性。该属性定义了 UPU 要如何安装新版本的插件到您的服务端,我们称为“升级策略”。UPU 内置了许多升级策略,帮助您安全的升级服务端上的旧插件,并以新插件文件替换。
默认值 native 是一个通用的升级策略,它会尝试禁用运行中的插件,然后删除旧的插件文件,再将新的插件文件移动到插件文件夹中,之后提醒您重新启动服务器以使用新插件。UPU 在 Bukkit 平台内置了名为 bukkit 的升级策略,在 Velocity 平台内置了名为 velocity 的升级策略,它们只适用于对应的平台,但它们也为对应平台提供了高度的适配性,能够更好的工作。
如果您希望使用别的升级策略,或者出于某些原因 native 升级策略无法正常工作,则您可以配置此属性为其他策略的标识符。此外,如果有其他开发者提供了别的升级策略,也可以使用它们。
updater.allow-upgrade-now
这是一个默认值为 true 的 boolean 类型属性。该属性定义了如果当前使用的升级策略不支持安全升级,是否允许在 /upu upgrade 中添加参数 --now 来立即执行升级操作。如上文所述,native 升级策略所有平台通用,但正因为如此,native 策略在运行中卸载插件并删除文件的行为可能会导致问题,因此 UPU 会将升级操作延迟到服务器关闭时进行。换句话说,如果使用 /upu upgrade --now 命令,UPU 就会立即执行卸载插件、删除文件等一系列升级操作。您可能不希望让服务器处于不稳定状态,也不想某天突然鬼使神差的使用 --now 参数,那么您就可以将这个属性设为 false,这样 UPU 就会忽略 --now 参数。
请注意,此属性不影响那些声明支持安全升级的升级策略。UPU 内置的另外两个平台专用的升级策略 bukkit 和 velocity 就支持安全升级,在这种情况下,升级操作始终立刻进行,而不会延迟到服务端关闭,您也不必修改此属性。
updater.filename
这是一个默认值为 ${originName} 的 String 类型属性。该属性定义了下载文件时的文件名命名规则。如果此属性出现了默认值 ${originName},那么 UPU 在下载文件时会始终使用远程服务器提供的文件名。除此之外,UPU 会按照此处的命名规则来命名下载的文件,其中 ${pluginId} 将会替换为此次下载操作涉及的插件名称,${channel} 会被替换为更新渠道名称,{$timestamp} 会被替换为下载操作执行时的时间戳。除非您有理由编辑此属性,否则应将其保留为默认值。
updater.proxy.uri
这是一个默认值为 null 的 String 类型属性。该属性定义了一个 Web 代理地址,内部 HTTP 相关通讯都会经过此代理,特别是其中的 github.com 服务。为 UPU 请求设置代理对于绕过各种形式的防火墙非常有用。
此属性定义为一个 URI 字符串:
URI 字符串由协议(支持 http/https/socks4/socks4a/socks5)、主机和可省略的端口组成。 一个完整 URI 字符串的示例是
"http://contoso.com:8080"。
如果您的代理服务器需要身份验证,您还需要设置 username 和/或 password 属性。 如果不需要验证,就只需要设置此属性。
除非您有理由编辑此属性,否则应将其保留为默认值。
updater.proxy.username
这是一个默认值为 null 的 String 类型属性。该属性定义了提供代理功能的服务器所支持的 Basic、Digest、NTLM 或 Kerberos 身份验证方式使用的用户名。如果您的代理不需要用户提供凭据,就不需要在这里输入任何内容。该属性只有在您设置了 uri 属性的情况下才会生效。
除非您有理由编辑此属性,否则应将其保留为默认值。
updater.proxy.password
这是一个默认值为 null 的 String 类型属性。该属性定义了提供代理功能的服务器所支持的 Basic、Digest、NTLM 或 Kerberos 身份验证方式使用的密码。如果您的代理不需要用户提供凭据,就不需要在这里输入任何内容。该属性只有在您设置了 uri 属性的情况下才会生效。
除非您有理由编辑此属性,否则应将其保留为默认值。
updater.repository.check-mode
这是一个默认值为 1 的 byte 类型属性。此属性定义下文 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
这是一个默认值为 1 的 byte 类型属性。与上文的 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 属性指定。
除非您有理由编辑此属性,否则应将其保留为默认值。