Не работает код. Js + mineflayer кто разбирается помогите пж
Значит, ошибка такова:
node:assert:408
throw err;
^
AssertionError [ERR_ASSERTION]: plugin needs to be a function
at EventEmitter.loadPlugin (C:\Users\1\node_modules\mineflayer\lib\plugin_loader.js:16:12)
at Object.<anonymous> (C:\Users\1\Downloads\ppnpc\TooSmartBot.js:19:5)
at Module._compile (node:internal/modules/cjs/loader:1358:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Module._load (node:internal/modules/cjs/loader:1024:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
at node:internal/main/run_main_module:28:49 {
generatedMessage: false,
code: 'ERR_ASSERTION',
actual: false,
expected: true,
operator: '=='
}
Node.js v20.13.1
Process finished with exit code 1
Код с гитхаба, менял только айпи, порт:
const mineflayer = require('mineflayer')
const pvp = require('mineflayer-pvp').plugin
const { pathfinder, Movements, goals} = require('mineflayer-pathfinder')
const GoalFollow = goals.GoalFollow
const armorManager = require('mineflayer-armor-manager')
const autoeat = require('mineflayer-auto-eat')
const collectBlock = require('mineflayer-collectblock').plugin
const bot = mineflayer.createBot({
host: "Localhost",
port: 60729,
username: "Bot"
})
bot.loadPlugin(pvp)
bot.loadPlugin(armorManager)
bot.loadPlugin(pathfinder)
bot.loadPlugin(autoeat)
bot.loadPlugin(collectBlock)
Это начало, все не лезет, гитхаб:
https://github.com/TS-Dudes/SmartMineBot
Айпи, порт в:
const bot = mineflayer.createBot({
host: "Localhost",
port: 60729,
username: "Bot"
})
Ошибка ERR_ASSERTION: plugin needs to be a function указывает на то, что вы пытаетесь загрузить плагин, который не является функцией. Скорее всего, это связано с неправильным импортом или использованием плагина.
Убедитесь, что все зависимости установлены корректно:
npm install mineflayer mineflayer-pvp mineflayer-pathfinder mineflayer-armor-manager mineflayer-auto-eat mineflayer-collectblock
Проверьте, что все плагины импортируются и используются корректно.
const mineflayer = require('mineflayer')
const pvp = require('mineflayer-pvp').plugin
const { pathfinder, Movements, goals } = require('mineflayer-pathfinder')
const GoalFollow = goals.GoalFollow
const armorManager = require('mineflayer-armor-manager').plugin // добавлен .plugin
const autoeat = require('mineflayer-auto-eat').plugin // добавлен .plugin
const collectBlock = require('mineflayer-collectblock').plugin
const bot = mineflayer.createBot({
host: "localhost",
port: 60729,
username: "Bot"
})
bot.loadPlugin(pvp)
bot.loadPlugin(armorManager)
bot.loadPlugin(pathfinder)
bot.loadPlugin(autoeat)
bot.loadPlugin(collectBlock)
bot.once('spawn', () => {
console.log('Bot has spawned!')
})
// Далее добавьте свою логику бота
Я тебе не даю весь код а только суть для данного вопроса чтобы ты понимал что у тебя не так в коде
Тебе впадлу лишние буквы написать и просишь тебе решение написать?
Ошибку, которую вы получили, связана с тем, что плагин должен быть функцией, как указано в сообщении об ошибке "AssertionError [ERR_ASSERTION]: plugin needs to be a function". Разберем ваш код:
const mineflayer = require('mineflayer')
const pvp = require('mineflayer-pvp').plugin
const { pathfinder, Movements, goals } = require('mineflayer-pathfinder')
const GoalFollow = goals.GoalFollow
const armorManager = require('mineflayer-armor-manager')
const autoeat = require('mineflayer-auto-eat')
const collectBlock = require('mineflayer-collectblock').plugin
const bot = mineflayer.createBot({
host: "localhost",
port: 60729,
username: "Bot"
})
bot.loadPlugin(pvp)
bot.loadPlugin(armorManager)
bot.loadPlugin(pathfinder)
bot.loadPlugin(autoeat)
bot.loadPlugin(collectBlock)
Проблема заключается в том, что при загрузке плагинов вы передаете результат вызова plugin (например, const pvp = require('mineflayer-pvp').plugin), а не сами функции.
Для решения этой проблемы вам нужно загружать сами функции плагинов, а не результат их вызова. Например, в случае с mineflayer-pvp:
j
const pvp = require('mineflayer-pvp')
Также убедитесь, что все остальные плагины также загружаются как функции, а не результаты вызова. После исправлений ваш код может выглядеть примерно так:
const mineflayer = require('mineflayer')
const pvp = require('mineflayer-pvp')
const { pathfinder, Movements, goals } = require('mineflayer-pathfinder')
const GoalFollow = goals.GoalFollow
const armorManager = require('mineflayer-armor-manager')
const autoeat = require('mineflayer-auto-eat')
const collectBlock = require('mineflayer-collectblock')
const bot = mineflayer.createBot({
host: "LocalHost",
port: 60729,
username: "Bot"
})
bot.loadPlugin(pvp)
bot.loadPlugin(armorManager)
bot.loadPlugin(pathfinder)
bot.loadPlugin(autoeat)
bot.loadPlugin(collectBlock)
Попробуйте внести изменения в код с учетом вышеперечисленного и запустить его снова. Следите за ошибками и уточните результаты после исправлений. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться.