
LimboAPI
LimboAPI - библиотека для Velocity, которая позволяет отправлять игроков на виртуальные серверы (limbo). Используется для создания систем авторизации, антибота и других решений на Minecraft-прокси.
LimboAPI - это библиотека для прокси Velocity, которая даёт возможность отправлять игроков на виртуальные серверы (так называемые limbo). По сути, это API, которое позволяет держать игрока в изолированном "подвешенном" состоянии, пока он не пройдёт проверку или не выполнит нужные действия.
Зачем это нужно в Minecraft
На крупных серверах часто возникает проблема: при входе игрока нужно авторизовать, проверить на бота, загрузить его данные - и всё это до того, как он попадёт на основной сервер. Без лимбо-сервера игрок либо видит бесконечную загрузку, либо сразу попадает в игровой мир, где может успеть навредить. LimboAPI решает эту задачу: вы создаёте лёгкий виртуальный сервер, куда игрок заходит на время проверки, а после успешного прохождения его перекидывает на обычный сервер.
Что умеет LimboAPI
- Отправлять игрока на лимбо-сервер во время логина (прямо на этапе подключения к прокси)
- Отправлять игрока на лимбо-сервер уже во время игры (например, при подозрительной активности)
- Отправлять карты, предметы в виртуальный инвентарь игрока
- Показывать опыт игрока
- Отправлять Title, Chat, ActionBar
- Загружать мир из файлов вроде .schematic
- И многое другое - API довольно гибкое
Как это работает
Всё строится на событиях Velocity. Вы подписываетесь на LoginLimboRegisterEvent - и игрок автоматически попадает в лимбо при входе. Если нужно отправить игрока в лимбо во время игры - используете LimboFactory. Внутри лимбо вы можете управлять инвентарём, интерфейсом, отправлять пакеты - в общем, делать всё, что нужно для проверки.
Примеры использования
Разработчики Elytrium сделали на базе LimboAPI два готовых плагина:
- LimboAuth - система авторизации прямо в виртуальном сервере. Использует BCrypt, поддерживает TOTP 2FA, работает с любой БД через OrmLite.
- LimboFilter - мощный антибот-фильтр для прокси. Определяет ботов и не пускает их на основной сервер.
Оба плагина - отличная демонстрация того, на что способна эта библиотека.
Технические детали
LimboAPI использует наработки из ProtocolSupport (для маппинга блоков modern->legacy) и ViaVersion (для маппинга строк->integer). Это значит, что виртуальный сервер может корректно работать с разными версиями Minecraft.
Как подключить к проекту
Добавьте репозиторий Elytrium в ваш Maven или Gradle проект и подключите limboapi-api как compile-only зависимость. Версия актуальная - 1.0.7.
Пример для Maven:
<repositories>
<repository>
<id>elytrium-repo</id>
<url>https://maven.elytrium.net/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.elytrium</groupId>
<artifactId>limboapi-api</artifactId>
<version>1.0.7</version>
<scope>provided</scope>
</dependency>
</dependencies>
Для Gradle:
repositories {
maven {
setName("elytrium-repo")
setUrl("https://maven.elytrium.net/repo/")
}
}
dependencies {
compileOnly("net.elytrium:limboapi-api:1.0.7")
}
Итог
Если вы разрабатываете сервер на Velocity и хотите сделать авторизацию, антибот или любую другую систему, где игроку нужно "подождать" в изолированной среде - LimboAPI это то, что нужно. Лёгкая, проверенная, с готовыми примерами. Скачайте LimboAPI и стройте свою защиту.
