ResourcePackNoUpload

请发送你的资源包,无需上传。

资源图片
[![CI](https://github.com/Robsutar/resource-pack-no-upload/actions/workflows/ci.yml/badge.svg)](https://github.com/Robsutar/resource-pack-no-upload/actions/workflows/ci.yml) # ResourcePackNoUpload 插件 一个允许服务器管理员高效管理和分发资源包的 Minecraft 服务器工具,无需外部托管。 ## 快速开始 如果配置文件不存在,RNU 将生成配置模板,但没有额外的更改则无法工作。 有两件事很重要:定义资源包提供商的端口,以及加载资源包的加载器。 ### 定义端口 服务器配置: - 对于 RNU 插件:`plugins/ResourcePackNoUpload/server.yml` - 对于 RNU 模组:`config/resourcepacknoupload/server.yml` ```yaml # 此服务器端口需要对玩家开放 port: 25008 # 选择一个开放的服务器端口供玩家使用。 # 提供将发送给玩家的根地址,通常 # `http://` + 服务器的公共 IP + `:` + 上定义的端口。 # 例如: # publicLinkRoot: "http://192.0.2.1:25008" # # 在大多数情况下,此字段不需要设置,但对于基于 Pterodactyl 的 # 服务器,此字段是强制性的。 publicLinkRoot: # 用于向玩家发送资源包的方法。 sender: type: # 在此处设置您的发送器类型。 # 其他发送器字段,每种类型都有其自己的字段。 # 详细信息请参见本文档末尾。 ``` ### 创建资源包加载器 插件配置(使用 `/rnu reload` 重载): - 对于 RNU 插件:`plugins/ResourcePackNoUpload/config.yml` - 对于 RNU 模组:`config/resourcepacknoupload/config.yml` ```yaml # 资源包加载器,每次加载 RNU 的资源包时都会调用。 loader: type: # 在此处设置您的加载器类型。 # 其他加载器字段,每种类型都有其自己的字段。 ``` **可用类型:**
ReadFolder 从文件夹简单加载 使用任何提供的路径的现有文件夹。 ```yaml type: ReadFolder # 相对于服务器根文件夹。 # 在 `Cool Folder` (例如) 中应该有资源包文件。 # Cool Folder/pack.mcmeta # Cool Folder/assets/minecraft... folder: "rnu resource pack/Cool Folder/" ```
ReadZip 从压缩的资源包简单加载 使用任何提供的路径的现有 .zip 文件。 ```yaml type: ReadZip # 相对于服务器根文件夹。 # 在 `Cool Resource Pack.zip` (例如) 中应该有资源包文件。 # Cool Resource Pack.zip/pack.mcmeta # Cool Resource Pack.zip/assets/minecraft... zip: "rnu resource pack/Cool Resource Pack.zip" ```
Download 从 Web 下载,包含 http 标头 从链接下载资源包。 首先,这似乎与 RNU 的目的相反,但此加载器还 支持下载请求的 http 标头,从而允许您下载 带有私钥的资源包,这不由 Minecraft 客户端直接支持。 ```yaml type: Download # 可选字段,这将缓存下载,确保只要可以找到临时文件夹中的此缓存文件,就不会再次下载。 cacheName: drive_private_pack # 任意名称,将用于保存文件。 # 下载链接。 url: https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media # 可选字段,这是一个标头列表,其键和值,这里 # 我们调用 Google API,并传递一个所需的令牌来下载文件。 headers: - key: "Authorization" value: "Bearer drive_api3213xih32i9DASKxE83hd9203f1930c0ll-d1v3-t0k3n2389" ```
WithMovedFiles 从另一个加载器修改文件 将从目录移动的加载器提供的资源包文件。 ```yaml type: WithMovedFiles # 要移动的文件夹内容。支持未知路径,因为它们使用 `?`。 # 例如,对于下载(请参阅更详细的加载器信息)加载器的结果将是: # `Robsutar-super-cool-pack78HN3278gj32d/assets/minecraft...` # 我们将使用这个第一个文件夹作为源,忽略它们的名称。 folder: "?/" # 目标文件夹,这里我们使用资源包根目录。 destination: "" # 它可以是任何加载器,对于此加载器示例,我们使用 GitHub 的发布, # 具有细粒度的个人访问令牌,具有读取权限。根据 # 发布,资源包的内容可能位于另一个下载文件中, # 我们使用 WithMovedFiles 来调整此文件。 loader: type: Download url: https://api.github.com/repos/Robsutar/super-cool-pack/zipball headers: - key: "Authorization" value: "Bearer github_pat_uS78ih32i9DASKxE83hd9203f1930c0ll-g1t-t0k3n2389" - key: "Accept" value: "application/vnd.github.v3+json" ```
WithDeletedFiles 从另一个加载器修改文件 如果文件匹配提供的路径,则忽略加载器的文件。 ```yaml type: WithDeletedFiles # 要忽略的路径,支持 glob 文件匹配。在本例中,我们删除所有 # 结尾为 `.md` 的文件。 toDelete: "**.md" # 要忽略目录内的所有文件: # toDelete: "assets/all_inside_me_will_be_deleted/**/*" # 要忽略一个文件: # toDelete: "assets/minecraft/i_will_be_deleted.txt" # 这可以为任何加载器,对于此加载器示例,我们使用简单的 ReadFolder 加载器。 loader: type: ReadFolder folder: "rnu resource pack/Cool Folder/" ```
Merged 从加载器列表加载和合并资源包 组合多个加载器,优先使用列表中的第一个加载器。 ```yaml type: Merged # 可选字段,这是一个路径列表,用于合并 json 文件列表项,特别是 # 有用于自动合并自定义模型数据。 mergedJsonLists: - files: "assets/minecraft/models/item/**.json" # 用于按顺序对 json 条目进行排序的数字字段,在自定义模型数据的情况下, # 条目必须按顺序排列。 orderBy: "predicate.custom_model_data" # 这是一个列表,对于每个条目,您需要指定所需的加载器的值。 # 对于覆盖情况,列表顶部的加载器具有主要优先级,即, # 它们的文件将替换其他文件。 loaders: - type: ReadFolder folder: "rnu resource pack/Cool Folder/" - type: ReadZip zip: "plugins/ModelEngine/resource pack.zip" ```
## 自动重新加载 可以使 RNU (**仅插件**) 在事件调用时自动重新加载。
如何配置它 自动重新加载配置:`plugins/ResourcePackNoUpload/autoReloading.yml` ```yaml invokers: # 事件类,这对于每个案例都非常具体。 # 这里我们将使用 ModelEngine 事件。 - eventClass: "com.ticxo.modelengine.api.events.ModelRegistrationEvent" # 事件发生后延迟的时间,以 ticks 为单位。 delay: 10 # 默认值为 1。 # 在可以再次调用此事件之前冷却的时间。 # 在这里我们添加了冷却时间,因为在 ModelEngine 的情况下, # `ModelRegistrationEvent` 事件会调用几次,这个 # 冷却时间将只执行一次重新加载。 repeatCooldown: 10 # 默认值为 0。 ```
## 不同的发送器 默认情况下,使用 `Delayed` 发送器,这适用于大多数情况。
使用 PaperMC 服务器上的注入器 注意:实验性功能 服务器配置:`plugins/ResourcePackNoUpload/server.yml` ```yaml sender: # 此发送器将覆盖 PaperMC 中的运行时服务器资源包属性, # 将包发送处理留给 PaperMC。 type: PaperPropertyInjector ```
不自动发送 URL,固定链接服务器 服务器配置:`plugins/ResourcePackNoUpload/server.yml` ```yaml sender: # 此发送器将不会自动将资源包 URL 发送到玩家, # 并且将具有固定的链接。 # 如果您想通过 vanilla 行为发送资源包,例如,将资源-pack server.properties 设置为此链接,则很有用。 # type: NoSenderFixedLink # 带有 "pack" 路由的链接将如下所示: "http://192.0.2.1:25008/pack.zip" # 但是,如果 config 中定义了 IP 和端口 `publicLinkRoot` route: "pack" ```
## 其他配置 配置文件中还有其他设置,例如消息和 RNU 行为,请参考自动生成的 config.yml。