McLists一周年快乐
服务器已经添加了详细介绍信息板块
服主可以在管理后台来提交自己服务器介绍信息。
服务器介绍信息提交后,管理人员会进行审核
审核通过后会在服务器详细页面进行显示
提交服务器介绍信息会让新玩家更好的了解你的服务器哦~
添加图片信息,也会让百度等搜索引擎更好的收录您的服务器哦~
管理平台地址:传送门
PowerNBT

PowerNBT - 强大的NBT编辑器与API

强大的NBT编辑器,NBT API
Bukkit / Spigot 作者 DPOH-VAR 支持版本 1.17 - 1.18
服务器使用量
未统计
服务玩家数
未统计
下载量
26,314
插件详细介绍

PowerNBT 是一款基于命令的 Minecraft 游戏内 NBT 编辑器,允许玩家和服主直接通过命令浏览、编辑、复制和操作各种 NBT 数据,支持物品、实体、方块、玩家、区块、文件等多种数据源。

核心功能

  • 浏览和编辑 NBT 标签。
  • 支持对象:物品、在线/离线玩家、实体、方块、区块、原理图文件及其他所有 NBT 文件。
  • 将标签保存至文件。
  • 使用自定义 NBT 标签生成实体。
  • 解析 Mojangson 字符串。
  • 支持自定义颜色和 Unicode 符号。
  • 支持 Tab 键自动补全。
  • 支持复制/粘贴/剪切/交换操作。
  • 支持变量存储。
  • 提供 NBT 字符串的 JSON 编辑器。

命令与权限

基础命令

使用以下命令之一来执行 NBT 操作

  • /powernbt ...
  • /pnbt ...
  • /nbt ...

使用以下命令以静默模式执行(不显示消息)

  • /powernbt. ...
  • /pnbt. ...
  • /nbt. ...

权限

  • powernbt.use - 使用 PowerNBT 所有命令的基础权限。

浏览标签

使用以下命令浏览 NBT 树状结构

/nbt <对象> <查询> <查看模式>

参数说明

  • 对象 - 包含 NBT 标签的容器。
  • 查询 (可选) - 用于查看嵌套标签的路径。
  • 查看模式 (可选) - 标签的显示方式。

示例

  • /nbt inventory - 以 NBT 列表形式显示你背包中的物品。
  • /nbt block - 显示目标方块的 NBT。
  • /nbt me HealF - 显示你的生命值。
  • /nbt *admin EnderItems[0].id - 显示管理员末影箱中第一个物品的 ID。

编辑标签

设置新值

/nbt <对象> <查询> = <值> <类型>

/nbt <值> <类型> > <对象> <查询>

  • - NBT 标签的新值,可以是数字、字符串、十六进制值、颜色或数字数组。
  • 类型 (某些情况下可选) - 值的 NBT 类型(如 byte, int, float 等)。对于数字值通常需要指定。

示例

  • /nbt me foodLevel = 20 - 将你的饱食度设为满值(20)。
  • /nbt buffer foo = 12 float - 在缓冲区复合标签中,将标签 "foo" 的值设为浮点数 12。

从其他对象赋值

/nbt <对象1> <查询1> = <对象2> <查询2>

或使用 <> 操作符。

示例

  • /nbt $playerFile = *playerName - 将玩家 playerName 的所有标签保存到文件 playerFile.nbt
  • /nbt me HealF = $playerFile HealF - 将你的生命值设为 playerFile.nbt 文件中存储的 "HealF" 标签值。

移动值(剪切并粘贴)

/nbt <对象1> <查询1> >> <对象2> <查询2>

/nbt <对象2> <查询2> << <对象1> <查询1>

值将从对象1中移除并设置到对象2。

交换值

/nbt <对象1> <查询1> <> <对象2> <查询2>

/nbt <对象1> <查询1> swap <对象2> <查询2>

两个对象的值将互换。

示例

  • /nbt block Items <> me Inventory - 将你的背包与目标容器(如箱子)内的物品交换。

增加值

/nbt <对象1> <查询1> add <值>

/nbt <对象1> <查询1> add <对象2> <查询2>

也可使用 += 操作符。

根据对象类型,行为不同

  • 对象为数字,值为数字:相加。
  • 对象为字符串:拼接。
  • 对象为列表或数组,值为列表或数组:将值的所有项添加到对象。
  • 对象为复合标签,值为复合标签:将值的所有条目添加到对象。

示例

  • /nbt me HealF += 2 - 你的生命值增加 2。
  • /nbt me HealF += -2 - 你的生命值减少 2。
  • /nbt item display.Name += "(tool)" - 在物品名称后添加文本 "(tool)"。

在指定位置插入值

/nbt <对象1> <查询1> insert <位置> <值> <类型>

或使用 ins 简写。

对象1必须是一个列表或数组。

示例

假设:item display.Lore = ["Lore1","Lore2","Lore3","Lore4"]

执行:/nbt item display.Lore insert 2 "New Lore"

