BuGLandAPI 是一个基于 .NET 9 的 C# API 封装库,用于访问布吉岛(Heypixel)相关玩家与对局数据接口。
- 统一
ApiClient,内置 Bearer Token 鉴权 PlayerDataService聚合常用业务接口- 类型化 DTO 与统一响应模型
ApiResponse<T> - 内置枚举与日期转换器,提升序列化兼容性
.
├─ BuGLandAPI.sln
├─ global.json
├─ README.md
└─ BuGLandAPI/
├─ BuGLandAPI.csproj
├─ Converters/
├─ Extensions/
└─ BuGLandAPI/
├─ ApiClient.cs
├─ Services/
├─ DTOs/
└─ Types/
.NET SDK 9.0.x
dotnet restore "./BuGLandAPI.sln"
dotnet build "./BuGLandAPI.sln" -v minimalusing BuGLandAPI.BuGLandAPI;
using BuGLandAPI.BuGLandAPI.DTOs.Requests;
using BuGLandAPI.BuGLandAPI.Services;
var client = new ApiClient("https://api.mcbjd.net/v2", "your-token");
var service = new PlayerDataService(client);
var response = await service.GetPlayerDataAsync(new PlayerDataRequest
{
UserName = "Steve"
});
if (response.Code == 0)
{
Console.WriteLine($"玩家名: {response.Data.PlayerName}");
}
else
{
Console.WriteLine($"请求失败: {response.Message}");
}using BuGLandAPI.BuGLandAPI;
using BuGLandAPI.BuGLandAPI.DTOs.Requests;
using BuGLandAPI.BuGLandAPI.Services;
var client = new ApiClient("https://api.mcbjd.net/v2", "your-token");
var service = new PlayerDataService(client);
var response = await service.GetTotalDataAsync(
new TotalDataRequest { Username = "Steve" }
);
if (response.Code == 0)
{
Console.WriteLine($"大厅经验: {response.Data.Economy.Bjdxp}");
var soloStats = response.Data.Combat.Bedwars.GetStats(BedWarsType.BedWars8);
Console.WriteLine($"胜利局数: {soloStats.Win}");
}
else
{
Console.WriteLine($"请求失败: {response.Message}");
}PlayerDataService 当前提供以下方法(含 endpoint 与参数示例):
- Endpoint:
POST /player - 参数示例:
{
"username": "Steve"
}- Endpoint:
POST /leaderboard - 参数示例:
{
"username": "Steve",
"lb_type": "solo_win_all_java"
}- Endpoint:
POST /gamestats - 参数示例:
{
"username": "Steve",
"gametype": "bedwars",
"subtype": "all"
}- Endpoint:
POST /gamelog/user - 参数示例:
{
"username": "Steve",
"page": 1
}- Endpoint:
POST /gamelog/match - 参数示例:
{
"match": "match_id_example",
"date": "2026-01-01 12:00:00"
}- Endpoint:
POST /guild - 参数示例:
{
"guild": "BuGLand"
}- Endpoint:
POST /player/{year}total - 参数示例(
year为路径参数):
{
"username": "Steve"
}- Endpoint:
POST /player/2025total - 参数示例:
{
"username": "Steve"
}PlayerSingleMatchRequest.Date序列化格式:yyyy-MM-dd HH:mm:ss
欢迎通过 Issue / Pull Request 参与改进,提交前请阅读 CONTRIBUTING.md。
本项目使用 MIT License,详见 LICENSE。
布吉岛 Team(提供API及文档支持)
OpenAI(BUG修复及Readme编写)。
学习参考项目:https://github.com/LangYa466/BJDAPI。