• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】

chuxia

天依蓝

注册
2020/02/10
消息
55
金粒
9,858.60金粒
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
好像错版了)))但是,感觉好强的样子))
 

在线会员

  • jiurizi0618
  • 訾默
  • cyjbfryjvf
  • 今晚打老虎
  • FunPlayMC
  • moqian
后退
顶部 底部