1.18 Mineflayer pathfinder API 질문
-
게시물 수정 , 삭제는 로그인 필요
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)
}
})
})
에러:
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)
}
})
})