ImitationCoreAPI

ImitationCoreAPI

NeoForge 1.21.1的实体记录、伪装、变换、复制体、角色聊天、动画和阵营掩盖API,支持可选的GeckoLib和Tensura整合。该API还为TensuraOverhaul的模仿者技能提供支持。

模仿核心 API

模仿核心 API 是一个可复用的 NeoForge 1.21.1 API,适用于需要实体记录、变换、伪装、复制体、复制身份、自定义聊天、动画以及与其他游戏系统兼容的模组。

此模组目前处于 Beta 测试阶段!如需报告错误或模组无法正常工作的问题,请前往链接的 Discord 并报告错误。谢谢!

该模组提供了基于模仿的技能和附加组件所使用的底层系统。它本身不添加独立的变换技能。

主要特性

  • 记录生物实体和玩家。
  • 永久存储已记录的外观。
  • 通过专用菜单选择、替换和管理外观。
  • 将玩家变换为复制的生物或玩家。
  • 在原始玩家断开连接后保留记录的玩家皮肤。
  • 显示复制的盔甲和手持装备,而无需创建真实物品。
  • 调整相机和眼睛高度以匹配复制的外观。
  • 在玩家之间同步变换。
  • 在还原后恢复玩家的原始外观和状态。
  • 恢复中断的变换会话。
  • 当外观无法正确复制时提供清晰的诊断信息。

已记录的外观

记录的外观可以包含受支持的信息,例如:

  • 实体类型。
  • 显示名称。
  • 玩家资料和皮肤。
  • 模型和渲染器信息。
  • 视觉装备。
  • 相机高度。
  • 物理属性。
  • 移动属性。
  • 动画信息。
  • 阵营信息。
  • 外观能力。
  • 评估信息。
  • 可选的模组特定数据。

记录的作战目标、临时移动、进行中的攻击、乘客、栓绳数据以及其他不安全的临时信息将在外观存储前被移除。

变换

  • 支持仅外观变换。
  • 当使用 API 的技能启用时,支持更深层次的游戏玩法变换。
  • 将每次变换作为服务器控制的会话进行追踪。
  • 防止客户端创建未经授权的变换。
  • 保存活动的变换状态。
  • 向附近玩家同步活动伪装。
  • 在变换结束时恢复原始玩家。
  • 支持可配置的变换持续时间。
  • 持续时间为 0 允许无限变换。
  • 在致命伤害杀死变换玩家之前,尝试安全地将其还原。
  • 追踪临时变换数据并在还原期间将其移除。

物理外观复制

兼容的变换可以重现受支持的属性,例如:

  • 最大生命值。
  • 护甲值。
  • 护甲韧性。
  • 攻击伤害。
  • 攻击速度。
  • 攻击击退。
  • 移动速度。
  • 飞行速度。
  • 跳跃强度。
  • 重力。
  • 击退抗性。
  • 体型比例。
  • 步进高度。
  • 安全坠落距离。
  • 挖掘速度。
  • 潜行速度。
  • 水中移动。
  • 交互距离。
  • 氧气加成。

玩家在还原后将恢复其原始属性和生命值。

外观与渲染

  • 原版生物实体渲染。
  • 记录的玩家皮肤渲染。
  • 视觉盔甲和手持装备。
  • 第一人称相机调整。
  • 眼睛高度调整。
  • 位置同步。
  • 身体旋转。
  • 头部旋转。
  • 视线方向。
  • 对不受支持实体的安全回退渲染。
  • 还原或断开连接后清除客户端伪装缓存。

复制的装备仅为视觉效果,无法丢弃、存储、交易、合成或复制。

动画支持

  • 待机动画。
  • 行走动画。
  • 冲刺动画。
  • 蹲伏动画。
  • 游泳动画。
  • 攻击动画。
  • 受伤动画。
  • 死亡动画意图。
  • 头部和身体旋转。
  • 防止记录的动画(一次性)永久卡住。
  • 支持附加组件提供的动画适配器。

外观能力

API 允许记录的外观提供被动和主动能力。

内置示例包括:

  • 蜘蛛和洞穴蜘蛛攀爬墙壁。
  • 骷髅变种射击箭矢。
  • 末影人传送至随机安全位置。
  • 惧光亡灵在白天燃烧。
  • 头盔、水、雨和火焰免疫防止阳光灼烧。
  • 支持附加组件创建的攻击、移动能力、被动效果和特殊动作。

技能与能力复制

依赖模组可以配置复制技能和能力的工作方式。

支持的规则包括:

  • 变换期间抑制玩家原有能力。
  • 临时授予属于记录外观的技能。
  • 比较玩家实力与记录目标的实力。
  • 允许更强玩家访问额外的复制能力。
  • 阻止较弱玩家复制受限的技能类别。
  • 可配置普通、额外、抗性、固有、独特和究极技能复制。
  • 可配置复制技能精通度。
  • 可配置禁止技能列表。
  • 还原后自动移除复制的技能。
  • 防止移除玩家在变换前合法拥有的技能。

外观成长

  • 追踪变换期间获得的成长进度。
  • 保留原始玩家获得的成长进度。
  • 将匹配的成长进度应用于活动的记录外观。
  • 更新外观的存储统计信息。
  • 更新受支持的评估信息。
  • 允许重复变换以提高外观精确度。
  • 支持可配置的精确度、精通度和成长规则。

评估与身份伪装

  • 展示复制外观中受支持的信息。
  • 将玩家可见身份伪装为记录的实体。
  • 支持复制的生命值和护甲信息。
  • 支持可选的模组特定统计数据。
  • 当存储的外观成长时更新显示的信息。
  • 为权限、所有权、日志和审核保留真实玩家身份。
  • 绝不替换另一位玩家的经过认证的账户。

