Inject is a simple server-side library to allow developers to inject into Netty easier.
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;
}
}
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!
- Spring Boot:
spring
module - Javalin:
javalin
module - Ktor:
ktor
module - Jetty:
jetty
module - manual request handling:
http
module
Examples can be found in the examples
module.
Add the andante repo to gradle:
repositories {
maven("https://maven.andante.dev/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.