有过开服经验的腐竹可能知道ChestCommand这款插件,它的主要功能就是可以打开gui让玩家选择
然后我今天做的是cb版ChestCommand
————————————————————————————————
![](https://imgsa.baidu.com/forum/w%3D580/sign=0fff2fc071899e51788e3a1c72a7d990/1015154e251f95caebcd6e8bc3177f3e670952f6.jpg)
首先做一个这样的平台,上面的箱子是陷阱箱
![](https://imgsa.baidu.com/forum/w%3D580/sign=ddc8b28494510fb37819779fe933c893/b751001f95cad1c89c83001a753e6709c93d51f6.jpg)
然后去别的地方弄一个陷阱箱,里面装上你所想要的物品,就像这样:
![](https://imgsa.baidu.com/forum/w%3D580/sign=478c575c05b30f24359aec0bf895d192/a200b0cad1c8a786f512b6336d09c93d70cf50f6.jpg)
然后回到刚才的那个平台,在左边那个命令方块上输入/blockdata <x> <y> <z>(都是你的箱子的坐标) {Lock:"这里随便填就行了"},就像这样
![](https://imgsa.baidu.com/forum/w%3D580/sign=a354c6be052442a7ae0efdade143ad95/12d5f4c8a786c917423bae04c33d70cf3bc757f6.jpg)
另外一边摆上复制你菜单的指令(应该不用教了把)
接下来是如何让你做的功能运作起来:
![](https://imgsa.baidu.com/forum/w%3D580/sign=31b6c62948a7d933bfa8e47b9d4bd194/56d78286c9177f3e590c00307acf3bc79f3d56f6.jpg)
这是lz精简了以后的一个单片模块,首先我们来看检测模块:
![](https://imgsa.baidu.com/forum/w%3D580/sign=30218baad333c895a67e9873e1137397/2099ec177f3e6709f638b9c231c79f3df8dc55f6.jpg)
就是下面这个东西↑
![](https://imgsa.baidu.com/forum/w%3D580/sign=934ea0d5b63eb13544c7b7b3961ea8cb/3f115eec54e736d13c6a003591504fc2d56269b5.jpg)
里面放上这个命令:/testforblock <x> <y> <z>(都是你的箱子的坐标) minecraft:trapped_chest <箱子朝向> {Items:[{Slot:<你放东西的格子>b}]}
解释一下这条命令(cb大佬可以直接无视):
————————————
/testforblock就是检测方块数据
xyz不用说了吧
箱子朝向可以用testforblock慢慢试,在2-5的范围内
Nbt中,{Slot:<你放东西的格子>b}是用来检测那个格子是否有物品
上面的比较器和火把是用来反转信号的
所以这个模块的用处就是检测到你所指定格子中没有东西(既东西被玩家拿起)就发出信号(2tick延迟)
——————————————
然后在看到上面部分,也就是触发指令部分,先编个号
![](https://imgsa.baidu.com/forum/w%3D580/sign=02a2103ec295d143da76e42b43f08296/4e085a3e6709c93d30caf2ca953df8dcd10054f6.jpg)
5号cb中的指令是复制菜单的模板到用户打开的箱子中(用/clone),也起到了强制用户关闭箱子GUI的效果
4号cb中装的是你想执行的指令
实现ChestCommand的功能到此就结束了,但是mc还有一个特性就是鼠标原来点的东西会弹出来,十分不美观,
而且还能刷物品,于是便有了123号cb
中间是一个比较器(必须要有,因为某些原因箱子里的物品跳出来比cb慢,所以不能用条件限制的cb)
3号cb的主要用途是重置4号cb的输出,使4号cb不在发出信号,以应对下次的使用
![](https://imgsa.baidu.com/forum/w%3D580/sign=98360198db43ad4ba62e46c8b2025a89/f8214209c93d70cf7ac25630f2dcd100baa12bf6.jpg)
3号cb里的指令是这样的:/blockdata (4号cb的坐标) {SuccessCount:0},注意,这个cb朝向不能朝着1,2号cb
解释一下(cb大佬请继续无视):SuccessCount是cb给比较器发送信号的原因,当它≥1时,就会发出信号
然后再看12号cb,他们的作用就是干掉跳出来的物品
![](https://imgsa.baidu.com/forum/w%3D580/sign=8a90184ea74bd11304cdb73a6aafa488/e016ec3d70cf3bc7dd3831d1db00baa1cd112af6.jpg)
2号cb的指令是这样的/scoreboard players tag @e[type=item] add kill {Item:{tag:{<你物品的nbt>}}}
我这里的nbt是display:{Name:"<你物品的名称>"}},也就是识别物品名称
(更多的数据标签在mcwiki中有详细的树形图,有兴趣可以去看一看)
这条指令的意思是给所有物品实体中带有你的所需nbt的物品加上kill(叫啥随意,但下面的必须一致)的tag
![](https://imgsa.baidu.com/forum/w%3D580/sign=92466446db1373f0f53f6f97940f4b8b/4e2255cf3bc79f3dbbd9180db0a1cd11728b29f6.jpg)
最后在1号cb中放上/kill @e[tag=kill]
这条指令的意思是杀死所有有kill(必须和上面一致)的tag的实体
至此,单个ChestCommand的模块就做好了,如果想要更多功能,加模块就行了
————————————————————————————————————
感谢:某服务器的空岛战争的菜单给我带来的灵感
除mcbbs外,禁止转载
————————————————————————————————————
什么,你还看不懂,给你个存档你总能看懂了吧
然后我今天做的是cb版ChestCommand
————————————————————————————————
![](https://imgsa.baidu.com/forum/w%3D580/sign=0fff2fc071899e51788e3a1c72a7d990/1015154e251f95caebcd6e8bc3177f3e670952f6.jpg)
首先做一个这样的平台,上面的箱子是陷阱箱
![](https://imgsa.baidu.com/forum/w%3D580/sign=ddc8b28494510fb37819779fe933c893/b751001f95cad1c89c83001a753e6709c93d51f6.jpg)
然后去别的地方弄一个陷阱箱,里面装上你所想要的物品,就像这样:
![](https://imgsa.baidu.com/forum/w%3D580/sign=478c575c05b30f24359aec0bf895d192/a200b0cad1c8a786f512b6336d09c93d70cf50f6.jpg)
然后回到刚才的那个平台,在左边那个命令方块上输入/blockdata <x> <y> <z>(都是你的箱子的坐标) {Lock:"这里随便填就行了"},就像这样
![](https://imgsa.baidu.com/forum/w%3D580/sign=a354c6be052442a7ae0efdade143ad95/12d5f4c8a786c917423bae04c33d70cf3bc757f6.jpg)
另外一边摆上复制你菜单的指令(应该不用教了把)
接下来是如何让你做的功能运作起来:
![](https://imgsa.baidu.com/forum/w%3D580/sign=31b6c62948a7d933bfa8e47b9d4bd194/56d78286c9177f3e590c00307acf3bc79f3d56f6.jpg)
这是lz精简了以后的一个单片模块,首先我们来看检测模块:
![](https://imgsa.baidu.com/forum/w%3D580/sign=30218baad333c895a67e9873e1137397/2099ec177f3e6709f638b9c231c79f3df8dc55f6.jpg)
就是下面这个东西↑
![](https://imgsa.baidu.com/forum/w%3D580/sign=934ea0d5b63eb13544c7b7b3961ea8cb/3f115eec54e736d13c6a003591504fc2d56269b5.jpg)
里面放上这个命令:/testforblock <x> <y> <z>(都是你的箱子的坐标) minecraft:trapped_chest <箱子朝向> {Items:[{Slot:<你放东西的格子>b}]}
解释一下这条命令(cb大佬可以直接无视):
————————————
/testforblock就是检测方块数据
xyz不用说了吧
箱子朝向可以用testforblock慢慢试,在2-5的范围内
Nbt中,{Slot:<你放东西的格子>b}是用来检测那个格子是否有物品
上面的比较器和火把是用来反转信号的
所以这个模块的用处就是检测到你所指定格子中没有东西(既东西被玩家拿起)就发出信号(2tick延迟)
——————————————
然后在看到上面部分,也就是触发指令部分,先编个号
![](https://imgsa.baidu.com/forum/w%3D580/sign=02a2103ec295d143da76e42b43f08296/4e085a3e6709c93d30caf2ca953df8dcd10054f6.jpg)
5号cb中的指令是复制菜单的模板到用户打开的箱子中(用/clone),也起到了强制用户关闭箱子GUI的效果
4号cb中装的是你想执行的指令
实现ChestCommand的功能到此就结束了,但是mc还有一个特性就是鼠标原来点的东西会弹出来,十分不美观,
而且还能刷物品,于是便有了123号cb
中间是一个比较器(必须要有,因为某些原因箱子里的物品跳出来比cb慢,所以不能用条件限制的cb)
3号cb的主要用途是重置4号cb的输出,使4号cb不在发出信号,以应对下次的使用
![](https://imgsa.baidu.com/forum/w%3D580/sign=98360198db43ad4ba62e46c8b2025a89/f8214209c93d70cf7ac25630f2dcd100baa12bf6.jpg)
3号cb里的指令是这样的:/blockdata (4号cb的坐标) {SuccessCount:0},注意,这个cb朝向不能朝着1,2号cb
解释一下(cb大佬请继续无视):SuccessCount是cb给比较器发送信号的原因,当它≥1时,就会发出信号
然后再看12号cb,他们的作用就是干掉跳出来的物品
![](https://imgsa.baidu.com/forum/w%3D580/sign=8a90184ea74bd11304cdb73a6aafa488/e016ec3d70cf3bc7dd3831d1db00baa1cd112af6.jpg)
2号cb的指令是这样的/scoreboard players tag @e[type=item] add kill {Item:{tag:{<你物品的nbt>}}}
我这里的nbt是display:{Name:"<你物品的名称>"}},也就是识别物品名称
(更多的数据标签在mcwiki中有详细的树形图,有兴趣可以去看一看)
这条指令的意思是给所有物品实体中带有你的所需nbt的物品加上kill(叫啥随意,但下面的必须一致)的tag
![](https://imgsa.baidu.com/forum/w%3D580/sign=92466446db1373f0f53f6f97940f4b8b/4e2255cf3bc79f3dbbd9180db0a1cd11728b29f6.jpg)
最后在1号cb中放上/kill @e[tag=kill]
这条指令的意思是杀死所有有kill(必须和上面一致)的tag的实体
至此,单个ChestCommand的模块就做好了,如果想要更多功能,加模块就行了
————————————————————————————————————
感谢:某服务器的空岛战争的菜单给我带来的灵感
除mcbbs外,禁止转载
————————————————————————————————————
什么,你还看不懂,给你个存档你总能看懂了吧
ChestCommand.rar
大小:90.26KB下载:3次转存:0次
![](https://imgsa.baidu.com/forum/w%3D580/sign=491f8cc945166d223877159c76220945/87a21fed2e738bd4aff8b933a78b87d6267ff9e9.jpg?v=tbs)