本帖最后由 贰逼 于 2018-10-26 00:10 编辑
/drop命令目前还属于预览内容,并且存在bug,本帖会持续更新。
大致的讲解一下目前的用法:
语法
复制代码target就是掉落的对象,简单来说就是谁会得到掉落的物品。目前有:block、entity、player、world。
source就是掉落源,就是(通过某种方式让)谁掉了物品。目前有:award、fish、kill、loot、mine。
target和source可以随意排列组合,具体用法点击索引跳转。
总的来说/drop命令现在只是用于灵活地调用loottable。
大致的讲解一下目前的用法:
语法
target就是掉落的对象,简单来说就是谁会得到掉落的物品。目前有:block、entity、player、world。
source就是掉落源,就是(通过某种方式让)谁掉了物品。目前有:award、fish、kill、loot、mine。
target和source可以随意排列组合,具体用法点击索引跳转。
总的来说/drop命令现在只是用于灵活地调用loottable。
target - 对象

对象目前有:block、entity、player、world。
(看着是不是感觉眼熟,世界上block和entity的表现和在replaceitem中差不多)

目前源有:award、fish、kill、loot、mine。
(都与loottable相关联)
1.部分loottable表现不正常,例如"minecraft:blocks/acacia_door",这可能是个老牌bug,挖掘技术性方块没有掉落?
2.当对象为entity时,<source>前会多出一个[count]的附加选项,推测是掉落次数?目前没有用处
可能更新方向
根据wiki-command/drop,drop命令最初的设计是使物品栏物品沿某一方向,显然1.14的更新和wiki上的企划不相符。
示例1 - 挖掘工的梦
示例2 - 海之眷顾
示例3 - 填满宝藏
/drop命令目前还属于预览内容,并且存在bug,本帖会持续更新。
大致的讲解一下目前的用法:
语法
- /drop <target> <source>
source就是掉落源,就是(通过某种方式让)谁掉了物品。目前有:award、fish、kill、loot、mine。
target和source可以随意排列组合,具体用法点击索引跳转。
总的来说/drop命令现在只是用于灵活地调用loottable。
2021.12 数据,可能有更多内容
/drop命令目前还属于预览内容,并且存在bug,本帖会持续更新。大致的讲解一下目前的用法:
语法
代码:
- /drop <target> <source>
source就是掉落源,就是(通过某种方式让)谁掉了物品。目前有:award、fish、kill、loot、mine。
target和source可以随意排列组合,具体用法点击索引跳转。
总的来说/drop命令现在只是用于灵活地调用loottable。
target - 对象

对象目前有:block、entity、player、world。
(看着是不是感觉眼熟,世界上block和entity的表现和在replaceitem中差不多)
- block - 方块容器
[xyz]用于选中一个容器的坐标,关于如何在容器内放置物品有两种模式:代码:
- /drop block [x] [y] [z] <distribute|insert>
- distribute
- insert

- entity - 实体
[target]就是实体选择器,[slot]就是物品栏Id:代码:
- /drop entity [target] [slot]

可以说与/replaceitem中的entity毫无差别,就是替换物品栏。
- player - 玩家
[target]就是实体选择器。代码:
- /drop player [target]
如果说entity可以类比block中的"insert"模式,那么player就可以类比block中的"distribute"模式了,根据实体(多数是玩家)物品栏的情况自动分配物品。
- world - 世界
直接在世界坐标[xyz]处掉落物品。简单粗暴。代码:
- /drop world [x] [y] [z]

