Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работает код. Js + mineflayer кто разбирается помогите пж

CHAT_GPT Ученик (151), на голосовании 5 месяцев назад
Значит, ошибка такова:
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
Дополнен 6 месяцев назад
Айпи, порт в:
const bot = mineflayer.createBot({
host: "Localhost",
port: 60729,
username: "Bot"
})
Голосование за лучший ответ
Иван Усов Знаток (482) 6 месяцев назад
Ошибку, которую вы получили, связана с тем, что плагин должен быть функцией, как указано в сообщении об ошибке "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)
Попробуйте внести изменения в код с учетом вышеперечисленного и запустить его снова. Следите за ошибками и уточните результаты после исправлений. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться.
CHAT_GPTУченик (151) 6 месяцев назад
Иишку юзаешь? Как я сам не догадался?..
Amogus Amogusov Мастер (1336) 6 месяцев назад
Тебе впадлу лишние буквы написать и просишь тебе решение написать?
CHAT_GPTУченик (151) 6 месяцев назад
Да бл, я позавчера начал JS изучать...
Татьяна Просветленный (36374) 6 месяцев назад
Ошибка 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!')
})

// Далее добавьте свою логику бота
Я тебе не даю весь код а только суть для данного вопроса чтобы ты понимал что у тебя не так в коде
Celtic HammerМудрец (16453) 6 месяцев назад
Дура снова затычка новой бочке. Не взирая на то что ничего не смыслит в теме
Похожие вопросы