Fix version feature handling (#572)

* Replace unsupported version with next supported version

* add validity check

---------

Co-authored-by: extremeheat <extreme@protonmail.ch>
This commit is contained in:
Max 2025-01-31 14:02:04 -05:00 committed by GitHub
commit 0ed8e32be8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View file

@ -28,18 +28,22 @@ class Connection extends EventEmitter {
}
versionLessThan (version) {
if (typeof version === 'string' && !Versions[version]) throw Error('Unknown version: ' + version)
return this.options.protocolVersion < (typeof version === 'string' ? Versions[version] : version)
}
versionGreaterThan (version) {
if (typeof version === 'string' && !Versions[version]) throw Error('Unknown version: ' + version)
return this.options.protocolVersion > (typeof version === 'string' ? Versions[version] : version)
}
versionGreaterThanOrEqualTo (version) {
if (typeof version === 'string' && !Versions[version]) throw Error('Unknown version: ' + version)
return this.options.protocolVersion >= (typeof version === 'string' ? Versions[version] : version)
}
versionLessThanOrEqualTo (version) {
if (typeof version === 'string' && !Versions[version]) throw Error('Unknown version: ' + version)
return this.options.protocolVersion <= (typeof version === 'string' ? Versions[version] : version)
}

View file

@ -67,9 +67,9 @@ module.exports = (client, server, options) => {
OverrideSkin: client.versionGreaterThanOrEqualTo('1.19.62') ? false : undefined,
CompatibleWithClientSideChunkGen: client.versionGreaterThanOrEqualTo('1.19.80') ? false : undefined,
MaxViewDistance: client.versionGreaterThanOrEqualTo('1.21.40') ? 0 : undefined,
MemoryTier: client.versionGreaterThanOrEqualTo('1.21.40') ? 0 : undefined,
PlatformType: client.versionGreaterThanOrEqualTo('1.21.40') ? 0 : undefined
MaxViewDistance: client.versionGreaterThanOrEqualTo('1.21.42') ? 0 : undefined,
MemoryTier: client.versionGreaterThanOrEqualTo('1.21.42') ? 0 : undefined,
PlatformType: client.versionGreaterThanOrEqualTo('1.21.42') ? 0 : undefined
}
const customPayload = options.skinData || {}
payload = { ...payload, ...customPayload }