Skip to content

EnderRealmServerCore 文档

EnderRealmServerCore 是 EnderRealm 服务器的核心插件,提供环境管理、日志服务等基础功能,供其他插件使用。

核心特性

  • 环境管理:通过 API 服务获取当前环境(生产/测试/开发),支持自动适配
  • 日志服务:统一的日志管理,支持 debug/trace 级别,根据环境自动调整
  • 配置管理:统一的配置管理,支持环境变量和 YAML 文件,优先级明确
  • HTTP 客户端:统一的 HTTP 工具,支持重试和超时配置
  • 服务框架:ServiceRegistry 统一管理服务生命周期,便于扩展

文档结构

  • 核心架构 - 了解 EnderRealmServerCore 的内部设计和模块组成
  • 环境 API - 如何在其他插件中使用环境 API
  • 配置说明 - 配置文件格式和环境变量

快速开始

1. 启动 API 服务

bash
cd EnderRealmServerApi

# 复制环境变量模板
cp .env.example .env

# 修改 .env 中的配置

# 启动服务
uv run uvicorn app.main:app --reload

2. 配置 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/                       # 日志服务