事情的起因是这样的,我们都知道
ScriptBlockPlus
插件支持在交互时使用物品
比如原帖中这么写到:
[$item:物品英文名 数量]
[$item:物品英文名:子ID 数量]
玩家必须消耗背包里特定数量的该物品才能触发脚本,物品可以是英文ID也可以是数字ID
请注意冒号和空格的区别
举例:/sbp interact create [$item:wool:1 2][@bypass /heal]
创建一个脚本方块,玩家必须消耗两个橙色羊毛点击,才能治疗自己
(需要注意的是高版本Minecraft已经使用英文全称替代了“子ID”这一概念,比如wool:1应该写成orange_wool,在输入物品名称时请注意这一点!)
通过这个功能,我们很容易就能用它来造一个牌子商店(收购,售出),或者让玩家以物易物
但是在mod服中, 这个功能很难使用 ,因为高版本需要物品的 英文全称 ,虽然我们可以在 我的世界中文WIKI 里查到原版物品的英文名,但mod物品多种多样,是查不到的
如果名字写错,就会导致插件完全不认,一直报错,如图:
所以这个时候,我们就可以通过 /give 指令来获取物品的 真实名字
比如说,我们现在想用插件实现用自定义NPCmod里的铁币换取1000游戏币
首先,同时按下F3+H,开启高级提示框
然后,将鼠标移到你要使用的物品上,找到它的数字id
如图,铁币在我们服务器为4320
如果这时直接将数字id填入$item:后面,仍然会报错
所以我们使用/give 你的id 物品id 1来获取物品
然后我们就可以获得这个物品的英文名字了, 注意:使用时要把各个单词用下划线“_”连在一起
比如说这个物品就叫做 variedcommodities_coin_iron
然后,我们就可以使用指令
/sbp interact create [$item: variedcommodities_coin_iron 1][@bypass /eco give <player> 1000]
再右键方块就可以了~
后记:虽然这个方法很简单,但我觉得它有一定的实用性,对于任何物品,都可以用这种方法来获取名字,其他插件可能也同样适用,所以就分享上来了
如果这篇教程能帮上你的话,就请评个分吧,谢谢各位了QWQ