Inject is a simple server-side library to allow developers to inject into Netty easier.
Example
This uses the HttpInjector class to respond to HTTP requests to the Minecraft
server.
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; } }
Registration
For Fabric, use the InjectFabric class:
public class MyMod implements ModInitializer { @Override public void onInitialize() { InjectFabric.INSTANCE.registerInjector(new MyEpicHttpInjector()); } }
For Spigot, Paper and derivatives, use the InjectSpigot class:
public class MyPlugin extends JavaPlugin { @Override public void onEnable() { InjectSpigot.INSTANCE.registerInjector(new MyEpicHttpInjector()); } }
This will register an HTTP injector which will respond with Hello, from Minecraft!
to any HTTP request to the Minecraft port.
$ curl http://localhost:25565
Hello, from Minecraft!Supported web servers
- Spring Boot:
springmodule - Javalin:
javalinmodule - Ktor:
ktormodule - Jetty:
jettymodule - manual request handling:
httpmodule
Examples can be found in the examples module.
Usage
Add the Brawls repo to gradle:
repositories {
maven("https://maven.mcbrawls.net/releases/")
}Add the dependency:
dependencies {
implementation("net.mcbrawls.inject:api:VERSION")
// HTTP-related things:
implementation("net.mcbrawls.inject:http:VERSION")
// Fabric:
include(modImplementation("net.mcbrawls.inject:fabric:VERSION")!!)
// Spigot/Paper:
implementation("net.mcbrawls.inject:spigot:VERSION")
}Replace VERSION with the latest version from the releases tab.