任务线钩子

任务线钩子

QuestLines插件的附加组件,用于启用高级功能。

早期插件

***

QuestLinesHooks

一个微小而精确的早期插件,用于实现 QuestLines 套件中普通模组无法完成的两件事——让“使用:任务追踪器”正常工作,并防止单个错误的模型比例破坏你的世界区块。

QuestLinesHooks 在你的 Hytale 服务器启动之前加载,因此它可以在一些内部引擎方法被定义时立即对其进行修补。它只做最基本的事情:两个精准且经过充分测试的字节码钩子,别无其他。没有命令,没有配置,没有额外开销。

▎ ⚠️ 这是 QuestLines 套件的配套插件。它本身不做任何事情——请与 QuestLines Core 一同安装。

✨ 功能说明

🎯 让“使用:任务追踪”成为可能

在 Hytale 中,“使用”物品——挥剑、拉弓、施法、喝药水、放置方块——不会触发任何公开事件。QuestLinesHooks 在交互管道中注入一个轻量级转发器,使 QuestLines Core 最终能够检测到这些动作。这解锁了诸如“挥剑 10 次”或“喝 3 瓶药水”之类的任务目标。

此插件与 Core 之间的桥梁仅使用纯 JDK 类型——没有 QuestLines 类跨越边界,从而保持补丁的干净和无冲突。

🛡️ 保护你的世界免受“区块加载失败”

某些 NPC(尤其是自定义的 Denizens)可能会将非正数的模型比例持久化到磁盘。下次加载该区块时,引擎会抛出“Scale must be greater than 0”,然后整个区块静默地加载失败——永久性,直到找到并移除有问题的实体。

QuestLinesHooks 会将任何无效的比例(0、负数或 NaN)钳位到合理的 1.0,完全匹配引擎自身的“自然比例”行为。这可以拯救现有世界中已损坏的区块,并防止新的区块出现问题。

📦 安装方法

  1. 将 questlines-hooks-.jar 放入服务器的 earlyplugins/ 文件夹——而不是 mods/。
  2. 使用 --accept-early-plugins 标志(或 --singleplayer)启动你的服务器。
  3. 这就完成了。无需任何配置。

▎ 早期插件在启动时会打印一个响亮的“不受支持”横幅——这是预期的且无害。没有该标志,一旦存在早期插件,服务器将拒绝启动。

🔧 前置需求

  • 运行 QuestLines 套件的 Hytale 服务器
  • 使用 --accept-early-plugins 启动的服务器

💡 温馨提示

  • 零配置,零命令——安装即忘。
  • 安全设计——每次发布前,两个钩子都会使用 ASM 的字节码验证器在真实的服务器类上进行离线验证。