inject

一个让注入到Netty中更容易的库!

资源图片
# inject Inject 是一个简单的服务器端库,旨在让开发者更容易地注入 Netty。 ## 示例 此示例使用 `HttpInjector` 类来响应发送到 Minecraft 服务器的 HTTP 请求。 ```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()); } } ``` 这将注册一个 HTTP 注入器,它将用 `Hello, from Minecraft!` 响应发送到 Minecraft 端口的任何 HTTP 请求。 ```bash $ curl http://localhost:25565 Hello, from Minecraft! ``` ## 支持的 Web 服务器 - Spring Boot: `spring` 模块 - Javalin: `javalin` 模块 - Ktor: `ktor` 模块 - Jetty: `jetty` 模块 - 手动请求处理: `http` 模块 示例可以在 `examples` 模块中找到。 ## 使用方法 将 andante 仓库添加到 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") // 您可以在 Github 仓库中找到其他模块,例如 Spring、Ktor 等。 } ``` 将 `VERSION` 替换为发布选项卡中的最新版本。