/loot
来源:Commands/loot;原文修订 ID:3885680。
权限等级:Java 版为 2,基岩版为 1;基岩版需要启用作弊。
将指定战利品表产生的物品放入指定物品栏,或掉落到世界中。
语法
两版本的基本形式均为 loot <TARGET> <SOURCE>。
Java 版 TARGET
| TARGET | 行为 |
|---|---|
give <players> |
向玩家分配物品,忽略空物品堆叠 |
insert <targetPos> |
向容器方块分配物品,忽略空物品堆叠 |
spawn <targetPos> |
生成物品实体;空物品堆叠也会生成,但会立即消失 |
replace block <targetPos> <slot> |
按顺序将物品堆叠替换到连续槽位;SOURCE 产生的空堆叠会清空一个槽位 |
replace entity <entities> <slot> |
同上,目标为实体 |
replace block <targetPos> <slot> <count> |
先清空若干连续槽位,再按顺序放入物品堆叠(包括空堆叠);SOURCE 的堆叠数超过槽位数时忽略超出部分 |
replace entity <entities> <slot> <count> |
同上,目标为实体 |
Java 版 SOURCE
| SOURCE | 行为 |
|---|---|
fish <loot_table> <pos> [<tool>|mainhand|offhand] |
模拟在指定位置使用指定工具钓鱼 |
loot <loot_table> |
直接调用战利品表 |
kill <target> |
模拟杀死指定实体 |
mine <pos> [<tool>|mainhand|offhand] |
模拟在指定位置使用指定工具挖掘方块 |
各 SOURCE 提供的战利品上下文如下:
| SOURCE | 上下文参数 |
|---|---|
fish |
this 实体:执行者实体(若执行者是实体);原点:指定位置的方块中心;工具:指定物品 |
kill |
this 实体:指定实体;原点:命令执行位置;伤害来源:magic 伤害类型;attacker 与 direct_attacker:执行者实体(若为实体);attacking_player:执行者玩家(若为玩家) |
loot |
this 实体:执行者实体(若为实体);原点:命令执行位置 |
mine |
this 实体:执行者实体(若为实体);原点:指定方块中心;工具:指定物品;方块状态:指定方块;方块实体:若方块是方块实体,则为其方块实体数据 |
基岩版 TARGET
| TARGET | 行为 |
|---|---|
give <player: target> |
给予玩家物品,忽略空堆叠 |
insert <position: x y z> |
向容器方块分配物品,忽略空堆叠 |
spawn <position: x y z> |
生成物品实体,忽略空堆叠 |
replace block <position: x y z> slot.container <slotId: int> |
按顺序替换到连续槽位,SOURCE 产生的空堆叠会清空槽位 |
replace entity <entity: target> <slotType: EntityEquipmentSlot> <slotId: int> |
同上,目标为实体 |
replace block <position: x y z> slot.container <slotId: int> [count: int] |
清空连续槽位,再依次放入包括空堆叠在内的物品;超出槽位数的堆叠忽略 |
replace entity <entity: target> <slotType: EntityEquipmentSlot> <slotId: int> [count: int] |
同上,目标为实体 |
要清空并放入物品,目标实体或容器必须拥有全部指定连续槽位。
基岩版 SOURCE
kill <entity: target> ["<tool>|mainhand|offhand": string]:模拟用指定工具杀死指定实体。loot <loot_table: string> ["<tool>|mainhand|offhand": string]:用指定工具调用战利品表。mine <TargetBlockPosition: x y z> ["<tool>|mainhand|offhand": string]:模拟用指定工具挖掘指定位置的方块。
参数
- Java 版
loot_table(loot_table)/基岩版loot_table: string(basic_string):使用哪个战利品表。基岩版引用路径loot_tables/<loot_table: string>.json。 - 仅 Java 版
tool(item_stack):模拟挖掘或钓鱼的工具。 - 仅基岩版
"<tool>|mainhand|offhand": string(basic_string):模拟击杀或获取战利品的工具。可为mainhand、offhand,其他值表示物品 ID。 kill来源的target(entity)/entity: target(CommandSelector<Actor>):模拟杀死的单个实体。players(entity)/player: target(CommandSelector<Player>):要给予物品的一个或多个玩家。- Java 版
pos、targetPos(block_pos)/基岩版position: x y z(CommandPositionFloat):replace block和insert模式的方块位置。 spawn模式的targetPos/position: x y z:物品实体掉落位置;原文将 Java 参数列为block_pos,但说明模板使用vec3,此处保留该差异。entities(entity)/entity: target(CommandSelector<Actor>):要修改的一个或多个实体。count(integer)/count: int:要清空的连续槽位数量,整数;Java 版不小于 0。- Java 版
slot(item_slot)/基岩版slotType: EntityEquipmentSlot、slot.container与slotId: int:要修改的物品栏槽位。
结果
| 条件 | Java 版 | 基岩版 |
|---|---|---|
| 命令不完整或任意参数不正确 | 无法解析 | 无法解析 |
fish 或 mine 的位置未载入或超出世界 |
失败 | 失败 |
使用 mainhand/offhand,执行者不是活体实体 |
失败 | 不适用 |
使用 mainhand/offhand,执行者不是实体 |
失败 | 失败 |
kill 目标无法解析为单个实体(指定玩家必须在线) |
失败 | 失败 |
kill 目标不是活体实体 |
失败 | 不适用 |
kill 目标没有战利品表 |
不适用 | 失败 |
基岩版 loot_table: string 无效 |
不适用(Java 版视为参数不正确,无法解析) | 失败 |
replace entity 目标无法解析到一个或多个实体 |
失败 | 失败 |
replace entity 取得了至少一个堆叠,但全部实体没有指定槽位;带 count 时没有全部连续槽位 |
成功 | 失败 |
give 目标无法解析到在线玩家 |
失败 | 失败 |
insert/replace block 的目标位置未载入、超出世界或不是容器 |
失败 | 失败 |
replace block 的容器没有指定槽位 |
失败 | 失败 |
不带 count 的 replace block:来源堆叠数加起始槽位 ID 超过容器总槽位数 |
异常 | 成功 |
带 count 的 replace block:count 加起始槽位 ID 超过容器总槽位数 |
异常 | 失败 |
| 其他情况 | 成功 | 成功 |
输出
Java 版失败时成功次数、success、result 均为 0。所有成功形式成功次数和 success 均为 1,result 如下:
| Java 版命令 | result |
|---|---|
/loot spawn ... |
从战利品获得的物品堆叠数量 |
/loot give ... |
成功分配给各玩家的堆叠总数 |
/loot insert ... |
成功分配至容器的堆叠数 |
/loot replace block ... |
成功分配至容器的堆叠数 |
/loot replace entity ... |
成功分配给各实体的堆叠总数 |
Java 版 replace block 和 replace entity 发生错误时,成功次数为 0,success 和 result 不变。
基岩版失败时成功次数为 0;loot give ... 成功输出原文仍需测试;loot spawn ... 和 loot insert ... 成功次数为 1。不带 count 的 replace entity:来源为零堆叠时输出 1,否则输出拥有指定槽位的目标实体数;带 count 时:来源为零堆叠时输出 1,否则输出拥有全部指定连续槽位的目标实体数。
另见
- /give:不指定战利品表,直接给玩家指定物品。
- Java 版 /item:修改实体或容器的指定槽位。
- 基岩版 /replaceitem:修改实体或容器的指定槽位。
外部链接
- Microsoft Learn:/loot 命令(2024-10-30)。
中文翻译/改编自 Minecraft Wiki 原条目,原文作者可由页面历史查看;译文遵循 CC BY-NC-SA 3.0(署名、非商业性使用、相同方式共享)。