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

    感谢大家积极参与本次 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
好像错版了)))但是,感觉好强的样子))
 

在线会员

  • FS20
  • a142577253
  • frea
  • XingZi_Nina
  • NetK
  • Boc
  • mw30566
  • Loliiiico
  • 浩朋
  • 小白开水
  • 魑魅 魍魉
  • 绯色月下
  • sssjiu
  • linghun91
  • 师哥
后退
顶部 底部