pk.NBT() support parameter optionalTagName

This commit is contained in:
Tnze
2021-05-24 12:49:48 +08:00
parent cfde0f6e79
commit 7d4f4db36a
2 changed files with 36 additions and 40 deletions

View File

@ -426,16 +426,22 @@ func (d *Double) ReadFrom(r io.Reader) (n int64, err error) {
}
//NBT encode a value as Named Binary Tag
func NBT(v interface{}) Field {
func NBT(v interface{}, optionalTagName ...string) Field {
if len(optionalTagName) > 0 {
return nbtField{V: v, FieldName: optionalTagName[0]}
}
return nbtField{V: v}
}
type nbtField struct{ V interface{} }
type nbtField struct {
V interface{}
FieldName string
}
// Encode a nbtField
func (n nbtField) WriteTo(w io.Writer) (int64, error) {
var buf bytes.Buffer
if err := nbt.NewEncoder(&buf).Encode(n.V); err != nil {
if err := nbt.NewEncoder(&buf).Encode(n.V, n.FieldName); err != nil {
return 0, err
}
return buf.WriteTo(w)