预制件中心

预制件中心

让玩家通过关联的Discord机器人将本地Hytale预设上传到服务器,每个提交都会经过验证并排队等待工作人员审核,之后才能成为可放置的服务器预设。

预制件

PrefabsUploader

prefab validate 让玩家安全地将自己的建筑上传到你的 Hytale 服务器。 PrefabsUploader 允许玩家直接从 Discord 上传预制件(.prefab.json)。你的工作人员在游戏内审查每个预制件(带有实时 3D 预览),批准后,它就会成为一个可放置的服务器预制件。无需 FTP,无需文件访问权限,无需信任。


为什么?

玩家在 Asset Editor 中建造了惊人的建筑——但要将这些建筑放到一个正在运行的服务器上,通常意味着要给予文件访问权限或手动操作。PrefabsUploader 将其转变为一个简单且经过审核的流程:

玩家导出预制件 → 丢到 Discord 中 → 工作人员在游戏内批准 → 它就上线了。

每次上传都会经过验证并加入审核队列,因此在有人工确认“是”之前,不会有任何内容加载到你的世界中。


工作原理

   玩家 (Hytale)            DISCORD (机器人)              工作人员 (Hytale)
 ─────────────────       ────────────────           ─────────────────
  /pu link       ─────►  链接账户
  /pu import     ─────►  打开一个私人讨论串
        在讨论串中放入 .prefab.json ─────►  加入审核队列
                                                  /pu validate  ◄─────
                                                  预览 + 批准/拒绝
        ◄───────── 结果 (私信) ──────────────────────── 批准 → 上线
  1. 一次性配对。 服务器管理员安装 Discord 机器人,并使用一次性代码配对服务器。
  2. 玩家链接。 每位玩家将自己的 Hytale 账户与 Discord 账户关联(一次性操作)。
  3. 上传。 /pu import 会打开一个私人 Discord 讨论串(如果讨论串不可用,则打开私信),玩家在其中放入他们的 .prefab.json 文件。
  4. 审查。 工作人员在游戏内运行 /pu validate 来浏览队列,以 3D 形式预览每个预制件,然后批准拒绝
  5. 上线。 已批准的预制件被写入服务器的预制件存储区,随时可以放置。

功能特点

  • 🧩 玩家驱动上传 — 建筑从 Discord 传入,无需文件访问权限。
  • 🔎 游戏内审查队列,带有实时 3D 预览和一键批准/拒绝功能。
  • 🔗 账户关联 — 将 Hytale 玩家与 Discord 用户关联,以便追踪上传来源。
  • 🧵 私人上传讨论串 — 每位玩家拥有自己的讨论串;如果机器人无法打开讨论串,则回退到私信。
  • 🛡️ 验证与白名单 — 在保存前进行大小限制、方块数量限制和实体拒绝检查。
  • 🌍 双语支持 — 葡萄牙语 (pt-BR) 和英语,自动选择(机器人消息使用 Discord 服务器语言,游戏内消息使用服务器语言)。
  • ⚙️ 简单设置 — 三个斜杠命令即可完成。
  • 🔔 结果通知 — 当他们的预制件被批准或拒绝时,上传者会在 Discord 上收到通知。

设置(服务器管理员)

1. 将 Discord 机器人 安装到你的 Discord 服务器中(邀请链接在游戏内/由中心提供)。

2. 配对服务器。 在 Hytale 中:

/pu config setup

你会得到一个配对码。在 Discord 上运行:

/setup server <code>

3. 选择上传频道。 在 Discord 上,在你想要的频道中(或指定一个):

/setup uploads            # 使用当前频道
/setup uploads #prefabs    # 或选择一个频道

4. 设置你的 Discord 邀请(必需) 以便玩家可以加入上传:

/setup invite https://discord.gg/your-server

如果没有设置,尚未加入你 Discord 的玩家会在游戏内收到“邀请尚未配置”的消息。

就这样——一旦配对成功,游戏内的“请配置”广播就会停止。


配置 (config.properties)

插件从以下位置读取设置:

mods/ProjectAtlasia_PrefabsUploader/config.properties

它在首次运行时自动创建,并带有完整注释。更改值需要重启服务器(Hytale 不支持热重载)。

作用
hub.address 插件连接的中心地址。预设为官方中心——除非你自行托管,否则请保持不动。
hub.tls 生产环境设为 true(TLS),本地纯文本中心设为 false
hub.insecure true 表示通过 TLS 连接且验证证书——仅限开发环境,请保持 false
pair.message false 关闭游戏内“请配对”广播(命令仍然有效)。
discord.invite.url 在游戏内显示你的 Discord 邀请链接,以便玩家加入。玩家加入时必须设置——可在此处设置或使用 /setup invite(后者优先)。在设置之前,尚未加入你 Discord 的玩家会被告知“邀请尚未配置”。
server.id 此服务器的稳定标识,生成一次——不要更改它。
auth.token 在配对期间自动发放。切勿分享——它用于你的服务器与中心进行身份验证。

