Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 34445|回复: 90

[服务器应用] Banitem With NBT使用教程---附下载地址

  [复制链接]
Army_Master 当前离线
积分
2458
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-8-28
查看详细资料
头像被屏蔽
 楼主| 发表于 2019-5-12 15:33:56 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 Army_Master 于 2019-12-22 19:47 编辑

适用服务端:
|Cauldron| |CraftBukkit| |Bukkit| |Spigot| |Catserver|

本帖不提供下载地址只提供使用教程
插件下载地址: 在9楼!
功能
   ·根据多级NBT的值(支持JavaScript,正则表达式解析)来禁用物品和地上的方块
   ·在NBT上搜索,移除禁用物品
   ·玩家切换手上物品时检查物品权限
   ·玩家登陆时检查背包栏,和已经支持的mod的背包来检查物品权限
     当前支持的背包有 Baubles饰品背包,匠魂背包,旅行者装备背包
   ·使用命令检查指定玩家背包
   ·区块加载时没收黑名单方块(默认关闭,而且貌似有时候无效)
   ·没事无聊可以看看物品的NBT

   

    什么,为啥NBT禁用节点不能替换为星号,不写@NBT禁用节点不就等于是星号了么
   ·允许为NBTTagList与NBTTagCompound类型的NBT设置默认值,默认值必须严格遵循Json格式
    可以使用在线的Json格式检查器检查Json格式,注意,由于Json中会有中括号和大括号,配置到Yaml
    配置文件中时,请在json字符串两端加上单引号,不然会被解析成Yaml的配置结构,如果使用命令添
    加的,我觉得十有**会自动加上单引号



权限,所有权限op拥有(可以通过添加非权限取消)


BanItem.*:
    BanItem所有权限
    权限默认所有者: 管理员
    子权限:
        BanItem.bypass: true
        BanItem.cmdcomplete: true
        BanItem.cmd: true
# 对于BanItem.bypass权限,配置文件中启用相应的配置
# 例如一个子id为0的箱子的use权限被禁了
# 启用Permission.CheckItemId,权限检查会检查BanItem.bypass.use.54这样的权限
# 启用Permission.CheckItemDamage,权限检查会检查BanItem.bypass.use.54@0这样的权限
# 两者都未启用,只会检查BanItem.bypass.use这样的权限
#免检查权限的基本格式为 BanItem.bypass.禁用Flag.物品类型@物品子id@NBT禁用节点
#NBT禁用节点就是禁用配置里的那个NBT节点名字
#其中,禁用Flag,物品子id均可以替换为星号
BanItem.bypass:
    跳过禁用物品检查的权限
    权限默认所有者: 管理员
    子权限:
        # 破坏方块的权限
        BanItem.bypass.break: true
        # 合成物品的权限
        # 此权限仅在玩家点击结果格子的物品时才会触发检查,例如工作台,炉子
        BanItem.bypass.craft: true
        # 拿着该物品的权限,此权限处理有缺点
        # 如果玩家快捷栏全是没有hold权限的物品,那么就没有意义了
        BanItem.bypass.hold: true
        # 与方块交互的权限
        BanItem.bypass.interact: true
        # 基本所有的权限,检查玩家背包,放置,点击,丢弃,切换,基本所有事件都需要检查该权限
        BanItem.bypass.inv: true
        # 放置方块的权限
        BanItem.bypass.place: true
        # 使用物品的权限
        BanItem.bypass.use: true
BanItem.bypass.*.物品id
    此权限3.0.31及以后的版本才存在
    跳过某个物品所有禁用Flag检查的权限
    物品id支持数字id和文字id
    例如,以前版本,如果你禁了箱子的use和hold权限,这时候想给某个玩家用
    那么你必须同时给该玩家BanItem.bypass.use.54和BanItem.bypass.hold.54两个权限
    非常的繁琐,所以这时候就可以改用给该权限BanItem.bypass.*.54直接给所有Flag的权限
    不要忘记将配置中Permission.CheckItemId设置为true,否则此权限无效
BanItem.bypass.useintnbt
    在nbt中使用物品的权限,例如法杖核心,枪械mod的子弹
    权限默认所有者: 管理员
BanItem.cmdcomplete:
    自动补全命令的权限  
    权限默认所有者: 管理员
