
inject
Серверная библиотека для разработчиков под Minecraft, упрощающая инъекцию в Netty. Позволяет обрабатывать HTTP-запросы прямо на порту сервера.
inject
inject - это серверная библиотека для разработчиков, которая заметно упрощает инъекцию в Netty. По факту, проект позволяет обрабатывать HTTP-запросы прямо на порту вашего Майнкрафт-сервера. Это удобно, если нужно встроить веб-сервер или API без открытия дополнительных портов.
Пример использования
В примере ниже используется класс HttpInjector для ответа на HTTP-запросы, которые приходят на адрес сервера Minecraft:
java class MyEpicHttpInjector extends HttpInjector { @Override public HttpByteBuf intercept(ChannelHandlerContext ctx, HttpRequest request) { HttpByteBuf buf = HttpByteBuf.httpBuf(ctx); buf.writeStatusLine("1.1", 200, "OK"); buf.writeText("Hello, from Minecraft!"); return buf; } }
Регистрация
Для Fabric используйте класс InjectFabric:
java
public class MyMod implements ModInitializer {
@Override
public void onInitialize() {
InjectFabric.INSTANCE.registerInjector(new MyEpicHttpInjector());
}
}
Для Spigot, Paper и их производных используйте класс InjectSpigot:
java
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
InjectSpigot.INSTANCE.registerInjector(new MyEpicHttpInjector());
}
}
После регистрации инжектор будет отвечать Hello, from Minecraft! на любой HTTP-запрос, пришедший на порт Майнкрафт-сервера. Проверить можно обычным curl:
bash $ curl http://localhost:25565 Hello, from Minecraft!
Поддерживаемые веб-серверы
- Spring Boot: модуль
spring - Javalin: модуль
javalin - Ktor: модуль
ktor - Jetty: модуль
jetty - Ручная обработка запросов: модуль
http
Примеры можно найти в модуле examples.
Использование
Добавьте репозиторий в gradle: kt repositories { maven("https://maven.mcbrawls.net/releases/") }
Добавьте зависимость: kt dependencies { implementation("net.mcbrawls.inject:api:VERSION")
// Для HTTP:
implementation("net.mcbrawls.inject:http:VERSION")
// Fabric:
include(modImplementation("net.mcbrawls.inject:fabric:VERSION")!!)
// Spigot/Paper:
implementation("net.mcbrawls.inject:spigot:VERSION")
}
Замените VERSION на последнюю версию из вкладки релизов.
Совет: Эта библиотека - находка для разработчиков плагинов и модов, которым нужно объединить игровой сервер и веб-интерфейс в один процесс. Учтите, что корректная обработка HTTP-запросов на порту 25565 требует аккуратности, чтобы не нарушить игровой трафик.
Сервер для плагина inject - как у профи
Плагин inject создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином inject для друзей можно за пару минут - BungeeHost всё уже подготовил.
