
图特书籍
小小友好指南手册
查看大图
需要 HyUI!
📘 TuTBooKs(编辑中,待完成)
大家好!我是 TuTBooKs —— 一本小巧友好的指南书,热爱帮助模组开发者解释他们的模组如何运作,这样玩家就不必在黑暗中摸索或碰壁了。✨📖
💡 TuTBooKs 能做什么?
有了 TuTBooKs,你可以:
- 📚 创建教程页面和游戏内文档
- 🧭 添加提示、建议和分步指南
- 🖼️ 嵌入图片、🔗 链接以及其他有用的内容
- 🔄 让你的内容随着模组的更新而保持同步更新
🧸 你的游戏内小助手
把我当作你的可爱游戏内助手吧——随时准备帮助玩家理解你的模组,并充分享受其中的乐趣,不再迷茫或受挫。😊
我在这里是为了让你的模组变得更清晰、更友好、更好玩 💖
TuTBooKs 远程书本(GitHub ZIP)—— 快速教程
本指南将展示如何将你的 TuTBooKs 导出文件托管在 GitHub Releases 上,并在模组启动时自动下载到 Mods/TutBooksConfig/ 目录中。
1) 从编辑器中导出你的书
- 打开 TuTBooKs 编辑器 /tutbooks editor
- 编写你的书
- 点击 导出 ZIP
你应该会得到一个包含以下内容的 ZIP 文件:
Common/
tutbooks/
2) 将 ZIP 上传到 GitHub Releases
- 创建一个代码仓库,例如 HyProTechBook
- 进入 Releases → New release
- 标签名:latest(重要)
- 将你的 ZIP 文件作为发布资产上传
示例文件名:HyProTechBook.zip
你的下载 URL 看起来会像这样:
https://github.com/YoofeCZ/HyProTechBook/releases/latest/download/HyProTechBook.zip
通过命令自动下载 TutBooks(PlayerReady)重要!
✅ 此代码的作用
- 等待玩家完全准备就绪(PlayerReadyEvent)
- 以控制台身份运行 TutBooks 命令,因此没有权限问题
- 下载你的书本 ZIP 文件,然后重新加载 TutBooks
- 每次服务器启动仅运行一次(避免垃圾信息)
- 如果失败,将在下一个玩家加入时重试
✅ 你必须更改的内容
替换以下两个常量:
private static final String TUTBOOKS_DOWNLOAD_URL =
"https://github.com/YoofeCZ/HyProTechBook/releases/latest/download/HyProTechBook.zip";
private static final String TUTBOOKS_MOD_ID = "HyProTech";
更改为你自己的:
- TUTBOOKS_DOWNLOAD_URL → 你自己的 GitHub Release ZIP 链接
- TUTBOOKS_MOD_ID → 你自己的模组 ID(Mods/TutBooksConfig/ 下的文件夹名称)
✅ 完整示例(保留原样,仅更改 URL + modId)
import com.hypixel.hytale.server.core.command.system.CommandManager;
import com.hypixel.hytale.server.core.console.ConsoleSender;
import com.hypixel.hytale.server.core.event.events.player.PlayerReadyEvent;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import java.util.concurrent.atomic.AtomicBoolean;public class MainClass extends JavaPlugin {
private static final String TUTBOOKS_DOWNLOAD_URL =
"https://github.com/YoofeCZ/HyProTechBook/releases/latest/download/HyProTechBook.zip";
private static final String TUTBOOKS_MOD_ID = "HyProTech";
private final AtomicBoolean tutbooksDownloadQueued = new AtomicBoolean(false);
public MainClass(JavaPluginInit init) {
super(init);
}
@Override
protected void setup() {
super.setup();
registerTutbooksDownloadOnPlayerJoin();
// ...rest of setup
}
private void registerTutbooksDownloadOnPlayerJoin() {
getEventRegistry().registerGlobal(
PlayerReadyEvent.class,
event -> {
if (!tutbooksDownloadQueued.compareAndSet(false, true)) {
return;
}
CommandManager commandManager = CommandManager.get();
if (commandManager == null) {
tutbooksDownloadQueued.set(false);
getLogger().atWarning().log("[HyProTech] CommandManager not available.");
return;
}
String downloadCommand = String.format(
"tutbooks download %s %s",
TUTBOOKS_MOD_ID,
TUTBOOKS_DOWNLOAD_URL);
commandManager
.handleCommand(ConsoleSender.INSTANCE, downloadCommand)
.thenCompose(ignored ->
commandManager.handleCommand(ConsoleSender.INSTANCE, "tutbooks reload"))
.exceptionally(ex -> {
tutbooksDownloadQueued.set(false);
getLogger().atWarning().log(
"[HyProTech] TutBooks download/reload failed: %s",
ex.getMessage());
return null;
});
});
}
}
它的作用是:- 将 ZIP 下载到 Mods/TutBooksConfig/HyProTech/
- 解压 index.json 和所有图片
- 保存版本元数据(ETag/Last-Modified)
- 仅在文件发生更改时重新下载
4) 在游戏中重新加载
模组启动后:
/tutbooks reload
/tutbooks <bookId>
✅ 就这些了。
每次你在 GitHub 上更新 ZIP 文件,玩家都将在下次启动时获取新书。
如果你希望在 ZIP 中包含一个“版本文件”,或者添加一个在服务器运行时更新的命令,请告诉我,我会加上。
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。