BanItem.cmd
    所有命令的权限
    权限默认所有者: 管理员
    子权限:
        BanItem.cmd.help: true
        BanItem.cmd.item: true
        BanItem.cmd.nbt: true
        BanItem.cmd.nbtdump: true
        BanItem.cmd.reload: true
        BanItem.cmd.scan: true
        BanItem.cmd.show: true
        BanItem.cmd.param: true
BanItem.cmd.help:
    获取插件帮助的权限
    权限默认所有者: 管理员
BanItem.cmd.add:
    添加物品到禁用物品列表的权限
    权限默认所有者: 管理员
BanItem.cmd.remove:
    从禁用物品列表移除物品的权限
    权限默认所有者: 管理员
BanItem.cmd.nbt:
    操作NBT检查物品列表的权限
    权限默认所有者: 管理员
    子权限:
        BanItem.cmd.nbt.add: true
        BanItem.cmd.nbt.remove: true
        BanItem.cmd.nbt.show: true
BanItem.cmd.nbt.add:
    添加物品到NBT检查物品列表的权限
    权限默认所有者: 管理员
BanItem.cmd.nbt.remove:
    从NBT检查物品列表移除物品的权限
    权限默认所有者: 管理员
BanItem.cmd.nbt.show:
    显示NBT检查物品列表配置的权限
    权限默认所有者: 管理员
BanItem.cmd.nbtdump:
    获取物品NBT节点列表的权限
    权限默认所有者: 管理员
BanItem.cmd.param:
    查看参数帮助的权限
    权限默认所有者: 管理员
BanItem.cmd.reload:
    插件重载总权限
    权限默认所有者:管理员
    子权限:
        BanItem.cmd.reload.config: true
        BanItem.cmd.reload.help: true
        BanItem.cmd.reload.lang: true
        BanItem.cmd.reload.list: true
        BanItem.cmd.reload.plugin: true
BanItem.cmd.reload.plugin:
    重载插件的权限
    权限默认所有者: 管理员
BanItem.cmd.reload.config:
    重载插件配置的权限
    权限默认所有者: 管理员
BanItem.cmd.reload.help:
    获取重载命令帮助的权限
    权限默认所有者: 管理员
BanItem.cmd.reload.lang:
    重载插件语言文件的权限
    权限默认所有者: 管理员
BanItem.cmd.reload.list:
    重载禁用物品列表和NBT检查物品列表的权限
    权限默认所有者: 管理员
BanItem.cmd.scan:
    扫描玩家背包的权限
    权限默认所有者: 管理员
BanItem.cmd.show:
    显示禁用物品列表配置的权限
    权限默认所有者: 管理员




命令  所有命令支持Tab自动补全


命令规则
中括号[]包裹的表示该项可填可不填,尖括号<>包裹的表示该项为必填,
竖线|分隔的表示多个可选项,例如<false|true>,表示必填,可选值为false和true
可选参数为可写可不写的项,具体意义参考命令参数模块


/banitem add [参数:值]
    可选参数: item,damage,world,nbtlabel,nbtvalue,flag,reason,confiscate,preferlist,defnbtvalue
    添加物品配置到禁用物品列表

/banitem remove [参数:值]
    可选参数: item,damage,world,nbtlabel,nbtvalue,preferlist
    从禁用物品列表中移除物品配置

/banitem show [参数:值]
    可选参数: item,damage,world
    显示指定物品id在禁用物品列表中的配置

/banitem nbt add [参数:值]
    可选参数: item,damage
    添加物品配置到NBT物品检查列表

/banitem nbt remove [参数:值]
    可选参数: item,damage
    从NBT物品检查列表移除物品配置

/banitem nbt show [参数:值]
    可选参数: item,damage
    显示指定物品id在NBT物品检查列表中的配置

/banitem nbtdump
    显示当前手上物品的NBT,若当前手上物品为空,将尝试显示鼠标所指方块的NBT

/banitem param [参数标签]
    显示命令参数的作用

/banItem help [页数]
    获取banitem插件命令的帮助

/banitem reload config
    重载插件主配置

/banitem reload lang
    重载插件语言文件

/banitem reload list
    重载禁用物品列表,NBT检查物品列表

/banitem reload [plugin]
    重载插件




命令参数  所有参数支持Tab自动补全


很多人都不知道参数是干嘛用的,都认为很难理解,其实完全不用担心,比起一个需要输入一定
顺序的5+以上的命令参数,前缀可以指定你输入参数的作用意义而且不用考虑顺序