结果:item display.Lore = ["Lore1","Lore2","New Lore","Lore3","Lore4"]

位运算

支持的操作符

  • &= - 按位与
  • |= - 按位或
  • ^= - 按位异或
  • ~inverseinv - 按位取反

示例

  • /nbt item HideFlags |= b0000100 - 隐藏物品显示属性中的 "Unbreakable"。
  • /nbt item HideFlags &= b1111110 - 显示物品显示属性中的 "ench"。
  • /nbt item HideFlags ^= b0000010 - 切换物品显示属性中的 "AttributeModifiers"。

乘法运算

/nbt <对象1> <查询1> *= <对象2> <查询2>

/nbt <对象1> <查询1> *= <值> <类型>

所有值必须是数字。

重命名标签

/nbt <对象> <查询1> rename <新名称>

或使用 ren 简写。

将复合标签中的指定标签重命名。

删除标签

/nbt <对象> <查询> remove

或使用 rem 简写。

如果未指定查询,将尝试删除整个对象。

示例

  • /nbt item display remove - 删除物品的所有显示属性。
  • /nbt $filename remove - 删除文件 filename.nbt

缓冲区(剪贴板)

  • /nbt <对象> <查询> copy - 将值复制到缓冲区。
  • /nbt <对象> <查询> cut - 将值剪切到缓冲区。
  • /nbt <对象> <查询> paste - 将缓冲区中的值粘贴到对象。

示例

  • /nbt me Inventory copy - 将你的背包复制到缓冲区。
  • /nbt buffer [0].tag.display.Name = "new Name of item" - 修改缓冲区中物品的名称。
  • /nbt me Inventory paste - 将缓冲区内容粘贴回你的背包。

变量

/nbt %<变量名> set <对象> <查询>

/nbt <对象> <查询> as %<变量名>

设置后,你可以像使用对象一样使用该变量。

示例

  • /nbt %b set block - 将目标方块设为变量 %b
  • /nbt block as %b - 同上。
  • /nbt %b Items - 现在可以像使用 block 对象一样使用变量 %b 来操作方块的物品。

生成实体

/nbt <对象> <查询> spawn <世界>

/nbt <mojangson值> spawn <世界>

  • 世界 - 生成实体的世界。从控制台执行时必须指定。

左侧 NBT 标签必须包含

  • id - 实体的存档 ID。
  • Pos - 实体的位置(双精度列表)。

示例

  • /nbt {id:pig,Pos:[1d,100d,2d],Riding:{id:MinecartRideable}} spawn world1 - 在 world1 世界的坐标 (1,100,2) 处生成一只骑着矿车的猪。
  • /nbt id123(Creeper) copy - 将实体值复制到缓冲区。
  • /nbt buffer Pos = me Pos - 将缓冲区中存储的位置改为你的当前位置。
  • /nbt buffer spawn - 在你的位置生成缓冲区中存储的实体。

调试模式

  • /nbt debug on - 启用调试模式。
  • /nbt debug off - 禁用调试模式。

对象说明

对象是包含 NBT 标签的特殊容器。插件可以从中读取、保存或删除标签。

可用对象

  • me - 你自己(玩家)。
  • itemi - 手中的物品(仅限有 NBT 标签的物品)。
  • blockb - 视线所指的方块。
  • chunk - 玩家所在位置的区块。
  • id<ID> - 指定 ID 的实体。例如:id102
  • x:y:z:world - 指定世界和坐标的方块。例如:10:64:-30:world_nether
  • chunk:x:z:world - 指定世界和区块坐标的区块。例如:chunk:5:7:MainWorld
  • bufferc - 你的剪贴板。
  • name - 在线玩家。例如:Notch。在命令方块中使用:*" @p "
  • @name - 离线玩家的 .dat 文件。例如:@Notch。在命令方块中使用:@" @p "
  • %variable - 已定义的变量。例如:%skeleton
  • inventoryinv - 你的背包(等同于 me Inventory)。
  • handh - 你选中的物品栏格子(等同于 me Inventory[n])。
  • hand:playerh:player - 指定玩家选中的物品栏格子。例如:h:Notch。在命令方块中使用:h:" @p "
  • $name - plugins/PowerNBT/nbt/ 文件夹下的 name.nbt 文件。
  • $$name - plugins/PowerNBT/nbt/ 文件夹下的压缩文件 name.nbt.gz
  • file:filename - Minecraft 文件夹下的文件。例如:file:plugins\myplugin\file.dat。文件名可加引号:file:"plugins/myplugin/file.dat"
  • gzip:filename - Minecraft 文件夹下的压缩文件。
  • sch:schematicNameschematic:schematicName - 获取 plugins/WorldEdit/schematics/ 文件夹下的原理图文件。例如:/nbt sch:mySchematic TileEntities
  • compound - 创建一个新的空复合标签。
  • list - 创建一个新的空列表。
  • selfthis - 获取命令左侧(或某些情况下右侧)的对象。
  • * - 未来对象(执行命令后需要选择方块、实体或在聊天框输入值)。

