Eztp

Eztp

EZTP是一个针对Minecraft 1.12.2的轻量级Forge传送模组。它提供了返回之前位置、家、全局出生点、安全随机传送、玩家传送请求、冷却时间和权限控制功能。

玩家运载

EZTP

轻量级、对服务器友好的 Minecraft 1.12.2 传送模组

版本号(参见 GitHub) Minecraft 1.12.2 Forge 14.23.5.2860 Java 8 MIT 许可证

EZTP 是一个用于 Minecraft 1.12.2 的轻量级 Forge 传送模组。它提供了返回上一位置、家(homes)、全局出生点、安全随机传送、玩家传送请求、冷却时间以及权限控制功能。


主要特点

  • 完整的基础功能: /back、家(homes)、全局出生点、安全 RTP,以及可点击的 TPA 请求。
  • 对服务器友好的多人游戏: 只有专用服务器需要安装此模组;玩家无需安装 EZTP 即可加入。
  • 以生存模式为默认设计: 传送预热、移动和伤害取消传送、独立冷却时间,以及保守的 RTP 生成策略。
  • 易于管理: 支持热重载的游戏设置、Forge PermissionAPI 集成,以及服务端英文/简体中文本地化。
  • 兼容性优先: 无 CoreMod、ASM、原版类替换、自定义传送门生成或必需的客户端数据包。

快速开始

  1. 为 Minecraft 1.12.2 安装 Forge 14.23.5.2860,并使用 Java 8。
  2. 将 EZTP 通用 JAR 文件复制到 mods 目录。
  3. 启动游戏或服务器一次,以生成 config/eztp.cfg。
  4. 根据需要调整文档化的设置,然后运行 /eztp reload 以进行运行时安全更改。

多人游戏: 仅在专用服务器上安装 EZTP。原版客户端和未安装 EZTP 的 Forge 客户端均可正常连接。

更换 EZTP JAR 文件前,请先停止游戏或服务器。在单人游戏中,JAR 文件应放在客户端的 mods 目录中,以便集成服务器能够加载它。

命令

命令 默认权限 描述
/back 所有人 返回上次传送前的位置或上次死亡位置
/sethome [名称] 所有人 保存当前位置;如果名称已存在则覆盖
/home [名称] 所有人 传送到家;仅有一个家时可省略名称
/homes [页数] 所有人 显示可点击的分页家列表
/delhome [名称] 所有人 删除一个家;仅有一个家时可省略名称
/setspawn 管理员 将全局出生点设置为当前位置和朝向
/spawn 所有人 传送到全局出生点
/rtp 所有人 在当前维度寻找一个安全的随机目的地
/tp <玩家> 管理员 立即传送自己到指定玩家;其他 /tp 形式保持原版
/tpa <玩家> 所有人 请求传送到另一名玩家处
/tpahere <玩家> 所有人 请求另一名玩家传送到你处
/tpaccept [玩家] 所有人 接受传送请求;别名 /tpyes
/tpdeny [玩家] 所有人 拒绝传送请求;别名 /tpno
/tpacancel 所有人 撤回当前发出的传送请求
/eztp reload 管理员 重新加载运行时安全配置

家名称不区分大小写,并以小写形式保存。名称可包含 1-16 个 ASCII 字母、数字或下划线。

当玩家骑乘实体时,EZTP 会将玩家放下,并在下一个服务器 tick 中仅传送玩家本身。坐骑会留在原地。遵循 Minecraft 标准骑乘关系的模组坐骑通常无需特殊处理。

传送行为

  • /back、/home、/spawn、/rtp、/tpa 和 /tpahere 默认拥有独立的冷却时间。设置 shareTeleportCooldowns=true 可让它们共享一个玩家全局冷却池。
  • 普通玩家默认最多可保存五个家。
  • 默认延迟为 3 秒。移动或受到实际伤害会取消传送,成功传送后默认开始 30 秒的冷却时间。
  • 管理员默认绕过延迟、冷却时间和家数量限制,但移动仍会取消他们的传送。
  • 在倒计时的最后三秒以及成功到达后,会播放可选音效。
  • 死亡、登出或维度变化会取消挂起的传送。

成功的 EZTP 玩家传送会保存其原点,而死亡会保存死亡位置。一次成功的 /back 会将其自身原点保存为下一个上一位置,因此可以在两个地点之间往返切换。该位置在重新连接和服务器重启后仍然保留。自动的首次出生和重生安置不会覆盖死亡位置。当 EZTP 的 /tp 扩展功能启用时,通过原版 /tp 传送的玩家也会记录其原点。

当 back.deathOnlyOnce 为 true 时,普通传送不再创建返回点,每次死亡会赋予一次成功的 /back 使用机会。移动、伤害或其他传送失败不会消耗该机会。此选项默认禁用。