举个例子,我们要添加一个人,命令是/人 添加,但是人有很多属性,比如性别,年龄等
这时候我们就需要指定那些属性的值,然后命令就是/人 添加 年龄:100 性别:男
有时候,觉得性别这个词数量太多了,想要有个缩写,然后就变成了/人 添加 年龄:100 性:男
BanItem插件也是,类似

参数使用规则就是/命令 [子命令] 参数前缀:值...

各个参数介绍:

PreferList:(3.2.1版本及以上)
    简写: pl
    说明: 设置操作的自定义禁用列表
    默认值: 无默认值

DefNBTValue:(3.2.01版本及以上)
    简写: dnv
    说明: 设置在某个物品因为某个NBT节点被禁用时,将该NBT节点的值替换成的值
    3.2.3版本开始允许为NBTTagList与NBTTagCompound类型的NBT设置默认值,默认值必须严格遵循Json格式
    可以使用在线的Json格式检查器检查Json格式,注意,由于Json中会有中括号和大括号,配置到Yaml
    配置文件中时,请在json字符串两端加上单引号,不然会被解析成Yaml的配置结构
    应用: 例如植物魔法的泰拉镐,mana节点
    默认值: 无默认值

Confiscate:
    简写: c
    说明: 设置是否没收物品
    可用值: t,true,yes,f,false,no
    默认值: 无默认值

Damage:
    简写: d
    说明: 设置操作的物品的子id,-1代表全部子id
    默认值: 如果当前输入命令的是玩家,那么默认值会读取玩家手中物品的damage值,
        如果手中没有物品,或者是控制台发送的命令,那么damage将不设置值
        此时,如果使用例如/banitem remove i:54将会移除箱子节点下的所有配置
            3.0.03开始,如果玩家设置了NBTLabel的值,将会自动填充子id为手上物品的子id
        如果手上物品不存在,那么就设置为-1

Flag:
    简写: f
    说明:设置物品禁用的权限,用逗号分隔多个权限
    默认值:无默认值

Item:
    简写: i
    说明:设置操作的物品类型
    默认值:如果当前输入命令的是玩家,那么默认值会读取玩家手中物品类型
        如果手中没有物品,或者是控制台发送的命令,将会报错

NBTLabel:
    简写: nl
    说明: 设置操作的物品的NBT标签
    默认值: 无默认值

NBTValue:
    简写: nv
    说明: 设置操作的物品的NBT标签的值
    默认值: 无默认值,此值的格式有要求
        *,直接编辑配置文件的记得在两边加单引号,不然配置读取会报错,代表禁掉所有包含
            NBTLabel的NBT,此目的也可以通过不设置NBTValue的值来实现
        以normal|开头的正常NBT值,比如我要禁掉abc这个NBT,那么就要写成nv:normal|abc
        以reg|开头的正则表达式类型的NBT值,比如我要禁掉NBT全是数字时的NBT,那么
            就要写成nv:reg|\d+
        以js|开头的JavaScript类型的NBT值,变量名为value,及在使用js解析时,value是
            一个已经帮你填好值的变量,比如我要禁掉泰拉镐mana大于666的镐子,那么完
            整的命令(手拿镐子的情况下)/bi add d:-1 nl:mananv:js|value>666

Reason:
    简写: r
    说明:设置物品禁用的原因
    默认值:无默认值,在添加到配置文件之后,插件加载该配置时,如果未发现Reason这个配置
        将会尝试想他的父配置查找Reason这个配置,如果父节点也没有,那么将读取自配置

World:
    简写: w
    说明:设置操作的世界
    默认值:如果是玩家,那么默认值就是玩家所在的世界,如果是控制台,那么就是默认世界,
            那么,玩家如何指定默认世界呢?使用w:/default/,代表就是默认世界




所有物品禁用权限(Flag)


Drop:
    需要3.0.31版本及以上才有该Flag
    描述: 物品丢弃
    适用事件: 物品丢弃事件,可以用来防止熊孩子乱丢铀238

Pickup:
    需要3.0.31版本及以上才有该Flag
    描述: 物品拾取
    适用事件: 物品拾取事件

Break:
    描述: 方块破坏
    适用事件: 方块破坏事件

Craft:
    描述: 取出合成物品
    适用事件: 背包点击事件