目前源有:award、fish、kill、loot、mine。
(都与loottable相关联)
- award, loot - 奖励/掉落
直接将一个loottable作为源。代码:
- /drop <target> <award|loot> [loottable]
- fish - 钓鱼掉落
也是直接将一个loottable作为源,不同的是[xyz]"应该"表示钓得物品坐标(也许存在Bug),[tool|offhand|mainhand]表示工具和手持方式代码:
- /drop <target> fish [loottable] [x] [y] [z] [tool|offhand|mainhand]
- kill - 击杀掉落
[target]就是被击杀目标(必须limit=1),但是实际上所选择的实体并没有被击杀,只是调用了其死亡loot。代码:
- /drop <target> kill [target]
- mine - 挖掘掉落
[xyz]是世界坐标,而非<target>中的坐标。表示挖掘[xyz]所得的掉落物,[tool|offhand|mainhand]表示工具和手持方式。代码:
- /drop <target> mine [x] [y] [z] [tool|offhand|mainhand]
挖掘掉落物是loottable中所规定的物品,比如挖掘煤矿,掉落煤;挖掘树叶,概率性掉落树苗。

本质上mine就是调用了方块的loot。
1.部分loottable表现不正常,例如"minecraft:blocks/acacia_door",这可能是个老牌bug,挖掘技术性方块没有掉落?
2.当对象为entity时,<source>前会多出一个[count]的附加选项,推测是掉落次数?目前没有用处
可能更新方向
根据wiki-command/drop,drop命令最初的设计是使物品栏物品沿某一方向,显然1.14的更新和wiki上的企划不相符。
示例1 - 挖掘工的梦
代码:
- /drop player @a mine ~ ~-1 ~ minecraft:diamond_pickaxe{Enchantments:[{id:"minecraft:efficiency",lvl:90000},{id:"minecraft:unbreaking",lvl:90000},{id:"minecraft:fortune",lvl:90000}]}

示例2 - 海之眷顾
代码:
- /drop entity @a hotbar.0 fish minecraft:gameplay/fishing/treasure ~ ~ ~ mainhand

示例3 - 填满宝藏
代码:
- /drop block ~ ~ ~ distribute award minecraft:chests/jungle_temple

本帖最后由 chyx 于 2018-10-26 01:43 编辑
我试着补充几点
1 似乎/drop <target> mine [x] [y] [z] [tool|offhand|mainhand]
在使用手(而不是一个物品)时 必须由一位实体来执行
2 "minecraft:blocks/acacia_door"无法使用是否是因为这个loottable里对方块的状态进行了判断(只有下半截掉落)
指令执行时没有传入相关信息?
3 wiki上的企划/drop疑似agent的指令
这个是教育版里用于教学编程的小机器人 可以执行学生写的简单动作 比如前进 转身等
drop是agent页面里列出的指令之一
https://minecraft.gamepedia.com/Commands/drop里也提到了agent
这样正好吻合了
所以说只是撞指令了
4 经过询问 查阅等一系列操作后 我确认了钓鱼指令里确实需要一个坐标。
这个版本的默认数据包里 钓鱼的垃圾会受biome的影响了。
里面要求必须是竹林或丛林里才能钓鱼得到竹子。
因此确实需要一个钓鱼的坐标
至于这个坐标到底是鱼漂的位置还是人的位置,我询问的结果是模拟钓鱼时的水方块的位置
我还没有验证
我试着补充几点
1 似乎/drop <target> mine [x] [y] [z] [tool|offhand|mainhand]
在使用手(而不是一个物品)时 必须由一位实体来执行
2 "minecraft:blocks/acacia_door"无法使用是否是因为这个loottable里对方块的状态进行了判断(只有下半截掉落)
指令执行时没有传入相关信息?
3 wiki上的企划/drop疑似agent的指令
这个是教育版里用于教学编程的小机器人 可以执行学生写的简单动作 比如前进 转身等
drop是agent页面里列出的指令之一
https://minecraft.gamepedia.com/Commands/drop里也提到了agent
这样正好吻合了
4 经过询问 查阅等一系列操作后 我确认了钓鱼指令里确实需要一个坐标。
这个版本的默认数据包里 钓鱼的垃圾会受biome的影响了。
节选自junk.json
里面要求必须是竹林或丛林里才能钓鱼得到竹子。
因此确实需要一个钓鱼的坐标
至于这个坐标到底是鱼漂的位置还是人的位置,我询问的结果是模拟钓鱼时的水方块的位置
我还没有验证
award应该是用进度的reward的loot吧?