全局出生点

使用 /setspawn 后:

  • 首次进入的玩家会在自定义全局出生点出生。
  • 没有床或其他个人重生点的玩家会在该处重生。
  • 其他模组提供的床和重生点始终优先。

在设置自定义出生点之前,初始出生和重生安置保持原版行为。此状态下 /spawn 使用原版主世界出生点。如果目的地之后被阻塞,EZTP 会向上搜索适合玩家的空间。

随机传送

/rtp 默认仅允许在主世界使用,并在距离世界出生点 1,000-5,000 格的范围内搜索。默认最多尝试三个不同的区块,并在每个区块中检查最多 64 个地表位置。

搜索工作会分散到多个服务器 tick 中进行,因此一次命令不会连续生成大量区块。randomTeleport 类别控制维度、原点、半径、Y 范围、重试次数、每 tick 预算和不安全方块。过大的重试次数或 tick 预算可能会增加地形生成量并导致卡顿。

传送请求

  • 请求默认在 60 秒后过期。
  • 一名玩家默认最多可收到 10 个待处理的请求。
  • 每名玩家仅保留其最新的发出请求。
  • 当有多个传入请求时,使用 /tpaccept <玩家> 或 /tpdeny <玩家> 来选择请求者。
  • 接受、拒绝和撤回操作均提供可点击的聊天按钮。

配置

主要的配置类别:

类别 用途
general 默认家名称、家数量限制、传送延迟、伤害取消、可选的共享冷却、备用冷却时间,以及 /tp 扩展
commandCooldowns 六个传送来源的独立冷却时间;-1 继承备用冷却
back /back 的可选一次性仅死亡模式
effects 倒计时和到达音效及音量
spawn 首次加入和未绑定重生点的行为
randomTeleport RTP 维度、范围、安全检查及性能预算
teleportRequests 请求发送频率限制、有效时间和传入限制
chatDisplay 家和请求列表的显示限制
permissions 固定权限节点的默认级别

生成的文件会记录每个设置的默认值、有效范围以及与极端值相关的风险。

默认配置: 五个家,3 秒传送预热,每个传送来源独立的 30 秒冷却时间,移动或受到伤害时取消传送。共享冷却为可选功能。RTP 在世界出生点周围 1,000-5,000 格范围内搜索,最多尝试三个区块,并每个 tick 处理一个区块。请求使用 3 秒发送节流、60 秒有效时间和 10 个传入请求上限。这些默认值旨在保留探索空间、战斗压力并保障服务器性能。

重载配置

保存 config/eztp.cfg 后,在服务器控制台或作为有权限的玩家运行:

/eztp reload

大多数设置会立即生效,包括 shareTeleportCooldowns、cancelTeleportOnDamage 和 back.deathOnlyOnce。更改共享冷却选项会改变现有计时器的查看方式,但不会重置它们:共享模式使用当前最长的活动来源计时器。已开始的 RTP 搜索和传送请求会保留创建时捕获的参数,活跃的冷却持续时间不会重新计算。

以下设置需要完全重启游戏或服务器:

  • enableTpExtension
  • permissions 下的默认访问级别

如果其中任何一项发生更改,重载命令会报告需要重启,并阻止在当前进程中部分应用。不支持在服务器运行时替换或重载模组 JAR 文件。

权限

默认访问级别:

  • EVERYONE:所有玩家
  • OPERATORS:仅服务器管理员
  • NOBODY:默认情况下无玩家
显示完整权限矩阵
权限节点 默认
eztp.command.back EVERYONE
eztp.command.home EVERYONE
eztp.command.sethome EVERYONE
eztp.command.delhome EVERYONE
eztp.command.spawn EVERYONE
eztp.command.setspawn OPERATORS
eztp.command.rtp EVERYONE
eztp.command.reload OPERATORS
eztp.command.tp OPERATORS
eztp.command.tpa EVERYONE
eztp.command.tpahere EVERYONE
eztp.command.tpaccept EVERYONE
eztp.command.tpdeny EVERYONE
eztp.command.tpacancel EVERYONE
eztp.teleport.cross_dimension EVERYONE
eztp.bypass.home_limit OPERATORS
eztp.bypass.teleport_delay OPERATORS
eztp.bypass.teleport_cooldown OPERATORS
eztp.bypass.movement_cancel NOBODY

与 Forge PermissionAPI 兼容的权限模组可以覆盖这些默认值。节点名称是稳定的 API,不应更改。

兼容性

  • 多人游戏客户端无需安装 EZTP。
  • 单人游戏需要在客户端放置 JAR 文件,以便其集成服务器加载 EZTP。
  • 消息在服务器端进行本地化。内置英文和简体中文;不支持的语言将回退到英文。
  • EZTP 不修改原版类、不使用 CoreMod 或 ASM、也不创建传送门。