Files
strom/mc/data/protocol_version.go
T

69 lines
1.7 KiB
Go

package data
// {
// "minecraftVersion": "1.21.10-rc1",
// "version": 1073742098,
// "dataVersion": 4555,
// "usesNetty": true,
// "majorVersion": "1.21",
// "releaseType": "snapshot"
// },
type VersionInfo struct {
MinecraftVersion string
Version int32
DataVersion int32
UsesNetty bool
MajorVersion string
ReleaseType string
}
var ProtocolVersions []VersionInfo
// LookUpVersionByName returns the VersionInfo for the given Minecraft version name (e.g. "1.21.11").
func LookUpVersionByName(name string) (ret VersionInfo, err error) {
for _, v := range ProtocolVersions {
if v.MinecraftVersion == name {
ret = v
return
}
}
err = UnknownMinecraftVersionError
return
}
// LookUpVersionByProtocolVersion returns the VersionInfo for the given protocol version number.
func LookUpVersionByProtocolVersion(version int32) (ret VersionInfo, err error) {
for _, v := range ProtocolVersions {
if v.Version == version {
ret = v
return
}
}
err = UnknownMinecraftVersionError
return
}
// LookUpVersionByDataVersion returns the VersionInfo for the given Minecraft data version number.
func LookUpVersionByDataVersion(version int32) (ret VersionInfo, err error) {
for _, v := range ProtocolVersions {
if v.DataVersion == version {
ret = v
return
}
}
err = UnknownMinecraftVersionError
return
}
// MustLookupProtocolVersion panics if the version is not found only intended for testing code.
func MustLookupProtocolVersion(version string) int32 {
v, err := LookUpVersionByName(version)
must(err)
return v.Version
}
func init() {
must(LoadJson("minecraft-data/pc/common/protocolVersions.json", &ProtocolVersions))
}