跳到主要内容

假人

Leaves 提供了类似 Carpet 的假人支持,假人的命令为 /bot

什么是假人

假人是一个玩家实体,怪物会被它吸引并攻击它,它也可以模拟部分玩家操作。比如:

  • 区块随机刻
  • 生物生成
  • 物品使用
  • 方块破坏

在执行命令前,请确保已经拥有此权限。

创建假人

要创建假人,请在游戏内执行命令:/bot create <假人名> [皮肤名],或在控制台执行命令:/bot create <假人名> <皮肤名> <世界名> <X> <Y> <Z>

<假人名> 是必要参数,并且假人名称需要符合 Minecraft 的玩家名规范。

[皮肤名] 是可选参数,假人将会使用皮肤名对应的皮肤。若没有填写此参数,则假人会使用假人名的对应皮肤。

通过在游戏内执行命令创建的假人会继承创建者的位置和视角(也就是创建者的 NBT 标签 Rotation 和 Pos)。

如果玩家在创建假人后不离开假人位置,则假人会和玩家发生碰撞而导致一定位置偏移。

若假人在创建后迟迟没有出现,可能需要检查服务器和 Mojang 皮肤服务器的连接。

假人无法复活,即使游戏规则 keepInventory 为 true,也会在死亡后扔出所有物品并移除自己(而不是像 Carpet 那样断开连接)。

在默认情况下,假人会在服务器关闭前被全部移除。你可以在配置中修改假人是否在服务器重启之后自动还原。

你也可以使用命令 /bot remove <假人名> 来移除指定的假人。

你也可以使用命令 /bot remove <假人名> [时] [分] [秒] 来定时移除指定的假人。

假人可以被手动加载/保存,这相当于正常玩家的上下线操作,在保存前后,假人的所有信息(例如位置和维度)都会保持一致。

你可以通过 /bot save <假人名> 来保存假人,同时使用 /bot load <假人名> 来加载假人。

假人动作

动作是假人的重要部分,它可以让假人完成更多任务。截止目前,假人一共拥有 15 种动作。

每个假人可以同时执行多个动作。每个动作相互独立,不会互相影响。

你可以使用命令 /bot action <假人名> <动作名> <start|stop|list> [其它参数] 来指定假人的动作。

命令 /bot action <假人名> list 可查看指定假人当前的所有动作。

命令 /bot action <假人名> stop <动作序号/all> 可停止假人当前的 一个/所有 动作。

命令 /bot action <假人名> start <动作> [动作参数] 可向假人添加一个动作。

动作参数

  • 等待时间:执行成功后等待的时间,单位为 tick。

    此处与 Carpet 假人的使用周期不同,Carpet 的使用周期 = 使用时间 + 等待时间,而这里仅仅是等待时间。对于简单的 1 tick 执行完毕的动作(放置方块等),使用周期 = 使用时间 + 1,所以对于大部分的基于 Carpet 设计的机器,周期 - 1 即为等待时间。但对于需要多 tick 执行完毕的操作(食用食物等),则需要自行根据使用时间和周期计算等待时间。

  • 执行次数:可以成功执行操作的总次数,如为 -1 则为无限。

  • 使用时间限制:仅对于所有 use 动作:在使用成功前最多的使用时间,如为 -1 则不限制。

  • 视角参数:偏航角(左右转动)和俯仰角(上下转动)

攻击实体动作

  • 动作名:attack
  • 描述:当假人开始执行这项动作时,假人将尝试攻击视线前方与碰撞箱内的实体。

方块破坏动作

  • 动作名:break
  • 描述:当假人开始执行这项动作时,假人将尝试挖掘视线前方的方块。

物品扔出动作

  • 动作名:drop
  • 动作参数:无
  • 描述:当假人开始执行这项动作时,假人将扔出背包中的所有物品。

自动钓鱼动作

  • 动作名:fish

跳跃动作

  • 描述:当假人开始执行这项动作时,假人将尝试进行跳跃。

注视动作

  • 动作名:look
  • 动作参数:<Player><X> <Y> <Z>
  • 描述:当假人开始执行这项动作时,假人将看向该玩家或给定的坐标。

转向动作

  • 动作名:rotation
  • 动作参数:<Yaw> <Pitch>
  • 描述:当假人开始执行这项动作时,假人的偏航角和俯仰角设为给定值。

下蹲动作

  • 动作名:sneak
  • 动作参数:无
  • 描述:当假人开始执行这项动作时,假人将切换潜行状态。

游泳动作

  • 动作名:swim
  • 动作参数:无
  • 描述:当假人执行此项动作时,假人将尝试在水中自动浮起(而不是进入游泳姿态)。

模拟右键动作

  • 动作名:use_auto
  • 描述:假人将尝试模拟客户端右键进行使用物品。

⚠️ DANGER:假人尝试使用带有 GUI 的方块(如工作台、熔炉、铁砧等)的行为是未定义的。

物品使用动作

  • 动作名:use
  • 描述:假人将尝试使用主手物品,此动作将不会尝试对方块或实体使用物品。

如果你需要使用主手物品(食用食物、拉弓、使用盾牌等),请使用此动作。

副手物品使用动作

  • 动作名:use_offhand
  • 描述:假人将尝试使用副手物品,此动作将不会尝试对方块或实体使用物品。

如果你需要使用副手物品(食用食物、拉弓、使用盾牌等),请使用此动作。

对方块使用物品动作

  • 动作名:use_on
  • 描述:假人将尝试对视线前方的方块使用主手物品。

如果你需要放置方块,请使用此动作。

此动作将会忽略眼前的实体,假人将直接与实体后方的方块交互。

⚠️ DANGER:假人尝试使用带有 GUI 的方块(如工作台、熔炉、铁砧等)的行为是未定义的。

对方块使用副手物品动作

  • 动作名:use_on_offhand
  • 描述:假人将尝试对视线前方的方块使用副手物品。

如果你需要放置方块,请使用此动作。

此动作将会忽略眼前的实体,假人将直接与实体后方的方块交互。

⚠️ DANGER:假人尝试使用带有 GUI 的方块(如工作台、熔炉、铁砧等)的行为是未定义的。

对实体使用物品动作

  • 动作名:use_to
  • 描述:假人将尝试对视线前方的实体使用主手物品。

如果你需要与实体交互,请使用此动作。

对实体使用副手物品动作

  • 动作名:use_to_offhand
  • 描述:假人将尝试对视线前方的实体使用副手物品。

如果你需要与实体交互,请使用此动作。

假人列表

通过使用 /bot list [世界] 来查看全局/各个世界的假人。

[世界] 是可选参数。它默认为 world / world_nether / world_the_end。输入自定义世界的名称以查看位于该世界中的假人。