EnderRealmServerCore 文档
EnderRealmServerCore 是 EnderRealm 服务器的核心插件,提供环境管理、日志服务等基础功能,供其他插件使用。
核心特性
- 环境管理:通过 API 服务获取当前环境(生产/测试/开发),支持自动适配
- 日志服务:统一的日志管理,支持 debug/trace 级别,根据环境自动调整
- 配置管理:统一的配置管理,支持环境变量和 YAML 文件,优先级明确
- HTTP 客户端:统一的 HTTP 工具,支持重试和超时配置
- 服务框架:ServiceRegistry 统一管理服务生命周期,便于扩展
文档结构
快速开始
1. 启动 API 服务
bash
cd EnderRealmServerApi
# 复制环境变量模板
cp .env.example .env
# 修改 .env 中的配置
# 启动服务
uv run uvicorn app.main:app --reload2. 配置 MC 服务器
在 plugins/EnderRealmServerCore/config.yml 中配置 API 服务地址:
yaml
backend:
url: "http://localhost:8000"3. 在其他插件中使用
环境 API
java
import cn.enderrealm.core.EnderRealmServerCore;
import cn.enderrealm.core.api.EnvironmentAPI;
// 获取环境 API
EnvironmentAPI env = EnderRealmServerCore.getEnvironmentAPI();
// 判断环境
if (env.isProduction()) {
// 生产环境逻辑
} else if (env.isDevelopment()) {
// 开发环境逻辑
}
// 获取自定义配置
String maxPlayers = env.getConfig("max_players", "100");日志 API
java
import cn.enderrealm.core.EnderRealmServerCore;
import cn.enderrealm.core.api.LoggerAPI;
// 获取日志 API
LoggerAPI logger = EnderRealmServerCore.getLoggerAPI();
// 使用
logger.info("玩家 {} 登录", playerName);
logger.debug("调试信息: {}", data);
logger.warn("警告: {}", message);
logger.error("发生错误", exception);
// 创建带前缀的子日志器
LoggerAPI subLogger = logger.withPrefix("[MyPlugin]");
subLogger.info("子模块日志");依赖项
- Minecraft 服务器:Paper 1.21+
- Java 21+
- API 服务(EnderRealmServerApi)
包结构
cn.enderrealm.core/
├── EnderRealmServerCore.java # 插件主类
├── api/ # 公开 API 接口
│ ├── EnvironmentAPI.java # 环境 API
│ └── LoggerAPI.java # 日志 API
├── infra/ # 基础设施层
│ ├── config/ # 配置管理
│ ├── http/ # HTTP 工具
│ ├── log/ # 日志工具(内部实现)
│ └── service/ # 服务框架
└── service/ # 业务服务层
├── environment/ # 环境服务
└── log/ # 日志服务