Hold:
    描述: 切换物品拿着东西事件
    适用事件: 切换物品事件

Interact:
    描述: 交互方块
    适用事件: 玩家交互事件

Inv:
    描述: 背包内存在
    适用事件: 几乎插件监听的所有事件适用

Place:
    描述: 方块放置
    适用事件: 方块放置事件

Use:
    描述: 使用物品
    适用事件: 玩家交互事件

UseInNBT:
    描述: 在NBT中使用的权限
    适用事件: 玩家交互事件




配置多世界继承




配置例子


/default/:
    该节点不代表任何世界它指代全局设置
    如果别的世界未设置继承或者未配置过继承设置比如我有一个世界
    叫abc,但是未出现在上面的配置中那么abc这个世界的禁用物品配置
    将会默认继承自全局世界

Inhert节点:
    该节点设置此世界继承哪些世界的配置,例如上面的main世界继承
    world世界的设置

Perfer节点:
    该节点设置继承哪些禁用列表的配置,此处的禁用列表文件位置在插件目录的
    PreferItemList文件夹下,例如以上配置中world世界配置了此项,那么插件会到PreferItemList
    文件夹下查找名叫ic2.yml的禁用物品列表然后加载并和world中的禁用物品进行合并,
    合并只在内存中发生不会影响到world文件的配置

非继承配置例子:
    /default/
        Prefer
        - 只能主世界用
    world
        Prefer
        - -只能主世界用
这样配置之后,"只能主世界用"这个禁用列表里面的物品就只能在world世界用了


嗯,很多人反正就是怎样都看不懂上面的配置,我就直接举例子
1. 我要在main世界禁用某物品
    惯例管理会输入命令bi add w:main命令,然后插件会提示main世界未配置
    此时需要在配置中这么写
    InhertItemList:
      plot: {}
    也可以这么写
    InhertItemList:
      plot:
        Inhert:
        - /default/
    效果是一样的
    你说Inhert什么意思不知道,怎么用? 请用百度翻译
    其中/default/为默认配置,就是插件目录下面的那个禁用列表配置
    配置完了记得重载,重载,重载
2. 我要在m1,m2,m3,m4里面都禁用某个配置
    首先,按第一个条的,四个世界都配置起来,看起来应该像下面这样子
    InhertItemList:
      m1: {}
      m2: {}
      m3: {}
      m4: {}
    然后你就开始在四个世界输入命令了,到第二个世界突然想起来,不是有Inhert这个功能么
    嗯,可以在世界m1中禁用,然后其他世界继承m1世界的配置就好了吧,然后就是下面这个样子
    InhertItemList:
      m1: {}
      m2:
        Inhert:
        - m1
      m3:
        Inhert:
        - m1
      m4:
        Inhert:
        - m1
    然后你想想又有些地方不对,我m1世界有些别的禁用东西不需要在其他世界禁用,但是确实有
    很多相同的东西只要在这四个世界禁用
    这时候Prefer配置项就起到作用了
    比如这四个世界都要禁用的东西我给他取个名字,叫"四世界禁用列表"
    然后你会使用.bi add pl:四世界禁用列表来为这个列表增加禁用配置
    在接着配置继承列表,像下面这样子
    InhertItemList:
      m1:
        Prefer:
        - 四世界禁用列表
      m2:
        Prefer:
        - 四世界禁用列表
      m3:
        Prefer:
        - 四世界禁用列表
      m4:
        Prefer:
        - 四世界禁用列表




如何配置防止法杖使用禁用核心(类似还有枪,植物魔法透镜)


1.先手上拿着法杖输入/banitem nbt add d:-1
    不用担心上面这个命令,上面这个并不是ban物品的命令,只是把法杖加到nbt检查列表
2.拿着要ban的核心输入/banitem add f:useinnbt
    此命令值禁止了核心在NBT中使用的权限
    如果想要设置没收,/banitem add f:useinnbt c:true

操作完毕之后,核心上到法杖上后,插件会到法杖的nbt中查找被禁用的物品
如果配置了核心没收,那么法杖会一起被没收
如果你不想法杖被一起没收,可到主配置文件中设置配置节点RemoveBanedItemFromNBT为true
这样只要法杖本身没被禁,就只会移除被禁用的核心,法杖不会被没收




如何配置相同id的[物品/方块(地上的)]


----------------==物品篇==----------------