查询语法

查询允许你浏览和选择对象中的特定标签。查询是由 "." 分隔的标签字符串。

示例

  • Inventory[1].id - 玩家背包中第二个物品的 ID。
  • display.Name - 物品的显示名称。
  • pages[0] - 书的第一页。
  • pages[-1] - 书的最后一页。
  • . - 根标签。

特殊语法

  • 带空格或 Unicode 的标签名:用引号括起来。
  • 例如:forgeData."foo bar"[0]forgeData."unicode\u2600".tag
  • JSON 查询:使用 # 符号。
  • 例如:display.Name#display.Name 字符串作为 JSON 处理。display.Name#text 选择 JSON 中的 "text" 属性。
  • 范围查询:使用 [A..B] 选择子数组或子字符串。
  • [1..3] - 选择索引 1 到 2 的项(不包含 3)。
  • [1..] - 选择从索引 1 到末尾的所有项。
  • [3..1] - 以反向顺序选择索引 1 到 2 的项。
  • [..3] - 以反向顺序选择从索引 3 到末尾的所有项。
  • 可以使用负索引从末尾开始计数。例如:[-3..] 选择最后三项。

范围查询示例

  • /nbt item display.Lore[2..4] remove - 删除物品描述中索引 2 和 3 的条目。
  • /nbt block Items = me Inventory[0..7] - 将你背包的前 8 个物品设置到目标容器中。
  • /nbt item display.Lore[-3..] remove - 删除物品描述的最后三条。

查看模式

  • limit - 限制显示的行数或字符数。
  • 例如:/nbt me Inventory 10 显示背包前 10 个物品。
  • range - 显示从起始范围到结束范围的结果。
  • 例如:/nbt me Inventory 10-20 显示背包中第 10 到第 19 个物品。
  • full - 显示所有行或完整结果。
  • hex - 以十六进制模式显示数字或字符串。
  • 例如:/nbt item display.color hex 以十六进制显示物品颜色。
  • 可与其他模式组合:/nbt item display.Name 5-10,hex 以十六进制显示物品名称的第 5 到第 10 个字符。

默认查看模式:仅显示前 20 个值,数字以十进制显示。

值类型与格式

在设置新值时,有时需要指定值的类型。

值格式示例

  • 字符串:必须用引号括起来。支持 Java 风格的转义(如 \n)。
  • 特殊转义:\c& 转换为颜色符号 §\& 表示字面量 &\_ 表示空格。
  • 例如:/nbt item display.Name = "\cbItem name"
  • 额外类型:"json""mojangson" 可将字符串转换为对象。
  • 数字值:如果目标已存在值,类型可选。
  • 可用类型:byte, short, int, long, float, double
  • 例如:/nbt me Health = 100500/nbt buffer NewValue = 18 int
  • 十六进制值:以 # 开头,默认类型为 int
  • 例如:/nbt item display.color = #FF0000 设置物品颜色为红色。
  • 二进制值:以 b 开头,默认类型为 int
  • 例如:/nbt item HideFlags = b101
  • 颜色名:使用预定义的颜色名称,如 black, red, green 等。
  • 例如:/nbt item display.color = red
  • 布尔与开关
  • on / true - 等同于 1 byte
  • off / false - 等同于 0 byte
  • 数组
  • int[], byte[] - 创建新的空数组。
  • [1,2,...]b, [1,2,...]i, [1,2,...]l - 创建原生数组。
  • 例如:/nbt buffer myByteArray = [1,2,3,10]b
  • Mojangson/JSON 字符串:直接创建 NBT 对象。
  • 例如:/nbt item = {display:{Name:"New item name"}}
  • 或:/nbt item.display.Name# = {text: "New item name"} json

可用 NBT 类型

byte, short, int, long, float, double, byte[], int[], long[], string

额外支持 JSON 字符串类型:json, mojangson

未来对象

未来对象允许你先输入命令,随后再指定目标。

示例

  • 设置实体的着火时间:
  • 输入 /nbt * Fire = 1000
  • 右键点击选择一个实体。
  • 该实体将开始燃烧。
  • 设置变量:
  • 输入 /nbt %var select
  • 右键点击选择一个实体或方块。
  • 所选对象将被存储在变量 %var 中。

开发者 API

PowerNBT 提供了完整的 API 供开发者使用。

主要类

  • NBTManager (me.dpohvar.powernbt.api.NBTManager):用于读写 NBT 标签的核心管理器。
  • NBTCompound:代表 NBTTagCompound,可像 Map<String,Object> 一样操作。
  • NBTList:代表 NBTTagList,可像 List<Object> 一样
测试支持版本
1.17 1.18
版本分布
基本信息
插件名称 PowerNBT
作者 DPOH-VAR
平台 Bukkit / Spigot
支持版本 1.17 - 1.18
点赞数 17
最近版本
暂无数据 -

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人次:3,030,787  |  今日访问人次:14,915  |  昨日访问人次:11,147

独立 IP:5,142  |  最近24小时独立访客:7,204

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6