Support convert advancements and pets' owner
This commit is contained in:
48
examples/playerdataconvert/utils.go
Normal file
48
examples/playerdataconvert/utils.go
Normal file
@ -0,0 +1,48 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func usernameToUUID(name string) (string, uuid.UUID, error) {
|
||||
var id uuid.UUID
|
||||
resp, err := http.Get("https://api.mojang.com/users/profiles/minecraft/" + name)
|
||||
if err != nil {
|
||||
return "", id, err
|
||||
}
|
||||
|
||||
var body struct {
|
||||
Name string `json:"name"`
|
||||
ID string `json:"id"`
|
||||
}
|
||||
err = json.NewDecoder(resp.Body).Decode(&body)
|
||||
if err != nil {
|
||||
return "", id, err
|
||||
}
|
||||
|
||||
id, err = uuid.Parse(body.ID)
|
||||
return body.Name, id, err
|
||||
}
|
||||
|
||||
func intArrayToUUID(uuidInts []int32) (id uuid.UUID, err error) {
|
||||
if uuidLen := len(uuidInts); uuidLen != 4 {
|
||||
err = fmt.Errorf("invalid UUID len: %d * int32", uuidLen)
|
||||
return
|
||||
}
|
||||
for i, v := range uuidInts {
|
||||
binary.BigEndian.PutUint32(id[i*4:], uint32(v))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func uuidToIntArray(id uuid.UUID) (ints [4]int32) {
|
||||
for i := range ints {
|
||||
ints[i] = int32(binary.BigEndian.Uint32(id[i*4:]))
|
||||
}
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user