inject

A library for making injecting into Netty easier!

1,29k

Quick challenge

How far can you run before the mobs catch you?

inject

inject

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.

```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; } } ```

Registration

For Fabric, use the `InjectFabric` class: ```java public class MyMod implements ModInitializer { @Override public void onInitialize() { InjectFabric.INSTANCE.registerInjector(new MyEpicHttpInjector()); } } ```

For Spigot, Paper and derivatives, use the `InjectSpigot` class: ```java 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.

```bash $ curl http://localhost:25565 Hello, from Minecraft! ```

Supported web servers

- 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.

Usage

Add the andante repo to gradle: ```kt repositories { maven("https://maven.mcbrawls.net/releases/") } ```

Add the dependency: ```kt dependencies { implementation("net.mcbrawls.inject:api:VERSION")

// For 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")

// You can find the other modules for Spring, Ktor, etc. on the Github repo. } ```

Replace `VERSION` with the latest version from the releases tab.

ADS