• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

教程 Nbt

chuxia

天依蓝

注册
2020/02/10
消息
55
金粒
9,859金粒
Nbt一共有12种类型
End = 0
Byte = 1
Short = 2
Int = 3
Long = 4
Float = 5
Double = 6
ByteArray = 7
String = 8
List = 9
Compound = 10
IntArray = 11
LongArray = 12


NbtTag
Name
Type
Value


一个NBT的是由无数个的NbtTag构造的,根据上述结构,我们就能造出一个简易的NBT类

JavaScript:
class Nbt {
        constructor(keyName, NbtNameOrType, valueName, NbtValue, baseNbt) {
            this.keyValue = {};
            this.keyName = keyName;
            this.valueName = valueName;
            this.keyValue[keyName] = NbtNameOrType;
            this.keyValue[valueName] = NbtValue;
            this.baseNbt = baseNbt;
        }
        AppendNbt(k, kv, v) {
            this.keyValue[this.valueName] = this.AppendNbt(k, kv, v, null);
            return this;
        }
        AppendNbt(k, kv, v, vv) {
            let nbt;
            if (",7,9,10,11,12,".indexOf("," + this.keyValue[this.keyName] + ",") != -1) {
                if (this.keyValue[this.valueName] == null)
                    this.keyValue[this.valueName] = [];
                nbt = new Nbt(k, kv, v, vv, this);
                try {
                    this.keyValue[this.valueName].push(nbt.getThisNbt());
                } catch (e) {
                    console.log(e);
                }
            }
            else {
                nbt = new Nbt(k, kv, v, vv, this);
                nbt.baseNbt = this;
                this.keyValue[this.valueName] = nbt.getThisNbt();
            }
            return nbt;
        }
        getNbt() {
            return this.baseNbt == null ? this.getThisNbt() : this.baseNbt.getNbt();
        }
        getBaseNbt() {
            return this.baseNbt == null ? null : this.baseNbt.getThisNbt();
        }
        getThisNbt() {
            return this.keyValue;
        }
    }

使用NBT类来构造一个Lore Nbt
JavaScript:
var lore = new Nbt("k","tag","v").AppendNbt("k",10,"v").AppendNbt("k","display","v").AppendNbt("k",10,"v").AppendNbt("k","Lore","v").AppendNbt("k",9,"v").AppendNbt("k",8,"v","第一行lore");
 
最后编辑:
  • 喜欢
反馈: YYT
好像错版了)))但是,感觉好强的样子))
 

在线会员

  • xst
  • 657gg
  • snowdropQwQ
  • GrandOtaku
  • superyipro
  • 6630
  • TerrySanxian
  • 身心不健康
  • 大宝
  • Xepa7638
  • 1.7.10怀旧科技服务器
  • LUOMIAOCHU
  • yiqingyu
  • b雷霆一闪
  • 野比大雄
  • DATA_CELESTIA
  • hhksms
  • 新鑫不是鑫鑫
  • 例外
  • xuantianzhilin
...和 57 更多。
后退
顶部 底部