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

Скажите пожалуйста код для JavaScript на MineFlayer, чтобы бот следовал за игроком через сообщения, обходя цветовой код.

Сергей Богданов Ученик (75), на голосовании 11 месяцев назад
Поясню на счет цветового кода - на всех серверах, где ник имеет, например, серый цветовой код или он наклонен, то бот не будет считывать ник конкретного игрока. (Требуется, чтобы бот слушался только одного игрока.)
Голосование за лучший ответ
Sergio 2.1 Оракул (67303) 1 год назад
 const mineflayer = require('mineflayer'); 
const { pathfinder, Movements } = require('mineflayer-pathfinder');
const GoalFollow = require('mineflayer-pathfinder').goals.GoalFollow;

const bot = mineflayer.createBot({
host: 'localhost', // IP-адрес сервера
port: 25565, // порт сервера
username: 'Bot', // имя бота
});

bot.loadPlugin(pathfinder);

let targetPlayer = null;

bot.on('chat', (username, message) => {
// Убираем цветовые коды из имени пользователя
const cleanUsername = username.replace(/§[0-9a-fk-or]/g, '');

// Если сообщение содержит 'follow me', бот начинает следовать за игроком
if (message === 'follow me') {
targetPlayer = bot.players[cleanUsername];

if (!targetPlayer) {
bot.chat('I can\'t see you!');
return;
}

const { x, y, z } = targetPlayer.entity.position;
bot.pathfinder.setMovements(new Movements(bot, '1.16.4'));
bot.pathfinder.setGoal(new GoalFollow(targetPlayer.entity, 1), true);
}

// Если сообщение содержит 'stop', бот перестает следовать за игроком
if (message === 'stop') {
bot.pathfinder.setGoal(null);
targetPlayer = null;
}
});
Сергей БогдановУченик (75) 1 год назад
Огромное спасибо, укажите пожалуйста только места, где требуется замена на никнейм определённого игрока.
Сергей БогдановУченик (75) 1 год назад
К сожалению - бот все равно не видит ник, я везде изменил null на ник, строка, где первый раз появился null, мне потребовали сделать кавычки, вокруг Ника. В остальных местах кавычки тоже теперь есть, но бот все же не подчиняется. Цветовой код буквы "m"
Сергей БогдановУченик (75) 1 год назад
Все 3 модуля также загружены.
Сергей БогдановУченик (75) 1 год назад
Скрипт так и работает - только со стандартным ником, без цветового кода.
Сергей БогдановУченик (75) 1 год назад
Помогите, пожалуйста, уже 2 день с этим мучаюсь.
Виктор ЛебедевУченик (112) 1 год назад
const cleanUsername = username.replace(/§[0-9a-fk-or]/g, ''); Скажите пожалуйста, что означает /g в этой строчке?
Сергей БогдановУченик (75) 1 год назад
Произошла некоторая ошибочка - бот делает все, как вы сделали, но только если определённый игрок имеет статус "Оператора" на сервере, покажите примерно код, пожалуйста.
Похожие вопросы