Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/docs/ru/FAQ_RU.md
Views: 788
FAQ
Это документ с часто задаваемыми вопросами, предназначен для помощи людям в самых распространенных вещах.
Выдаёт ошибку при попытке войти в систему через аккаунт Microsoft.
Убедитесь, что адрес электронной почты, который вы ввели в поле username в createBot, можно использовать для входа на minecraft.net
используя кнопку «Войти с помощью Microsoft». Убедитесь, что у вас прописана опция auth: 'microsoft'
в настройках вашего createBot.
Когда вы получите сообщение об ошибке, в котором говорится что-то о недопустимых учетных данных или «Владеет ли эта учетная запись Minecraft?», попробуйте удалить поле пароля в параметрах createBot
и повторите попытку.
Как скрыть ошибки?
Используйте hideErrors: true
в параметрах createBot. Вы также можете добавить эти слушатели:
Я не получаю событие чата на сервере, как я могу это решить?
Сервера Spigot, в частности некоторые плагины, используют разные форматы чата, вам необходимо проанализировать его с помощью регулярного выражения/парсера. Посмотрите и измените скрипт chat_parsing.js, чтобы он работал для вашего плагина на чат, также прочтите http://prismarinejs.github.io/mineflayer/#/tutorial?id=custom-chat
Как я могу собрать информацию из плагина в чате?
Большинство майнкрафт серверов поддерживают плагины, и многие из этих плагинов выводят что-то в чат, когда что-то происходит. Если это всего лишь одно сообщение, лучше использовать решение, описанное выше, но когда эти сообщения разбиты на множество небольших сообщений, другим вариантом является использование события "messagestr"
, поскольку оно позволяет легко анализировать многострочные сообщения.
Пример:
Сообщение в чате выглядит следующим образом:
Как я могу отправлять команды?
Используйте bot.chat()
.
Пример:
Можно ли войти в несколько учетных записей с помощью bot = mineflayer.createbot, контролируя их все по отдельности?
Создавайте разные экземпляры ботов, вызывая createBot, затем выполняйте разные действия для каждого. Пример.
Как заставить бота выбросить все вещи их инвентаря?
bot.inventory.items()
возвращает массив предметов в инвентаре бота. Вы можете использовать рекурсивную функцию, чтобы перебрать их и выбросить каждый элемент используя bot.toss()
. Нажмите здесь, чтобы посмотреть пример
Как проверить отправленные/полученные пакеты?
Включите отладку https://github.com/PrismarineJS/mineflayer#debug
Я хочу избежать отключения бота от сервера даже в случае задержки сервера, как мне этого добиться?
Один из способов - увеличить параметр checkTimeoutInterval (передаваемый в createBot) к более высокому значению (Например 300*1000
, что составляет 5 минут вместо обычных 30 сек.). Если вы всё ещё сталкиваетесь с данной проблемой, вы можете автоматически переподключиться, используя что-то вроде этого примера https://github.com/PrismarineJS/mineflayer/blob/master/examples/reconnector.js
Как получить описание/текст предмета?
Вы можете использовать свойство item.nbt
. Также рекомендуем использовать библиотеку prismarine-nbt
. Метод nbt.simplify()
может быть полезен.
Пример:
Как я могу отправить сообщение из консоли на сервер?
Вы можете использовать библиотеку, такую как repl
, чтобы прочитать ввод консоли и использовать bot.chat()
для его отправки. Вы можете найти пример здесь.
Как я могу использовать другой плагин в качестве зависимости при создании своего плагина?
В функции inject()
вашего плагина вы можете безопасно вызвать bot.loadPlugin(anotherPlugin)
, чтобы убедиться, что плагин загружен. Если плагин уже был загружен ранее, ничего не произойдет.
Обратите внимание, что порядок в котором загружаются плагины является динамическим, поэтому вы никогда не должны вызывать другой плагин в своей функции inject()
.
Как я могу использовать прокси socks5?
В объекте с настройками для mineflayer.createBot(options)
удалите опцию host
, объявите переменные PROXY_IP, PROXY_PORT, PROXY_USERNAME, PROXY_PASSWORD, MC_SERVER_ADDRESS, MC_SERVER_PORT
, затем добавьте это в свой объект с настройками:
socks
объявляется с помощью const socks = require('socks').SocksClient
и использует эту библиотеку. Некоторые серверы могут отклонить соединение. Если это произойдет, попробуйте добавить fakeHost: MC_SERVER_ADDRESS
в настройки.
Частые ошибки
UnhandledPromiseRejectionWarning: Error: Failed to read asymmetric key
Эта ошибка означает, что вы ввели неправильную версию сервера, либо mineflayer обнаруживает её неправильно.
TypeError: Cannot read property '?' of undefined
Возможно, вы пытаетесь использовать что-то в объекте бота, чего еще нет, попробуйте вызвать инструкцию после события spawn
SyntaxError: Unexpected token '?'
Обновите node.js
Бот не может ломать/ставить блоки или открывать сундуки
Убедитесь, что защита спавна не мешает боту