生物阵营

  • 记录被复制实体的阵营信息。
  • 使生物将已变换玩家视为复制的外观。
  • 独立于深层游戏状态复制工作。
  • 支持原版阵营关系。
  • 支持基于标签的模组阵营。
  • 允许其他模组注册自定义阵营解析器。
  • 定期清除无效的敌对目标。
  • 允许服务器配置索敌范围和更新频率。
  • 允许禁用基于阵营的目标更改。

复制体系统

API 可以从记录的外观创建临时的生物复制体。

复制体支持包括:

  • 生物外观。
  • 玩家外观的回退处理。
  • 可配置的复制体生命周期。
  • 可配置的生成距离。
  • 可配置的清理距离。
  • 复制体所有权追踪。
  • 可选的实体状态复制。
  • 可选的模组特定状态复制。
  • 自定义复制体名称。
  • 自动清理。
  • 抑制物品掉落。
  • 抑制经验掉落。
  • 防止复制装备的复制。

聊天替换

模仿核心 API 包含一个服务器控制的聊天路由系统。

聊天频道

  • 全局聊天。
  • 128 格范围内且相同维度的本地聊天。
  • 私信。
  • 持久的全局或本地频道选择。
  • 服务器可配置的默认频道。
  • 支持附加组件创建的频道。

聊天命令

  • /imitchat global
  • /imitchat local
  • /imitchat global <消息>
  • /imitchat local <消息>
  • /imitchat direct <玩家> <消息>
  • /imitationchat 作为备用命令名称。

使用不带消息的 /imitchat global/imitchat local 可以更改正常聊天消息的发送位置。

聊天安全

  • 服务器控制的消息路由。
  • 为日志和审核保留真实发送者信息。
  • 可选的复制人格名称。
  • 消息大小限制。
  • 速率限制。
  • 客户端与服务器之间的协议协商。
  • 对未完整实现聊天协议的客户端的安全处理。
  • 为审核、审计、过滤、格式化以及自定义人格提供扩展点。
  • 复制的身份绝不会呈现为来自另一位玩家的加密签名消息。

Discord 聊天中继

服务器可以通过以下文件配置 Discord 集成:

config/imitationcoreapi-discord.properties

桥接功能支持:

  • 通过 Webhook 实现 Minecraft 到 Discord 的聊天。
  • 通过 Discord Bot 实现 Discord 到 Minecraft 的聊天。
  • 全局聊天中继。
  • 可选本地消息中继。
  • 可选私信中继。
  • 可选系统消息中继。
  • 消息净化。
  • 消息长度限制。
  • 中继循环预防。
  • Discord 速率限制处理。
  • 可配置的轮询频率。

Webhook 足以实现 Minecraft 到 Discord 的消息。Discord 到 Minecraft 的消息则需要 Bot 令牌和频道 ID。

为附加组件开发者准备

其他模组可以使用模仿核心 API 来创建自定义变换和基于模仿的技能。

公开 API 提供了以下系统:

  • 记录实体。
  • 持久化外观库。
  • 外观选择菜单。
  • 变换与还原。
  • 复制体。
  • 消耗、冷却时间和精通度。
  • 精确度与成长。
  • 变换持续时间。
  • 技能类别规则。
  • 独特与究极技能复制。
  • 外观能力。
  • 物理属性。
  • 阵营识别。
  • 评估伪装。
  • 渲染与动画。
  • 人格聊天。
  • 自定义聊天频道。
  • 审核与审计。
  • 变换事件。
  • 诊断。
  • 临时状态清理。
  • 可选的兼容性适配器。

要求

  • Minecraft: 1.21.1
  • 模组加载器: NeoForge 21.1.150 或更新版本
  • Java: 21
  • 必需端: 完整的客户端和服务器功能

Beta 版声明

模仿核心 API 目前处于 Beta 测试阶段。

自动化测试和构建已通过,但不同寻常的模组实体、复杂动画、自定义生物 AI、游戏状态复制、多人游戏同步、复制体、生命周期恢复以及实时 Discord 连接仍需更广泛的游戏测试。

反馈问题时,请包含以下内容:

  • 最新的游戏日志。
  • 已安装的模组版本。
  • 正在被复制的实体或玩家。
  • 所使用的变换类型。
  • 问题发生在单人游戏还是多人游戏。

GeckoLib 兼容性

GeckoLib 是可选的。

当安装 GeckoLib 时,模仿核心 API 可以:

  • 检测兼容的 GeckoLib 实体。
  • 记录可用的动画控制器。
  • 将实时玩家动作映射到复制的实体动画。
  • 支持来自其他模组的自定义 GeckoLib 适配器。
  • 当动画无法重现时安全地回退。

对于具有自定义控制器逻辑、多部件模型或异常渲染系统的实体,兼容性可能会有所不同。

关于转生史莱姆(Tensura)与 ManasCore 的兼容性

转生史莱姆与 ManasCore 是可选的。

安装后,模仿核心 API 提供以下支持:

  • 种族信息。
  • EP。
  • MP 与魔素。
  • 气场。
  • 灵性生命。
  • 玩家状态。
  • 灵魂状态。
  • 属性。
  • 能力信息。
  • 技能记录。
  • 临时复制的技能。
  • 技能分类规则。
  • 独特与究极技能复制策略。
  • 原始技能抑制。
  • 还原后安全恢复。
  • 评估伪装。
  • 基于 EP 的变换规则。
  • 可配置的种族统计数据、功能和进化路线。

该 API 可以在没有转生史莱姆或 ManasCore 的情况下加载。