PrismarineJS / mineflayer

Create Minecraft bots with a powerful, stable, and high level JavaScript API.
https://prismarinejs.github.io/mineflayer/
MIT License
4.89k stars 897 forks source link

Current bot version broken? #1514

Closed flowl closed 3 years ago

flowl commented 3 years ago

After npm up from mineflayer 2.36.0 with 1.16.3 to 2.37.1 ono 1.16.4 I get the following error on any server:

> x@1.0.0 start /Users/x/Projects/x
> tsc --build && node src/main.js

[Debug] Connecting to [x] (1.16.4)
/Users/x/Projects/x/node_modules/prismarine-biome/index.js:6
  biomes = require('minecraft-data')(mcVersion).biomes
                                               ^

TypeError: Cannot read property 'biomes' of null
    at loader (/Users/x/Projects/x/node_modules/prismarine-biome/index.js:6:48)
    at loader (/Users/x/Projects/x/node_modules/prismarine-block/index.js:6:39)
    at inject (/Users/x/Projects/x/node_modules/mineflayer/lib/plugins/blocks.js:26:44)
    at /Users/x/Projects/x/node_modules/mineflayer/lib/plugin_loader.js:41:7
    at Array.forEach (<anonymous>)
    at injectPlugins (/Users/x/Projects/x/node_modules/mineflayer/lib/plugin_loader.js:40:16)
    at Bot.onInjectAllowed (/Users/x/Projects/x/node_modules/mineflayer/lib/plugin_loader.js:12:5)
    at Object.onceWrapper (events.js:421:28)
    at Bot.emit (events.js:315:20)
    at next (/Users/x/Projects/x/node_modules/mineflayer/index.js:127:12)
npm ERR! code ELIFECYCLE

package.json:

"dependencies": {
    "@types/node": "^14.14.14",
    "async": "^3.2.0",
    "dateformat": "^3.0.3",
    "delay": "^4.4.0",
    "discord.js": "^12.5.1",
    "dotenv": "^8.2.0",
    "json-store": "^1.0.0",
    "jsonfile": "^6.1.0",
    "lodash": "^4.17.20",
    "minecraft-assets": "^1.4.0",
    "mineflayer": "^2.37.1",
    "mineflayer-armor-manager": "^1.3.0",
    "mineflayer-auto-eat": "^1.3.4",
    "mineflayer-collectblock": "^1.3.4",
    "mineflayer-pathfinder": "^1.2.2",
    "mineflayer-pvp": "^1.0.2",
    "mineflayer-statemachine": "^1.5.1",
    "mineflayer-tool": "^1.1.0",
    "mineflayer-web-inventory": "^1.2.0",
    "performance": "^1.4.0",
    "prismarine-biome": "^1.1.1",
    "prismarine-viewer": "^1.8.0",
    "readline": "^1.3.0",
    "typed-emitter": "1.3.1",
    "typescript": "^4.1.3"
  }

Bootstrapping:

require('dotenv').config();
console.log('[Debug] Connecting to [' + process.env.MC_HOST + ':' + process.env.MC_PORT + '] (' + process.env.MC_VERSION + ')');

const bot = createBot({
    host: process.env.MC_HOST,
    port: parseInt(process.env.MC_PORT || '25565'),
    username: process.env.MC_USERNAME || '',
    password: process.env.MC_PASSWORD,
    version: process.env.MC_VERSION || undefined,
});
// @ts-ignore
bot.verbose = true

const mineflayerViewer = require('prismarine-viewer').mineflayer

// @ts-ignore
bot.once('spawn', () => {
    console.log('[Debug] Loading live viewer')
    mineflayerViewer(bot, {port: 1421, firstPerson: false})
    console.log('[Debug] Loading plugins')
    bot.loadPlugin(require('mineflayer-armor-manager'));
    bot.loadPlugin(require('mineflayer-pathfinder').pathfinder);
    bot.loadPlugin(require('mineflayer-collectblock').plugin)
    bot.loadPlugin(require('mineflayer-pvp').plugin)
    require('mineflayer-web-inventory')(bot)
    bot.loadPlugins([
        (bot) => {
            console.log('[Debug] Loading x enhanced BigBrain (TM)')
            bot['s'] = new x(bot)
        },
        (bot) => {
            console.log('[Debug] Loading Discord')
            bot['discord'] = new DiscordBot(bot)
        },
        (bot) => {
            console.log('[Debug] Loading StateMachine')
            bot['stateMachine'] = new StateMachine(bot)
        },
    ])
})
TheDudeFromCI commented 3 years ago

This means some of your libraries are out of date. Run npm update --depth 999

flowl commented 3 years ago

Thanks ^^