Andrew的数据包工具
数据包实用工具,如计算器和允许玩家数据修改等更多功能。
关于对各个 Minecraft 版本的支持
最近发生了很多变化,导致我很难用单个模组 jar 来支持多个版本,所以如果你需要支持某个版本,请在 GitHub 上提交一个 issue,我会创建一个支持你所需版本的分支。否则,我将只官方支持 Minecraft 的最新版本。
关于
Andrew's Datapack Utils 是一个 Fabric/NeoForge/Forge/Paper 模组,旨在为数据包(主要是数据包函数)创建实用的工具。它添加了一条包含大部分工具的命令,并允许使用 /data 和 /execute store 修改玩家数据,从而轻松操控玩家,并实现之前不可能实现的功能。
特性
- 基础数学计算
- 通过使用
/aputils calc <add|sub|mul|div|power|sqrt|...>命令来使用。与/execute store result和函数宏配合使用效果很好。
- 通过使用
- 距离计算
/aputils calc distance <pos 1> <pos 2>或/aputils calc distance entities <selector1> <selector2>- 可以计算 2 个实体或 2 个方块之间的距离,对于实体使用
/aputils calc distance entities,对于方块使用/aputils calc distance(注意没有entities)
- 编辑玩家数据
- 通常情况下,你不能使用
/data或/execute store (result|success) entity来更改玩家实体数据,它只会抛出错误Unable to modify player data,并且不会改变任何东西。使用此模组,该限制被移除,允许轻松修改玩家实体数据。注意并非所有内容都可以修改,尝试更改某些值(例如 Motion 或 Pos)不会有任何效果。请改用其他命令,如 /aputils velocity 或 /tp 来更改这些。 - 在 Paper 上不可用。
- 通常情况下,你不能使用
/aputils velocity <xyz> [add|set|multiply]- 允许你以正常方法无法实现的方式操控实体的速度,例如修改玩家的速度(使用玩家数据修改模组无法做到这一点,因为它不会向客户端发送速度更新数据包)
- 需要权限等级 2,意味着你需要在单人世界开启作弊,或在服务器中拥有权限等级 2
/aputils attack_cooldown <player>- 输出所提供玩家的攻击冷却进度,如果使用
/execute store result则以百分比形式输出。
- 输出所提供玩家的攻击冷却进度,如果使用
/aputils despawn <entities> [force]- 使一个或多个实体消失。与 /kill 不同,因为这只是在你的世界中移除该实体/这些实体,而不触发任何类型的死亡事件,只是以实体正常消失的方式静默移除实体。
- 如果未应用
force且目标选择器在**命令运行的那一刻(而不是选择器是否允许玩家)**包含一个或多个玩家,则命令失败。 - 需要权限等级 2,如果包含
force则需要权限等级 4
/aputils check_damage <entity> [type]- 如果实体在命令运行的那一游戏刻受到了伤害,且未提供 type,则返回 true
- 如果提供了 type,则当实体在该游戏刻受到了所提供类型的伤害时返回 true。
- 在较旧的游戏版本上无法使用,测试过可用的最旧版本是 1.21.2
- 如果所需的 mixin 未加载,此命令始终返回 0
/aputils pathfind <entity: selector> <xyz: Vec3d> [speed: double]或/aputils pathfind <entity: selector> entity <target: selector> [speed: double]- 使生物使用原版生物寻路寻找到某个位置。
- 覆盖生物当前的路径(如果有)。
- 有一个可选的 'speed' 参数,使生物在前往指定位置时以该速度移动。注意对于某些生物(如铁傀儡),它们的默认(1)速度就是它们的奔跑速度。并非所有生物都是如此,但有些是。
- 如果未指定,默认为 1。
- 如果指定的目标是实体,则生物将寻路到命令运行时该实体所在的位置。
- 不影响海豚,但影响其他鱼类。原因我目前还不清楚,但海豚可能使用了与其他生物不同的寻路方法。
- 目前不产生命令反馈,但它确实有效。
- 生物有时会提前停止寻路到该位置。这是由于正常的生物 AI 行为。
/aputils target <entity> <target>- 强制生物将目标更改为指定的实体。
- 诸如距离、游戏模式或已有目标/攻击者等条件均被忽略。
- 仅适用于可以有目标的生物,因此被动型生物无法受影响。
- 不影响末影龙,因为末影龙不是具有正常行为的生物。
- 目前不产生命令反馈,但它确实有效。
数据包可以使用 /aputils heartbeat 来检测是否安装了此模组,它会始终向 /execute store result 输出 1。
数据包可以使用 /aputils version 来检测使用的是 NeoForge 版还是 Fabric 版的模组。如果使用的是 NeoForge 则返回 1,如果使用的是 Fabric 则返回 0。
已知问题
- 每次运行 /aputils velocity 时,它都会将 "The new velocity is (x, y, z)" 打印到服务器控制台/游戏日志中,这可能会很烦人
- 这是一个调试功能,被意外保留了下来,将在下次更新中禁用。
注意事项
这可以在未经我许可的情况下包含在任何整合包中。
如果你想将此移植到 Forge,请随意。
致开发者
任何贡献都将不胜感激!
趣闻
这是我在整个 Minecraft 开发历史中制作的第一个真正的模组。在此之前,我只为 Minecraft 制作过数据包。
关于正在开发中的 Paper 移植版
一直困扰我的是,我无法在像 Paper 这样基于插件的服务器软件上获得我某些数据包(如 Old Combat Datapack)的完整功能,因为 ADPU 不是插件,所以我决定自学 Paper,现在 ADPU 的 Paper 版本正式在开发中了!需要注意的是,玩家数据修改和伤害检测等功能将不可用,因为 Paper 上不存在 mixin,所以请做好心理准备。不过将会有变通方法,即正在开发中的 "aputils manipulate" 命令,它将在所有加载器上可用,并能够修改基于生命值和饥饿值的数值等。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。