Update save/level, add missing fields and enable disallow unknown fields

This commit is contained in:
Tnze
2023-04-22 15:27:47 +08:00
parent 2856c90170
commit e17642945d

View File

@ -38,6 +38,12 @@ type LevelData struct {
} }
} `nbt:"1"` } `nbt:"1"`
} }
DragonFight struct {
Gateways []int32
DragonKilled bool
NeedsStateScanning bool
PreviouslyKilled bool
}
GameRules map[string]string GameRules map[string]string
WorldGenSettings WorldGenSettings WorldGenSettings WorldGenSettings
GameType int32 GameType int32
@ -50,6 +56,8 @@ type LevelData struct {
Raining bool `nbt:"raining"` Raining bool `nbt:"raining"`
RainTime int32 `nbt:"rainTime"` RainTime int32 `nbt:"rainTime"`
RandomSeed int64 RandomSeed int64
ScheduledEvents []nbt.RawMessage
ServerBrands []string
SizeOnDisk int64 SizeOnDisk int64
SpawnAngle float32 SpawnAngle float32
SpawnX, SpawnY, SpawnZ int32 SpawnX, SpawnY, SpawnZ int32
@ -62,6 +70,7 @@ type LevelData struct {
Series string Series string
Snapshot byte Snapshot byte
} }
StorageVersion int32 `nbt:"version"`
WanderingTraderId []int32 WanderingTraderId []int32
WanderingTraderSpawnChance int32 WanderingTraderSpawnChance int32
WanderingTraderSpawnDelay int32 WanderingTraderSpawnDelay int32
@ -82,6 +91,8 @@ type CustomBossEvent struct {
} }
func ReadLevel(r io.Reader) (data Level, err error) { func ReadLevel(r io.Reader) (data Level, err error) {
_, err = nbt.NewDecoder(r).Decode(&data) decoder := nbt.NewDecoder(r)
decoder.DisallowUnknownFields()
_, err = decoder.Decode(&data)
return return
} }