1.手上先拿着要ban的物品,输入/banitem nbtdump,结果如下(这是一把拔刀)



2.鼠标移到复制那里,点一下就能快速生成禁用该物品某个NBT节点的命令了,拔刀的话选CurrentItemName
    说明一下生成的命令的意思
    add就是添加
    nl:CustmonMaxDamage  ,nl指NBTLabel也可以用全拼,后面的就是NBT标签
    nv:flammpfeil.slashblade.named.nihilul,nv指NBTValue,后面就是对应NBT标签的值,这里的nv值还加了normal|的前缀,指示这是一个普通的nbt
    还可以更改[d,damage]子id参数为-1,-->d:-1,因为拔刀有耐久
    如果你手动输入到了/banitem ban add nl:    按一下Tab就可以出提示,效果和这个差不多

3. 回车后还会有提示,你添加了什么样的物品配置到了文件



4.如果还觉得不清楚,你还可以使用/banitem show命令显示这个物品都ban了什么子id和NBT
    对于上面的例子,手里拿着的东西不变,输入/banitem show
    show命令可用的参数有三个
        [w,world]  世界,如果没有设置,默认当前玩家世界
        [i,item]  物品,如果没有设置,默认使用手上的,可以是数字,也可以是英文
        [d:damage] 子id,如果没有设置,默认打印全部的子id



    输完命令后出来的结果就是这样子,点击蓝色的字体可以快速生成删除该配置节点的命令
----------------==物品篇结束==----------------


----------------==方块篇==----------------

除非你不想玩家和这个方块交互,不然ban相同id的方块并没啥用,对于植物魔法,就算把地上的花ban了,只要撸掉下面的土还是可以的

1.鼠标对着要ban的方块输入/banitem nbtdump  此时你手上不能拿着东西

2.比如以下的植物魔法



3.接下来就和ban物品一样了,植物魔法方块区别类别的就是subTileName

4.然后地上的花直接撸就不能撸掉了

----------------==方块篇结束==----------------





如何设置物品NBT值来使用JS解析(Ban附魔和泰拉镐为例子)


插件如何判断是使用正常的字符串匹配来比较还是用js解析呢,如果是js脚本,你的nbt值中必须以js|为开头,然
后在进行JS语法的解析,再根据解析结果来确定这个物品的NBT是不是被禁用的,nbt的值将通过value这个变量传入

----====泰拉镐例子====----


泰拉镐子根据等级不同可以挖不同数量的方块,所以一些服务器会想办法禁掉高等级的泰拉镐,但是
泰拉稿子的等级是根据魔力的多少来决定的,是一个范围型的NBT,banitem插件不可能把每个数字都
加到禁用列表里,这时候就需要使用JS解析功能,这样输入

/banitem add d:-1 nl:mana nv:js|value>99999999


nv参数的值设置为js|value>9999999,意思就是这个物品的NBT中mana节点的值只要大于9999999都会被禁用
当然你也可以使用正则表达式,reg|\d{8,}匹配到8位数字,那就肯定是大于9999999



添加结果


添加之后,如果nv参数中的值以js|开头,会对这个值进行JS解析的数字和字符串变量替换的测试,如果两项测试都没有通过,那么就认为这个js脚本写错了,需要重写


测试不通过的情况


另外,在版本3.2.0中新出的DefaultNBTValue参数,可以将禁用命令稍加修改为
/banitem add d:-1 nl:mana nv:js|value>99999999 c:f dnv:99999999
这样可以自动将高等级的泰拉镐修改到允许的等级,而不是全盘的禁用导致玩家再也无法使用该镐子


----====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语句太长了想要直接编辑文件,一定要注意单引号的转义,单引号是配置文件的边界符号,所以如果字符串
       中包含了单引号,写到文件里一定要改成两个,所以可以的话,尽量不要使用单引号,可以使用双引号代替单引号





常见问题与回答


注意,此问答只针对3.x版本的banitem插件


问: 怎么禁用镐子等有耐久的物品
答: 手拿要禁用的物品,输入/banitem add damage:-1,
    damage:-1表示所有子id,3.1.03版本允许使用damage:*
    命令的简单写法为/bi add d:-1

