喵内噶
全局搜索附魔 如果附魔等级大于x则禁用
看了教程贴 不太懂js 求栗子

DreamVoid
  1. js|var a=false,b=eval("("+value+")");if(b instanceof Array){for(var i in b){if(b.id==附魔序号&&b.lvl>等级){a=true;break}}}a;

  2. var a = false,b =eval("(" + value + ")");
  3. if (b instanceof Array) {
  4.     for (var i in b) {
  5.         if (b.id == 附魔序号 && b.lvl > 附魔等级) {
  6.             a = true;
  7.             break
  8.         }
  9.     }
  10. }
  11. a;
复制代码

不知道能不能帮到你

喵内噶
DreamVoid 发表于 2020-3-17 15:49
不知道能不能帮到你

这不就是教程贴上的吗
就是想问这个要怎么用

DreamVoid
喵内噶 发表于 2020-3-17 15:59
这不就是教程贴上的吗
就是想问这个要怎么用
  1. /banitem add nl:ench nv:[{lvl:附魔等级,id:附魔ID}]
复制代码

手上拿着带附魔的物品,使用上面的命令就行

喵内噶
DreamVoid 发表于 2020-3-17 16:05
手上拿着带附魔的物品,使用上面的命令就行

....看题

DreamVoid
banitem with nbt怎么ban附魔

题目怎么了?ban附魔没错啊

结城希亚
Banitem貌似无法对全局进行操作,如果只是单纯的不想让玩家拥有超过10级附魔可以试试这个插件

[修正|安全]Dupe Fixes|Illegal Stack Remover——修复高版本漏洞[1.8-1.15]
https://www.mcbbs.net/thread-849068-1-1.html
(出处: Minecraft(我的世界)中文论坛)
1) 添加修复非法附魔的选项,你可以设置超过原版的附魔等级上限。比如你设置锋利附魔的附魔等级上限为10,那么插件只会修复附魔超过10级的物品。


如果banitem真能禁的话我也学习学习


DreamVoid
本帖最后由 DreamVoid 于 2020-3-17 16:32 编辑

这是教程帖的内容:
----====Ban附魔====----
随便拿一个带附魔的物品,然后输入/banitem add nl:ench nv:,然后按一下tab,nv的值就会填上了
我这里的值nv:[{lvl:3,id:16},{lvl:2,id:21}] ,一个锋利3,一个抢夺2

我们就拿ban锋利的例子来,锋利的附魔id是16,以上字符串中id就是附魔id,lvl就是附魔等级,
然后我们改一下命令,变成/banitem add nl:ench nv:js|value.indexOf("id:16")!=-1,然后回车

value.indexOf("id:16")!=-1这句话的意思就是把NBT值作为字符串,然后使用JS语法里字符串的indexOf方法来确定id:16这个字符串的位置,如果返回-1,说物品NBT中的ench节点的值不包含id为16的附魔

当然JS解析器的功能肯定不止这么一点,你可以写复杂的语言,不过相对应的耗时就会增加,value变量可以写多个

这里一个复杂的JS解析例子
js|var a=false,b=eval("("+value+")");if(b instanceof Array){for(var i in b){if(b.id==16&&b.lvl>2){a=true;break}}}a;

var a = false,b =eval("(" + value + ")");
if (b instanceof Array) {
    for (var i in b) {
        if (b.id == 16 && b.lvl > 2) {
            a = true;
            break
        }
    }
}
a;

由于ench这个节点的值比较特殊,可以转换成数组,所以可以使用遍历,这段js的作用就是,查找id为16的附魔,如果等级大于2就禁用,只要在js语句最后一句话放上你要返回的结果就可以获取到比较结果了

编辑JS脚本的几个注意事项
   ·js语句内不能return
   ·js内的字符串中的特殊字符需要转义,例如var regx="\d{1,}"需要写成var regx="\\d{1,}"
   ·如果js语句太长了想要直接编辑文件,一定要注意单引号的转义,单引号是配置文件的边界符号,所以如果字符串
       中包含了单引号,写到文件里一定要改成两个,所以可以的话,尽量不要使用单引号,可以使用双引号代替单引号

既然说了“任意附魔物品”那么和手上拿着什么物品就是没关系的,只认什么附魔和附魔等级
该文段倒数第二段说了
由于ench这个节点的值比较特殊,可以转换成数组,所以可以使用遍历,这段js的作用就是,查找id为16的附魔,如果等级大于2就禁用,只要在js语句最后一句话放上你要返回的结果就可以获取到比较结果了

楼主说要怎么用,我也把命令用法发了一遍,这个命令是不管你手上附魔的是什么物品
因为
随便拿一个带附魔的物品

因此我根据这个判断此命令是全局禁用附魔的命令
如果我的判断有误,那么我对我浪费楼主的时间误导楼主说声抱歉,如果楼主的问题没有得到解决,建议楼主一周后前往https://www.mcbbs.net/thread-256348-1-1.html申请关闭帖子退回悬赏



GiNYAi
看了一下 聪聪的banitem 是需要每个物品分别设置的

(但是EpicBanitem不用

喵内噶
GiNYAi 发表于 2020-3-17 16:39
看了一下 聪聪的banitem 是需要每个物品分别设置的

(但是EpicBanitem不用

啊 想要spigot插件orz

喵内噶
DreamVoid 发表于 2020-3-17 16:29
这是教程帖的内容:

既然说了“任意附魔物品”那么和手上拿着什么物品就是没关系的,只认什么附魔和附魔等 ...

比起一味的搬教程 不如给个实际例子

第一页 上一页 下一页 最后一页