Mineflayer測試

URL Link //n.sfs.tw/16431

2024-06-25 10:07:08 By 大塚 宏

 1.BOT尋路

const mineflayer = require('mineflayer');
const { pathfinder, Movements, goals } = require('mineflayer-pathfinder');

// 創建一個 Mineflayer 客戶端
const bot = mineflayer.createBot({
  host: 'your.minecraft.server',  // Minecraft 伺服器地址
  username: 'your_bot_username'    // 你的機器人的使用者名稱
});

// 設置機器人使用路徑規劃和移動
bot.loadPlugin(pathfinder);
bot.once('spawn', () => {
  const mcData = require('minecraft-data')(bot.version);
  const movements = new Movements(bot, mcData);
  movements.scafoldingBlocks = []; // 可選:設置機器人建造時使用的方塊

  bot.on('path_update', (r) => {
    if (r.status === 'noPath') {
      bot.chat('無法到達目的地!');
    } else if (r.status === 'complete') {
      bot.chat('已到達目的地!');
    }
  });

  bot.on('chat', (username, message) => {
    if (username === bot.username) return;
    if (message === 'come') {
      const player = bot.players[username];
      if (!player) {
        bot.chat("我找不到你,我不知道要去哪裡。");
        return;
      }
      const pos = player.entity.position.offset(1, 0, 1);
      const goal = new goals.GoalBlock(pos.x, pos.y, pos.z);
      bot.pathfinder.setGoal(goal);
      bot.chat(`我要來了,${username}!`);
    }
  });
});

// 監聽機器人的登入信息
bot.on('login', () => {
  console.log(`機器人 ${bot.username} 登入了!`);
});

 

2.BOT瞬移

const mineflayer = require('mineflayer');

// 創建一個 Mineflayer 客戶端
const bot = mineflayer.createBot({
  host: 'your.minecraft.server',  // Minecraft 伺服器地址
  username: 'your_bot_username'    // 你的機器人的使用者名稱
});

// 監聽機器人的登入信息
bot.on('login', () => {
  console.log(`機器人 ${bot.username} 登入了!`);

  // 瞬間移動到指定座標 (x, y, z)
  teleportTo(100, 70, 200);
});

// 定義瞬間移動函式
function teleportTo(x, y, z) {
  bot.teleport({
    x: x,
    y: y,
    z: z
  }, () => {
    console.log(`已將機器人移動到座標 (${x}, ${y}, ${z})`);
  });
}