问: 怎么禁止物品使用,但是还能参与合成
答: 手拿要禁用的物品,输入/banitem add flag:use confiscate:false,
    flag:,就是要禁用的权限,use就禁用使用权限,多个权限用逗号分隔
    confiscate:,设置是否没收,false或者f或者no表示不没收
    命令的简单写法为/bi add f:use c:f

问: 使用/banitem nbtdump后,点击复制生成的命令提示nv参数无效
答: 一般上生成的命令为/banitem add d:0 nl:xxxxxx nv:yyyyyyy
    无效的原因是因为nv参数即nbtvalue需要指定类型(参考命令参数模块的说明)
    所以在复制命令后,需要将nv:yyyyyyy改为nv:normal|yyyyyyy
    3.1.03版本不强制添加normal前缀,默认则为此类型的NBT

问: 我禁了泥土(比较**的例子),然后玩家一点地上的泥土就消失了,我不想它消失,但是背包里还是要没收
答: 将泥土的id添加到主配置文件中的BanItem.BlocksNotSetToAir节点即可

问: 我用命令/bi add禁了某个物品,怎么给某个玩家权限
答: 首先,你需要将主配置Permission.CheckItemId设置为true
    然后,给该玩家添加BanItem.bypass.*.物品id 的权限,物品id可以是数字id
    或者文字id,如果只想给使用权限怎么办,使用权限是BanItem.bypass.use.物品id
    use就是使用Flag的名字

问: 怎么禁止熊孩子在主城丢铀238害人
答: 可以通过禁掉drop权限达到目的/bi add flag:drop confiscate:false
    flag:,就是要禁用的权限,use就禁用使用权限,多个权限用逗号分隔
    confiscate:,设置是否没收,false或者f或者no表示不没收,当然为了惩戒熊孩子,也可以设置为没收
    最好配置一下多世界继承,只在主城禁止丢弃
    你也可以使用贵重物品插件来达到相同目的

问: 为什么我禁了法杖核心的useinnbt权限,玩家还是能在法杖中使用核心
答: 禁了法杖核心的权限之后,你还需要将法杖添加到NBT物品检查列表
    手拿法杖输入/bi nbt add d:-1,那是不是所有的法杖都要拿手上打一次指令
    呢?不用的,一般上法杖的大id都是一样得,既然命令里指定了damage:-1这个
    参数,那么就是指所有的子id也包括了
    这条命令的就是将法杖添加到nbt检查列表,这个列表的作用就是在玩家使用
    该物品时,会在该物品的nbt中检索物品是否被禁用

问: 为什么我禁了某个物品,但是该物品已经放置在地上的方块不没收
答: 三种可能
        第一种 原本物品是没有子id的,但是放置到地上之后就有了子id
    但是,直接手拿物品输入/bi add只ban了0这个子id,地上的其他物品子id没ban,所以
    不会没收,这时候,你需要将命令改成/bi add d:-1,当然要确定其他子id没有其他
    物品,防止误ban,典型的就是箱子
        第二种 你手上的物品与地上的物品id根本就不是一样的,典型的就是木牌
        第三种 如果你是用NBT ban的物品,那么就是可能物品的标志名称变了,典型的
    就是植物魔法的花,植物魔法的花物品状态在手上时,区分类型的nbt名字是type,但
    是在地上时是subTileName,这时候两种NBT就都需要ban一遍,具体可以用nbtdump
    命令查看一下


评分

参与人数 12人气 +18 金粒 +40 收起 理由
1374825703 + 1 + 15 真的帮了很多 点个赞
minecraft12581 + 1 MCBBS有你更精彩~
Louis-2000 + 1 MCBBS有你更精彩~
Kavintion + 2 真的不错!
星空幻梦 + 2 MCBBS有你更精彩~
Phan.Less + 1 MCBBS有你更精彩~
huangwu07 + 1 + 10 MCBBS有你更精彩~
星际要塞 + 2 神乎其技,不服不行!
憨憨冰棍 + 2 丢失的教程 回来了!!!
逍遥灬路人 + 1 MCBBS有你更精彩~
MIKAZE3 + 2 + 15 666,好插件
0ojixueseno0 + 2 MCBBS有你更精彩~

查看全部评分

inuEbisu 当前离线
积分
9879
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-7-24
查看详细资料
发表于 2019-5-12 15:45:10 | 显示全部楼层
em, 请问一下, BanItem with NBT 插件在哪里可以获取到呢
回复

使用道具 举报

