6 KiB
prismarine-web-client
🇺🇸 English | 🇷🇺 Russian | 🇵🇹 Portuguese |
---|
Клиент Minecraft, запущенный на веб-странице. Демонстрация на https://prismarinejs.github.io/prismarine-web-client/
Как это работает
prismarine-web-client запускает mineflayer и prismarine-viewer в вашем браузере, которые подключаются к прокси через WebSocket который переводит соединение WebSocket в TCP для подключения к обычным серверам Minecraft. Prismarine-web-client основан на:
- prismarine-viewer для рендера мира
- mineflayer для высокоуровневого API клиента minecraft
Проверьте эти модули, если вы хотите больше понять, как это работает, и внести свой вклад!
Скриншот
Демонстация
Нажмите на эту ссылку, чтобы открыть ее в вашем браузере, установка не требуется: https://prismarinejs.github.io/prismarine-web-client/
Протестировано в Chrome и Firefox для настольных платформ.
Использование
Чтобы хостить его самостоятельно, выполните эти команды в bash:
$ npm install -g prismarine-web-client
$ prismarine-web-client
Наконец, откройте http://localhost:8080
в вашем браузере.
Функции
- Показывание мобов и игроков
- Показывание блоков
- Передвижение (Вы можете двигаться, и вы можете видеть передвижение других сущностей)
- Установка и ломание блоков
Roadmap
- Контейнеры (Инвентарь, сундуки, и так далее.)
- Звуки
- Больше взаимодействий с Миром (Атаковать мобов и других игроков, и так далее.)
- Косметические особенности рендера (Цикл дня и ночи, fog, и так далее.)
Разработка
Если вы ввносите изменения, вам нужно установить его по-другому.
Во-первых, клонируйте репозиторий.
Затем установите свой рабочий каталог в каталог репозитория. Например:
$ cd ~/prismarine-web-client/
Наконец, запустите.
$ npm install
$ npm start
Это запустит express и webpack в режиме разработки: всякий раз, когда вы сохраняете файл, сборка будет переделана (это займет 5 секунд), и вы можете обновить страницу, чтобы получить новый результат.
Для входа в Prismarine Web Client откройте http://localhost:8080 в вашем браузере.
Если вы захотите отключить автоматическое сохранение в своем IDE, чтобы избежать постоянной пересборки Web Client'а, смотрите: https://webpack.js.org/guides/development/#adjusting-your-text-editor
Чтобы проверить сборку Web Client'а (на сборку потребуется минута), вы можете запустить npm run build-start
Если вы заинтересованы в участии, вы можете проверить проекты тут
Некоторые переменные которые отображаются в окне для отладки:
- bot
- viewer
- mcData
- worldView
- Vec3
- pathfinder
- debugMenu
Как добавить дополнительные элементы в меню отладки ?
debugMenu.customEntries['myKey'] = 'myValue' delete debugMenu.customEntries['myKey']
Некоторые примеры отладки
В инструментах chrome dev
bot.chat('test')
позволяет вам использовать чатbot.chat(JSON.stringify(Object.values(bot.players).map(({username, ping}) => ({username, ping}))))
показывает пинг всех игроковwindow.bot.entity.position.y += 5
прыжокbot.chat(JSON.stringify(bot.findBlock({matching:(block) => block.name==='diamond_ore', maxDistance:256}).position))
ищет позицию алмазной рудыbot.physics.stepHeight = 2
позволяет вам взбиратся по блокамbot.physics.sprintSpeed = 5
более быстрый бегbot.loadPlugin(pathfinder.pathfinder)
затемbot.pathfinder.goto(new pathfinder.goals.GoalXZ(100, 100))
идет к координатам 100, 100
Для получения дополнительных идей по отладке прочитайте mineflayer документацию