
HeroBot
基于Fabric的服务器端玩家框架(以及额外有用的设置)
这款模组专为数据包作者设计,用于制作能够反击的机器人。
与Carpet相比,这些机器人与原版客户端的兼容性更高,包括自动跳跃和长矛等功能的支持。
与 Carpet Mod 和 Carpet PVP 不兼容
设置
通过 /herobot 命令查看和修改 HeRoBot 设置。直接运行 /herobot 会显示模组版本。
用法
/herobot <设置>- 显示当前值和描述/herobot <设置> <数值>- 临时设置本次会话的设置/herobot <设置> <数值> <权限>- 永久设置(保存到配置)
机器人
allowSpawningOfflinePlayers
如果不存在指定名称的在线模式玩家,则允许在在线模式下生成离线玩家。
默认值:true
allowListingBotPlayers
允许机器人玩家出现在多人游戏玩家列表中。
默认值:true
botPingToTicks
更改机器人玩家的延迟(毫秒)到游戏刻的转换比率。用于将机器人的延迟转换为击退的延迟刻数。
默认值:25
botLagAttacks
[实验性] 使对机器人玩家的左键攻击(攻击)延迟,延迟时间等于机器人的延迟。
默认值:false
botLagUses
[实验性] 使对机器人玩家的右键点击(使用)延迟,延迟时间等于机器人的延迟。
默认值:false
botLeaveOnDeath
机器人玩家死亡时会断开与服务器的连接,而不是自动重生。
默认值:false
创造模式
creativeNoClip
创造模式无碰撞模式。允许飞行中的创造模式玩家穿过方块。
默认值:false
creativeFlySpeed
更改创造模式飞行速度倍率。更高的值使客户端飞行更快。
默认值:1.0
creativeFlyDrag
更改创造模式空气阻力。较低的值会减少飞行时的空气阻力。
默认值:0.09
战斗
shieldStunning
启用盾牌眩晕,允许在盾牌被禁用后立即对实体造成伤害。
默认值:false
noProjectileRandom
移除投射物的随机性,使其完全精准。
默认值:false
爆炸
explosionNoBlockDamage
控制爆炸是否破坏方块。
数值:
FALSE- 原版行为MOST- 影响非固体方块,但荧石和红石交互方块除外TRUE- 阻止所有方块破坏
默认值:FALSE
explosionNoFire
防止床和重生锚爆炸时引发火灾。
默认值:false
windChargeNoTrigger
风弹不会激活红石方块。
默认值:false
世界 / 杂项
clientsIgnoreSlowTickRate
如果为 false,使客户端玩家忽略较慢的游戏刻速率。
默认值:true
editablePlayerNbt
允许直接编辑玩家 NBT 数据。启用后还允许通过 /ride 骑乘玩家。
默认值:false
xpNoCooldown
玩家立即吸收经验,无延迟。
默认值:false
shulkerBoxAlwaysDrops
潜影盒始终会掉落,无论 doTileDrops 游戏规则如何。
默认值:false
deleteChunkEntities
启用后,区块重置/删除也会删除这些区块内的实体数据文件。
默认值:false
rainThroughMovingPiston
允许雨穿过被活塞移动的方块。
默认值:false
disableExperimentalScreen
移除实验性世界设置。如果在客户端上设置,则禁用所有实验性界面。如果在世界上设置,则仅对该世界禁用。
默认值:false
机器人玩家
机器人玩家是加入服务器的假玩家,可以完全通过命令控制。它们通过 /playerspawn 生成,并通过 /player 控制。机器人玩家在战斗、移动和物品使用方面具有正确的服务器端行为。
机器人玩家死亡后会自动重生,生命值全满,背包为空,无经验(除非启用了 botLeaveOnDeath)。
/playerspawn
生成一个机器人玩家,可指定位置、旋转、游戏模式和维度。
/playerspawn <名称>- 在命令执行者的位置生成/playerspawn <名称> at <位置>- 在指定位置生成/playerspawn <名称> at <位置> facing <旋转>- 以指定的偏航角/俯仰角生成/playerspawn <名称> at <位置> facing <方向>- 面向基本方向生成(north、south、east、west、up、down)/playerspawn <名称> ... in <游戏模式>- 在指定游戏模式中生成(默认为创造模式)/playerspawn <名称> ... on <维度>- 在指定维度生成
防止重复名称。尊重白名单和封禁。旁观者模式生成时处于飞行状态,生存模式玩家生成时着地。
/player
使用动作包控制机器人玩家。所有子命令都以 /player <目标> ... 为目标,并支持选择器来锁定多个机器人。
use、attack、swing、jump、drop、dropStack、swapHands
让机器人执行玩家动作的动作命令。
/player <目标> <动作>- 停止该动作/player <目标> <动作> once- 执行一次该动作/player <目标> <动作> continuous- 每游戏刻执行该动作/player <目标> <动作> interval <刻数>- 每 N 刻执行该动作
无参数的 use 会停止使用,而不会触发另一次使用(不像 Carpet 中它的行为类似于 use once)。
swing 挥动一只手而不执行动作,并重置攻击冷却。
attack 使用长矛/动能武器时,将执行突刺动作。
autojump
控制移动时自动跳过一格的障碍物
/player <目标> autojump- 尝试一次自动跳跃(如果机器人正在移动且需要跨上一步,则跳跃)/player <目标> autojump true- 启用连续自动跳跃/player <目标> autojump false- 禁用连续自动跳跃
move
控制机器人的移动方向。
/player <目标> move- 停止所有移动/player <目标> move forward/player <目标> move backward/player <目标> move left/player <目标> move right
sneak / sprint
/player <目标> sneak- 开始潜行/player <目标> unsneak- 停止潜行/player <目标> sprint- 开始冲刺/player <目标> unsprint- 停止冲刺
潜行会将移动速度降低至 30%。使用物品(非长矛)时速度降低至 20%。
look
控制机器人的视线方向。大多数查看命令支持 delta <刻数> 以实现多刻间的平滑过渡。
基本方向
/player <目标> look north|south|east|west|up|down/player <目标> look north delta <刻数>
精确旋转
/player <目标> look <偏航角> <俯仰角>/player <目标> look <偏航角> <俯仰角> delta <刻数>
相对转动
/player <目标> look left- 向左转 90 度/player <目标> look right- 向右转 90 度/player <目标> look back- 转 180 度/player <目标> look relative <旋转>- 按给定的相对旋转转动- 所有都支持
delta <刻数>
看向位置
/player <目标> look at <位置>/player <目标> look at <位置> delta <刻数>
看向实体
/player <目标> look upon <实体>- 看向实体的眼睛(默认)/player <目标> look upon <实体> eyes- 看向实体的眼睛/player <目标> look upon <实体> feet- 看向实体的脚/player <目标> look upon <实体> closest- 看向实体碰撞箱最近的点- 所有都支持
delta <刻数>
随机
/player <目标> look random- 看向随机方向
hotbar
选择一个快捷栏槽位。
/player <目标> hotbar <槽位>- 选择 1 至 9 号槽位
itemCd
控制物品冷却。
/player <目标> itemCd- 重置所有物品冷却(返回重置次数)/player <目标> itemCd <物品>- 显示剩余冷却刻数(返回刻数)/player <目标> itemCd <物品> reset- 重置该物品的冷却/player <目标> itemCd <物品> set- 应用该物品的默认冷却而不使用它/player <目标> itemCd <物品> set <刻数>- 应用自定义冷却时长
ping
控制机器人模拟的延迟。击退会根据 botPingToTicks 设置延迟相应的刻数。
/player <目标> ping- 显示机器人当前延迟以及等效的刻数延迟/player <目标> ping <数值>- 设置延迟(毫秒)(建议:0、25、50、100、150、200)
当延迟不能整除 botPingToTicks 时,刻数延迟会有一些随机性。例如,延迟为 30,botPingToTicks 为 25,则每刻有 5/25 的概率额外增加 1 刻延迟。
copycat
将另一个玩家的物品栏和动作包复制到机器人上。
/player <目标> copycat <来源>
skin / handedness
切换机器人个体皮肤部位的可见性。
皮肤部位:
/player <目标> skin cape/player <目标> skin jacket/player <目标> skin leftSleeve/player <目标> skin rightSleeve/player <目标> skin leftPant/player <目标> skin rightPant/player <目标> skin hat
每次调用都会切换该部位的开关。
左手/右手习惯:
/player <目标> handedness left/player <目标> handedness right
stop / kill / disconnect
/player <目标> stop- 停止所有动作和移动/player <目标> kill- 杀死机器人(触发死亡和重生)/player <目标> disconnect- 不触发死亡地将机器人从服务器移除
距离
测量两个位置、实体或碰撞箱之间的距离,并将结果存储为命令返回值(可用于记分板)。默认距离为球形(3D)。
from
使用精确位置的点对点距离。
/distance from <位置> to <位置>/distance from <位置> to <实体>/distance from <实体> to <位置>/distance from <实体> to <实体>
fromHitbox
使用源的完整边界框而不是其中心点。
/distance fromHitbox <方块> to <位置|实体>/distance fromHitbox <实体> to <位置|实体>
也可以与 toHitbox 结合使用:
/distance from <位置|实体> toHitbox <方块>/distance from <位置|实体> toHitbox <实体>/distance fromHitbox <方块|实体> toHitbox <方块|实体>
e(指数缩放)
/distance ... e <指数>- 返回距离前乘以 10^指数
- 示例:4 格距离,使用
e 3返回4000
horizontal
仅测量 XZ 距离(忽略 Y)。
/distance ... horizontal- 支持
e <指数>
vertical
仅测量 Y 距离(忽略 XZ)。
/distance ... vertical- 支持
e <指数>
延迟
安排命令或函数在延迟一定刻数后运行。
tickDelay
安排一个命令或函数在指定刻数后执行。
/delayed tickDelay <刻数> command <命令>- 在延迟后运行命令,支持完整的自动补全/delayed tickDelay <刻数> function <函数>- 在延迟后运行数据包函数
queue
查看和管理待执行的延迟命令。
/delayed queue- 列出所有待执行的延迟命令/delayed queue entity <实体>- 列出特定实体的延迟命令/delayed queue entity- 列出执行实体的延迟命令/delayed queue remove <索引>- 按索引移除特定的延迟命令
clear
/delayed clear- 清除所有待执行的延迟命令
区块重置器
重置(删除)区块数据,以便下次加载时重新生成。已加载的区块将被跳过,必须首先卸载。
chunk
按方块列位置重置特定区块。
/chunk-resetter chunk <位置>- 重置给定位置的单个区块/chunk-resetter chunk <起点> <终点>- 重置矩形范围内的所有区块(最多 256 个区块)
重置区块中的实体将被丢弃。
world
重置整个维度中所有未加载的区块。同时删除 POI 数据。仅当启用 deleteChunkEntities 时,才会删除实体数据文件。
/chunk-resetter world- 重置当前维度的区块/chunk-resetter world <维度>- 重置指定维度的区块
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。