1.18 Mineflayer pathfinder API 질문

1.18 Mineflayer pathfinder API 질문

작성일 2022.02.04댓글 0건
    게시물 수정 , 삭제는 로그인 필요

Mineflayer모듈을 가지고 마인크래프트 봇을 만들어 보고 있었는데요, 어떤 좌표에서 come 채팅을 입력하면 그 곳으로 이동하는 명령어 입니다. 그런데 이상하게 scaffold 블럭 사용을 봇이 안하고, 정해진 목표에 도달 하지 못하면 갑자기 멈추면서 이런 에러가 뜨고 로그 아웃을 합니다.

에러:
Error: write ECONNRESET
    at afterWriteDispatched (node:internal/stream_base_commons:164:15)
    at writeGeneric (node:internal/stream_base_commons:155:3)
    at Socket._writeGeneric (node:net:795:11)
    at Socket._write (node:net:807:8)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at Socket.Writable.write (node:internal/streams/writable:334:10)
    at Cipheriv.ondata (node:internal/streams/readable:754:22)
    at Cipheriv.emit (node:events:390:28)
    at addChunk (node:internal/streams/readable:315:12) {
  errno: -4077,
  code: 'ECONNRESET',
  syscall: 'write'

코드는 pathfinder API 웹 사이트에서 복사해서 조금 수정하였습니다.
const mineflayer = require('mineflayer')
const pathfinder = require('mineflayer-pathfinder').pathfinder
const Movements = require('mineflayer-pathfinder').Movements
const { GoalNear } = require('mineflayer-pathfinder').goals

var settings = {
    username: "Bot",
    host: "localhost",
    port: 포트는 렌서버 열어서 했습니다,
};

const bot = mineflayer.createBot(settings);


bot.once("spawn",()=>{
    bot.chat('Hello World!')
});

bot.loadPlugin(pathfinder)

bot.on('spawn', () => {

    const mcData = require('minecraft-data')(bot.version)
 
    const defaultMove = new Movements(bot, mcData)

    Movements.scafoldingBlocks = [mcData.blocksByName.dirt.id]
   
    bot.on('chat', function(username, message) {
   
      if (username === bot.username) return
 
      const target = bot.players[username] ? bot.players[username].entity : null
      if (message === 'come') {
        if (!target) {
          bot.chat('I don\'t see you !')
          return
        }
        const p = target.position
 
        bot.pathfinder.setMovements(defaultMove)
        bot.pathfinder.setGoal(new GoalNear(p.x, p.y, p.z, 1))
        bot.chat('Heading toward to x '+p.x+' y '+ p.y+' z '+ p.z)
      }
    })
  })