Mineflayer,Minecraft как научить бота пользоваться меню
Как на апи mineflayer в Minecraft сделать так,чтобы бот мог пользоваться меню сервера? Например в меню имеются головы игроков, при нажатии на которых игрока перекидывает из хаба в выживание. Эти головы имеют названия серверов выживания(выживание №1, выживание №2 ... выживание №99)
Как сделать,чтобы он из этих всех серверов в меню выбирал только 1 выживание и заходил на него, например то же самое выживание №2
Для того чтобы бот мог пользоваться меню сервера, необходимо использовать методы mineflayer для взаимодействия с интерфейсом игры.
Сначала необходимо найти голову игрока в меню сервера. Для этого можно использовать метод
findBlock
:
bot.findBlock({
point: bot.entity.position,
matching: 144, // ID блока головы игрока
maxDistance: 5, // максимальное расстояние до блока
}, (err, block) => {
if (err) {
console.log(err);
return;
}
if (block) {
// голова найдена
} else {
// голова не найдена
}
});
Когда голова найдена, необходимо кликнуть на нее, чтобы открыть список серверов. Для этого можно использовать метод
activateBlock
:
bot.activateBlock(block);
После того, как список серверов открыт, необходимо найти нужный сервер и кликнуть на него. Для этого можно использовать метод
clickWindow
:
bot.clickWindow(slot, mouseButton, mode, callback);
где
slot
- номер слота в окне интерфейса,
mouseButton
- номер кнопки мыши (0 - левая, 1 - правая),
mode
- режим клика (0 - клик, 1 - клик правой кнопкой мыши, 2 - перетаскивание),
callback
- функция обратного вызова, которая будет вызвана после клика.
Для того, чтобы выбрать нужный сервер, необходимо знать номер его слота в списке серверов. Например, если выживание №2 находится на втором месте в списке, то его номер слота будет равен 2.
const slot = 2;
bot.clickWindow(slot, 0, 0, (err) => {
if (err) {
console.log(err);
return;
}
// сервер выбран
});
После того, как сервер выбран, необходимо закрыть меню сервера. Для этого можно использовать метод
deactivateBlock
:
bot.deactivateBlock();
Теперь бот будет выбирать нужный сервер из меню сервера.