🔐 server.idauth.token 为你自动管理。请像对待密码一样对待 auth.token


面向玩家

关联你的账户(一次性操作):

/pu link

然后在 Discord 上:

/link <code>

完成后你会在游戏内收到确认。

上传预制件:

/pu import

机器人会打开一个私人讨论串(或私信你)——只需将你导出的 .prefab.json 文件拖放到那里。当工作人员审查时,你会收到通知。


面向工作人员

在游戏内打开审查界面:

/pu validate
  • 浏览待处理队列,搜索并选择一张卡片以以 3D 形式预览建筑
  • 批准 → 验证并保存为服务器预制件。
  • 拒绝 → 从队列中移除(上传者会收到通知)。

命令

命令 位置 作用
/pu config setup 游戏内 管理员 生成配对码
/pu config pair-message <on/off> 游戏内 管理员 切换“请配对”广播
/pu link 游戏内 玩家 关联你的 Discord 账户
/pu import 游戏内 玩家 打开你的上传讨论串/私信
/pu validate 游戏内 工作人员 打开审查队列 + 预览
/setup server <code> Discord 管理员 配对服务器
/setup uploads [频道] Discord 管理员 设置上传频道
/setup invite <url> Discord 管理员 设置你的 Discord 邀请
/link <code> Discord 玩家 完成账户关联

别名:/prefabs-uploader/pu 是同一个命令。


权限

每个游戏内命令都由一个权限节点控制,因此你可以决定谁可以上传、关联和审查:

权限节点 授予
projectatlasia.prefabsuploader.command.import /pu import — 打开你的上传讨论串/私信(玩家)
projectatlasia.prefabsuploader.command.link /pu link — 关联你的 Discord 账户(玩家)
projectatlasia.prefabsuploader.command.validate /pu validate — 打开审查队列(工作人员)
projectatlasia.prefabsuploader.command.prefabsuploader.config.setup /pu config setup — 生成配对码(管理员)
projectatlasia.prefabsuploader.command.prefabsuploader.config.pair-message /pu config pair-message — 切换配对广播(管理员)

典型设置:将 import + link 授予你的默认玩家组,其余授予工作人员/管理员。授予 projectatlasia.prefabsuploader.command.* 来一次性给予某个角色所有权限。

(Discord 端的 /setup * 命令由 Discord 自身的管理服务器/管理员权限控制,而非这些节点。)


文件存储位置(以及不存储的位置)

PrefabsUploader 在批准之前不存储任何内容

  • 🤖 Discord 机器人不存储任何文件。 它只保存一个指向你 Discord 消息的小指针。
  • 🗑️ 从 Discord 中删除它,提交内容就会消失。 如果玩家在工作人员审查之前删除了他们的 .prefab.json 消息,则无法再获取该提交内容,它会被丢弃——重新上传即可重试。
  • 🔁 中心只是一个代理。 其上不持久保存任何内容;它从不保留你的预制件副本。
  • 💾 仅当管理员批准时才会写入你的服务器——这是预制件成为你机器上实际文件的唯一时刻。
  • 📦 最大文件大小:5 MB。 这个限制可以提高——请访问我们的 Discord 支持频道 以请求更高的限制。

安全性

旨在防止公开的上传路径成为攻击面:

  • 不会自动放置任何内容。 每个预制件都等待人工批准。
  • 批准时进行验证 — 大小上限、方块数量上限,并且实体被拒绝(预制件仅包含方块)。
  • 各处都有速率限制(每个玩家、每个频道、每个 IP),以防止垃圾信息和暴力攻击。
  • 经过身份验证 — 服务器与 Hytale 进行身份验证;集成使用每服务器令牌。
  • 无文件访问权限 — 玩家永远无法触及服务器的文件系统;上传通过 Discord 的 CDN 传输,仅在审查时下载。

如果机器人无法联系到玩家(权限不足/严格的隐私设置),它会在游戏内告诉他们如何解决,而不是静默失败。


要求

  • 一个 Hytale 服务器。
  • 一个你可以添加机器人的 Discord 服务器(管理服务器/管理员权限)。
  • 玩家需要一个 Discord 账户并成为你 Discord 的成员。

路线图

计划中的功能:

  • 🛡️ 领地/反突袭集成 — 挂钩到领地和反突袭插件(目标是广泛、与插件无关的支持),这样预制件只能放置在玩家被允许建造的区域。
  • 📤 游戏内导出(反向路径) — 在游戏内选择一个坐标范围并导出为预制件,而不仅仅是从 Discord 导入。

语言

🇧🇷 葡萄牙语 (pt-BR) · 🇺🇸 英语 — 自动选择。机器人消息遵循你的 Discord 服务器语言;游戏内消息遵循你的 Hytale 服务器语言。


开源插件 (GPL-3.0)。由 ProjectAtlasia 构建。 alt text