mineflayer 4.15.0 → 4.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/history.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 4.16.0
2
+ * [Fix version check (#3259)](https://github.com/PrismarineJS/mineflayer/commit/88d361f9209cdc2bc4620b32118fb2245f6dcdf9) (thanks @extremeheat)
3
+
1
4
  ## 4.15.0
2
5
  * [Fix several bugs in villager trading (#3230)](https://github.com/PrismarineJS/mineflayer/commit/1caa2c216b3a10a2bccd7b78a22f3809cb359fe3) (thanks @evan-goode)
3
6
  * [Fix `bot.heldItem` and `bot.entity.equipment` (#3225)](https://github.com/PrismarineJS/mineflayer/commit/9865ab72f7438fff9d74f2fe19a138da870c41aa) (thanks @szdytom)
package/index.d.ts CHANGED
@@ -867,7 +867,8 @@ export class Particle {
867
867
  );
868
868
  }
869
869
 
870
- export let supportedVersions: string[]
871
870
  export let testedVersions: string[]
871
+ export let latestSupportedVersion: string
872
+ export let oldestSupportedVersion: string
872
873
 
873
874
  export function supportFeature (feature: string, version: string): boolean
package/lib/loader.js CHANGED
@@ -45,8 +45,8 @@ const plugins = {
45
45
  particle: require('./plugins/particle')
46
46
  }
47
47
 
48
- const supportedVersions = require('./version').supportedVersions
49
- const testedVersions = require('./version').testedVersions
48
+ const minecraftData = require('minecraft-data')
49
+ const { testedVersions, latestSupportedVersion, oldestSupportedVersion } = require('./version')
50
50
 
51
51
  module.exports = {
52
52
  createBot,
@@ -55,9 +55,10 @@ module.exports = {
55
55
  ScoreBoard: require('./scoreboard'),
56
56
  BossBar: require('./bossbar'),
57
57
  Particle: require('./particle'),
58
- supportedVersions,
58
+ latestSupportedVersion,
59
+ oldestSupportedVersion,
59
60
  testedVersions,
60
- supportFeature: (feature, version) => require('prismarine-registry')(version).supportFeature(feature)
61
+ supportFeature: (feature, version) => minecraftData(version).supportFeature(feature)
61
62
  }
62
63
 
63
64
  function createBot (options = {}) {
@@ -107,22 +108,21 @@ function createBot (options = {}) {
107
108
  if (!bot._client.wait_connect) next()
108
109
  else bot._client.once('connect_allowed', next)
109
110
  function next () {
110
- bot.registry = require('prismarine-registry')(bot._client.version)
111
- const version = bot.registry.version
112
- if (supportedVersions.indexOf(version.majorVersion) === -1) {
113
- throw new Error(`Version ${version.minecraftVersion} is not supported.`)
114
- }
111
+ const serverPingVersion = bot._client.version
112
+ bot.registry = require('prismarine-registry')(serverPingVersion)
113
+ if (!bot.registry?.version) throw new Error(`Server version '${serverPingVersion}' is not supported, no data for version`)
115
114
 
116
- const latestTestedVersion = testedVersions[testedVersions.length - 1]
117
- const latestProtocolVersion = require('prismarine-registry')(latestTestedVersion).protocolVersion
118
- if (version.protocolVersion > latestProtocolVersion) {
119
- throw new Error(`Version ${version.minecraftVersion} is not supported. Latest supported version is ${latestTestedVersion}.`)
115
+ const versionData = bot.registry.version
116
+ if (versionData['>'](latestSupportedVersion)) {
117
+ throw new Error(`Server version '${serverPingVersion}' is not supported. Latest supported version is '${latestSupportedVersion}'.`)
118
+ } else if (versionData['<'](oldestSupportedVersion)) {
119
+ throw new Error(`Server version '${serverPingVersion}' is not supported. Oldest supported version is '${oldestSupportedVersion}'.`)
120
120
  }
121
121
 
122
- bot.protocolVersion = version.version
123
- bot.majorVersion = version.majorVersion
124
- bot.version = version.minecraftVersion
125
- options.version = version.minecraftVersion
122
+ bot.protocolVersion = versionData.version
123
+ bot.majorVersion = versionData.majorVersion
124
+ bot.version = versionData.minecraftVersion
125
+ options.version = versionData.minecraftVersion
126
126
  bot.supportFeature = bot.registry.supportFeature
127
127
  setTimeout(() => bot.emit('inject_allowed'), 0)
128
128
  }
package/lib/version.js CHANGED
@@ -1,4 +1,6 @@
1
+ const testedVersions = ['1.8.8', '1.9.4', '1.10.2', '1.11.2', '1.12.2', '1.13.2', '1.14.4', '1.15.2', '1.16.5', '1.17.1', '1.18.2', '1.19', '1.19.2', '1.19.3', '1.19.4', '1.20.1']
1
2
  module.exports = {
2
- supportedVersions: ['1.8', '1.9', '1.10', '1.11', '1.12', '1.13', '1.14', '1.15', '1.16', '1.17', '1.18', '1.19', '1.20'],
3
- testedVersions: ['1.8.8', '1.9.4', '1.10.2', '1.11.2', '1.12.2', '1.13.2', '1.14.4', '1.15.2', '1.16.5', '1.17.1', '1.18.2', '1.19', '1.19.2', '1.19.3', '1.19.4', '1.20.1']
3
+ testedVersions,
4
+ latestSupportedVersion: testedVersions[testedVersions.length - 1],
5
+ oldestSupportedVersion: testedVersions[0]
4
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mineflayer",
3
- "version": "4.15.0",
3
+ "version": "4.16.0",
4
4
  "description": "create minecraft bots with a stable, high level API",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",