- 版权类型
- 转载
- 插件中文名称
- 物品禁用、物品封禁
- 插件英文名称
- Banitem With Nbt
- 支持的核心(服务端)
- Spigot
- Paper
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- 任意一款权限插件(可选)
- 适配版本(Java)
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
- 1.7
站内不提供插件下载,请到原帖下载!
介绍内容大多都来自:https://web.archive.org/web/20181013052631/http://www.mcbbs.net/thread-552368-1-1.html
介绍内容大多都来自:https://web.archive.org/web/20181013052631/http://www.mcbbs.net/thread-552368-1-1.html
- 根据多级NBT的值(支持JavaScript,正则表达式解析)来禁用物品和地上的方块
- 在NBT上搜索,移除禁用物品
- 玩家切换手上物品时检查物品权限
- 玩家登陆时检查背包栏,和已经支持的mod的背包来检查物品权限(当前支持的背包有:Baubles、匠魂背包、旅行者装备背包)
- 使用命令检查指定玩家背包
- 没事无聊可以看看物品的NBT
权限 | 解释 | 子权限 | 示例格式 |
BanItem.* | 插件所有权限 | ||
BanItem.bypass | 无视物品封禁继续使用 | ||
BanItem.bypass | 跳过禁用物品检查的权限(若想跳过特定物品特定事件检查则见子权限格式) 注:Flag见文章下面说明,若Flag设置成“*”则代表绕过所有Flag检查权限 注:使用前请去config配置文件内开启CheckItemId和CheckItemDamage这两个选项,否则给了权限也还是不可使用!!! | BanItem.bypass.<禁用Flag>.<物品类型>@<物品子id>@<NBT禁用节点> | BanItem.bypass.*.1(跳过物品ID为1的检查) BanItem.bypass.*.279@57(跳过物品ID为279:1的检查) |
BanItem.cmd | 所有命令操作的权限 | BanItem.cmd.help BanItem.cmd.item BanItem.cmd.nbt BanItem.cmd.nbtdump BanItem.cmd.scan BanItem.cmd.show BanItem.cmd.param BanItem.cmd.help BanItem.cmd.add BanItem.cmd.remove BanItem.cmd.nbt
| |
BanItem.cmdcomplete | 自动补全命令的权限 |
命令 | 解释 | 补充 |
/banitem add [参数:值] | 添加物品配置到禁用物品列表 | 可选参数: item,damage,world,nbtlabel,nbtvalue,flag,reason,confiscate,preferlist,defnbtvalue |
/banitem remove [参数:值] | 从禁用物品列表中移除物品配置 | 可选参数: item,damage,world,nbtlabel,nbtvalue,preferlist |
/banitem show [参数:值] | 显示指定物品id在禁用物品列表中的配置 | 可选参数: item,damage,world |
/banitem nbt add [参数:值] | 添加物品配置到NBT物品检查列表 | 可选参数: item,damage |
/banitem nbt remove [参数:值] | 从NBT物品检查列表移除物品配置 | 可选参数: item,damage |
/banitem nbt show [参数:值] | 显示指定物品id在NBT物品检查列表中的配置 | 可选参数: item,damage |
/banitem nbtdump | 显示当前手上物品的NBT,若当前手上物品为空,将尝试显示鼠标所指方块的NBT | 可选参数: item,damage |
/banitem param [参数标签] | 显示命令参数的作用 | |
/banItem help [页数] | 插件帮助 | |
/banitem reload | 插件重载 | /banitem reload config /banitem reload lang /banitem reload list /banitem reload plugin |
[TABLE=collapse,right]
[TR]
[TD]
[TD]
[TD]
[/TR]
[TR]
[TD]
[TD]
[TD]比如拔刀某刀被ban,那么此时会自动替换成什么拔刀
简写:dnv[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]简写:pl[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]可用值:t,true,yes,f,false,no
简写:c[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]简写:d[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]Flag参数见下方表格
简写:f[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]比如:i:279(对物品ID为279的进行操作)
简写:i[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]简写:nl[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]简写:nv[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]简写:r[/TD]
[/TR]
[TR]
[TD]
[TD]
[TD]用途最后讲解
简写:w[/TD]
[/TR]
[/TABLE]
[TR]
[TD]
参数名
[/TD][TD]
解释
[/TD][TD]
补充
[/TD][/TR]
[TR]
[TD]
DefNBTValue
[/TD][TD]
设置在某个物品因为某个NBT节点被禁用时,将该NBT节点的值替换成的值
[/TD][TD]比如拔刀某刀被ban,那么此时会自动替换成什么拔刀
简写:dnv[/TD]
[/TR]
[TR]
[TD]
PreferList
[/TD][TD]
设置操作的自定义禁用列表
[/TD][TD]简写:pl[/TD]
[/TR]
[TR]
[TD]
Confiscate:<true或false>
[/TD][TD]
设置是否没收物品
[/TD][TD]可用值:t,true,yes,f,false,no
简写:c[/TD]
[/TR]
[TR]
[TD]
Damage:<值>
[/TD][TD]
设置操作的物品的子id,-1代表全部子id
[/TD][TD]简写:d[/TD]
[/TR]
[TR]
[TD]
Flag:<值>
[/TD][TD]
设置物品禁用的权限,用逗号分隔多个权限
[/TD][TD]Flag参数见下方表格
简写:f[/TD]
[/TR]
[TR]
[TD]
Item:<物品ID或名称>
[/TD][TD]
对哪个物品进行操作
[/TD][TD]比如:i:279(对物品ID为279的进行操作)
简写:i[/TD]
[/TR]
[TR]
[TD]
NBTLabel:<值>
[/TD][TD]
设置操作的物品的NBT标签
[/TD][TD]简写:nl[/TD]
[/TR]
[TR]
[TD]
NBTValue:<值>
[/TD][TD]
设置操作的物品的NBT标签的值
[/TD][TD]简写:nv[/TD]
[/TR]
[TR]
[TD]
Reason:<理由>
[/TD][TD]
设置物品禁用的原因
[/TD][TD]简写:r[/TD]
[/TR]
[TR]
[TD]
World:<值>
[/TD][TD]
设置操作的世界
[/TD][TD]用途最后讲解
简写:w[/TD]
[/TR]
[/TABLE]
名称 | 解释 |
drop | 物品丢弃 |
pickup | 物品拾取 |
break | 方块破坏 |
craft | 取出合成物品 |
hold | 容器或物品栏中切换物品拿着东西事件 |
interact | 交互方块 |
inv | 物品栏内的监听 |
place | 方块放置 |
use | 使用物品 |
useinnbt | 在NBT中使用的权限 |
日期 | 版本 | 内容 |
2020年3月26日 | 3.2.5 | 移除语言API以增强兼容性 允许自动添加世界继承配置 1.13-1.15.2兼容 |
2020年3月18日 | 3.2.41 | 更改world参数的默认值为全局世界 |
2020年2月18日 | 3.2.40 | 将World参数检查放到子命令中,为后续命令添加继承关系做准备 更换NBTGetter为CacheGetter |
2017年7月17日 | 3.2.2 | 修复禁用原因不翻译颜色字符的问题 修复继承配置如果未配置Inhert节点时,未继承全局配置的问题 新增非继承禁用列表,只需要在禁用列表前加上短横“-”就可以了,短横后面没有空格 |
2017年6月26日 | 3.2.1 | 修复如果Yaml格式稍微不符合规范,可能会造成服务器直接假死的问题 修复禁用列表混合的一些错误 修复添加JavaScript类型的NBT时,测试结果总是不通过的问题 修正物品被禁用时,检查的权限子id为当前物品 增加多级NBT标齐支持,多级NBT标签路径写法有一定规则,建议使用自动补全 nbtdump命令也同时升级了,可以点开查看类型为NBTTagCompound的NBT 增加在玩家切换世界时,对玩家背包物品的检查,可在配置中配置是否开启 damage与world两个参数支持使用星号作为值 新增命令参数DefNBTValue,缩写为dnv;用于在物品未设置没收时替换物品被禁用的NBT |
2017年2月7日 | 3.0.35 | 修复语言API初始化错误的问题 |
2017年2月6日 | 3.0.34 | 修复区块检查可能会报错的问题 修复直接使用/banitem nbt命令会报错的问题 |
2017年2月2日 | 3.0.32 | 修复add命令在未指定nv,nbtvalue参数的情况下会报错的问题 修复区块检查可能会报错的问题 |
2017年1月21日 | 3.0.31 | 修复"BanItem.bypass.<flag名字>.<物品id>"权限无效的问题 增加了新的跳过物品检查的权限"BanItem.bypass.*.<物品id>" 此权限可以跳过禁了所有Flag的某个物品,避免了以往需要每个权限都要给一次的麻烦 |
2017年01月20日 | 3.0.3 | 修复默认原因和默认没收选项无效的问题 物品第一级节点下的Flags如果包含全部的权限,将不保存到配置中 增加两个新的Flag:drop和pickup |
2017年01月13日 | 3.0.22 | 修复nbt命令d在未设置参数时会发生错误的问题 |
2017年01月07日 | 3.0.21 | add与remove命令在未设置d参数且当前手上有物品时会自动设置d参数的值为当前手上物品子id |
2017年01月02日 | 3.0.2 | 禁用继承列表在只配置了全局列表的情况下,无法禁用物品的bug |
2016年12月31日 | 3.0.14 | 增加了在重载自定义禁用列表时,会输出禁用列表加载的物品数量 玩家登陆检查时,增加了检查了谁的输出 修复未载入禁止设置为空气的方块列表的问题 |
2016年12月23日 | 3.0.11 | 增加了插件状态机制,防止多次合并禁用列表操作 修复未启用信息收集系统的问题 |
2016年12月21日 | 3.0.1 | 增加在区块加载时,检查区块内方块是否为黑名单方块并进行没收 移除了JavaScript类型的NBT值在加载时,控制台输出的测试调试信息 修复damage节点每次保存后都会被重新写入名字的问题 修复add命令在添加新物品到禁用列表时,聊天窗口中物品节点下不显示禁用的Flag和原因的问题 修复plugin.yml中BanItem.cmd的子权限BanItem.cmd.param名字错误的问题 |
2016年12月20日 | 3.0.04 | 修复show、nbtdump等会在聊天窗口中生成可点击命令在使用时的报错问题 |
2016年12月19日 | 3.0.03 | 一些漏洞修复 |
2016年12月18日 | 3.0.02 | 修复信息收集系统未初始化导致的信息收集失败的问题 |
2016年12月17日 | 3.0.01 | 修复命令参数d、damage在tab补全时,无法补全当前手上的子id的问题 |
2016年12月17日 | 3.0.0 | 版本正式升级至3.0。请注意,3.0版本的配置与2.x的配置和物品列表不兼容 |
先手上拿着物品输入/banitem add
如图所示,这样就完成了物品禁用!
注:默认是会直接没收物品的,如果你不想物品被没收可以使用这个命令封禁物品“/banitem add c:f”
如图所示,这样就完成了物品禁用!
注:默认是会直接没收物品的,如果你不想物品被没收可以使用这个命令封禁物品“/banitem add c:f”
先手上拿着物品输入/banitem add damage:-1
如图所示,这样就完成了物品禁用!
如图所示,这样就完成了物品禁用!
先手上拿着法杖输入/banitem nbt add d:-1( 这个并不是ban物品的命令,只是把法杖加到NBT检查列表)
拿着要ban的核心输入/banitem add f:useinnbt c:f(此命令值禁止了核心在NBT中使用的权限)
注:这里我ban核心的时候设置了“c:f”就不会没收,所以会呈现如下图例子
拿着要ban的核心输入/banitem add f:useinnbt c:f(此命令值禁止了核心在NBT中使用的权限)
注:这里我ban核心的时候设置了“c:f”就不会没收,所以会呈现如下图例子
手上先拿着要ban的物品;输入/banitem nbtdump,结果如下(这是一把拔刀)
鼠标移到”复制“那里,点一下就能快速生成禁用该物品某个NBT节点的命令了;拔刀的话选CurrentItemName
如图所示,这样就完成了物品禁用!
鼠标移到”复制“那里,点一下就能快速生成禁用该物品某个NBT节点的命令了;拔刀的话选CurrentItemName
如图所示,这样就完成了物品禁用!
手拿附魔书(其他附魔的物品也可以)并输入/banitem nbtdump
然后把StoredEnchantments节点值给拷贝下来(这里我用的是时运3附魔,所以我的结果是“[{lvl:3,id:35}]”)
我讲解下这拷贝的值含义:lvl:3表示这个附魔的等级(比如时运3),id:35表示这个附魔的ID(比如时运)
然后手拿工具输入命令:/banitem add nl:ench nv:js|value.indexOf("id:35")!=-1(含义就是手中物品只要出现时运附魔就不可以使用!)
然后把StoredEnchantments节点值给拷贝下来(这里我用的是时运3附魔,所以我的结果是“[{lvl:3,id:35}]”)
我讲解下这拷贝的值含义:lvl:3表示这个附魔的等级(比如时运3),id:35表示这个附魔的ID(比如时运)
然后手拿工具输入命令:/banitem add nl:ench nv:js|value.indexOf("id:35")!=-1(含义就是手中物品只要出现时运附魔就不可以使用!)
如果你觉得下面教程比较复制,那我推荐你使用UseWorld插件来禁止某个世界使用某个物品
这里我以豆腐工艺MOD的工具为例子,禁止它在PlotSquared世界使用
手拿物品输入/banitem add c:f d:-1 w:PlotSquared
注:若要在多个世界封禁该物品请一个一个世界来,参数“w”后面不能用逗号分割多个世界
这里我以豆腐工艺MOD的工具为例子,禁止它在PlotSquared世界使用
手拿物品输入/banitem add c:f d:-1 w:PlotSquared
命令含义:将手上工具禁止在PlotSquared世界使用
- 问:怎么禁止物品使用,但是还能参与合成
- 答:手拿要禁用的物品,输入/banitem add flag:use confiscate:false
- 问:怎么禁止熊孩子在主城丢铀238害人
- 答:可以通过禁掉drop权限达到目的/bi add flag:drop confiscate:false
- 问:我用命令/bi add禁了某个物品,怎么给某个玩家权限
- 答:首先,你需要将主配置Permission.CheckItemId设置为true;然后,给该玩家添加BanItem.bypass.*.<物品id>的权限