diff --git a/level/anvil/level.go b/level/anvil/level.go new file mode 100644 index 0000000..833109b --- /dev/null +++ b/level/anvil/level.go @@ -0,0 +1,24 @@ +package anvil + +import ( + "io" + + "github.com/admin-else/strom/nbt" +) + +type Level struct { + DataPacks struct { + Enabled []string + Disabled []string + } +} + +func ReadLevelData(r io.Reader) (l Level, err error) { + var lDtatWrapped struct{ Data Level } + err = nbt.ReadFile(r, &lDtatWrapped) + if err != nil { + return + } + l = lDtatWrapped.Data + return +} diff --git a/level/anvil/level_test.go b/level/anvil/level_test.go new file mode 100644 index 0000000..bc3ca7a --- /dev/null +++ b/level/anvil/level_test.go @@ -0,0 +1,22 @@ +package anvil_test + +import ( + "os" + "testing" + + "github.com/admin-else/strom/level/anvil" +) + +func TestLevel(t *testing.T) { + f, err := os.Open("./testdata/testworld/level.dat") + if err != nil { + t.Fatal(err) + } + defer f.Close() + + l, err := anvil.ReadLevelData(f) + if err != nil { + t.Fatal(err) + } + t.Log(l) +}