skyliye 当前离线
积分
17652
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-11-24
查看详细资料
发表于 2019-5-12 16:33:50 | 显示全部楼层
tutity_tiger 发表于 2019-5-12 15:45
em, 请问一下, BanItem with NBT 插件在哪里可以获取到呢

由于原作者个人原因,清空了发在论坛内的帖子,目前这个插件可以百度搜索,在其他论坛能找到

评分

参与人数 2人气 +2 收起 理由
minecraft12581 + 1 MCBBS有你更精彩~
0ojixueseno0 + 1 很想知道是什么个人原因..

查看全部评分

回复

使用道具 举报

1723624171 当前离线
积分
3553
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-11-10
查看详细资料
头像被屏蔽
发表于 2019-5-12 19:15:55 | 显示全部楼层
tutity_tiger 发表于 2019-5-12 15:45
em, 请问一下, BanItem with NBT 插件在哪里可以获取到呢

去码云下载
回复

使用道具 举报

yuen27787231 当前离线
积分
632
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-5-14
查看详细资料
发表于 2019-5-20 16:24:49 | 显示全部楼层
有了這個就可以BAN掉不想出現的物品了
回复

使用道具 举报

1318314268 当前离线
积分
1433
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-2-2
查看详细资料
发表于 2019-5-26 14:31:46 | 显示全部楼层
能不能和banitem一起加,还是只能加一个另外一个就不能加
回复

使用道具 举报

Army_Master 当前离线
积分
2458
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-8-28
查看详细资料
头像被屏蔽
 楼主| 发表于 2019-5-26 21:26:19 | 显示全部楼层
1318314268 发表于 2019-5-26 14:31
能不能和banitem一起加,还是只能加一个另外一个就不能加

有了这个就不需要任何禁用插件了,近乎全能
回复

使用道具 举报

逍遥灬路人 当前离线
积分
351
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-7-20
查看详细资料
发表于 2019-6-23 01:33:26 | 显示全部楼层
mcbbs有你更精彩
回复

使用道具 举报

xmdhs 当前离线
积分
76155
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2016-4-24
查看详细资料
发表于 2019-6-24 16:09:57 | 显示全部楼层
聪聪dalao搞了个构建站,那里有下 https://ci.uraniummc.cc/job/BanItem/

评分

参与人数 6人气 +8 收起 理由
小帅120 + 2 MCBBS有你更精彩~
AKA_Sky + 1 神乎其技!6的飞起!
Marig_Weizhi + 1 MCBBS有你更精彩~
SmallKK123 + 2 MCBBS有你更精彩~
$$$$$$$$$$$$$$$ + 1 MCBBS有你更精彩~
Army_Master + 1 MCBBS有你更精彩~

查看全部评分

回复

使用道具 举报

3197596894 当前离线
积分
723
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-9-18
查看详细资料
发表于 2019-6-25 09:59:12 | 显示全部楼层
当我ban完物品后重启服务器又解ban了,有人说是写入保护请问怎么破~
回复

使用道具 举报

Army_Master 当前离线
积分
2458
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2015-8-28
查看详细资料
头像被屏蔽
 楼主| 发表于 2019-6-25 11:37:14 | 显示全部楼层
3197596894 发表于 2019-6-25 09:59
当我ban完物品后重启服务器又解ban了,有人说是写入保护请问怎么破~

换一个插件版本,可能跟你的服务端不兼容吧
回复

使用道具 举报

26790top 当前离线
积分
2278
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-8-19
查看详细资料
发表于 2019-6-27 07:53:22 | 显示全部楼层
捡到宝了!感谢分享!
回复

使用道具 举报

索隆嘎嘎嘎 当前离线
积分
526
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-4-18
查看详细资料
发表于 2019-6-27 08:07:22 来自手机 | 显示全部楼层
很详细感谢分享
回复

使用道具 举报

Xiao_FD 当前离线
积分
251
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2019-6-28
查看详细资料
发表于 2019-6-28 23:12:53 | 显示全部楼层
很有用 不过有点没看懂
回复

使用道具 举报

1014333614 当前离线
积分
88
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-8-24
查看详细资料
发表于 2019-6-29 13:48:43 | 显示全部楼层
为什么我ban了个物品别人还是可以用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2022-1-17 14:41 , Processed in 0.084120 second(s), Total 26, Slave 25 queries, Release: Build.2021.11.26 1022, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表