# 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` 替换为发布选项卡中的最新版本。