# Infinity Dungeons Stats
 
一个用于**Infinity Dungeons**地图的综合统计和排行榜系统。 跟踪玩家最高分、怪物击杀数和总游戏时间,并提供游戏内的排行榜和强大的RESTful API供开发者使用。
---
本插件旨在为您的Infinity Dungeons Roguelike服务器增添竞争优势。它添加了一个强大的统计系统,用于:
* **跟踪玩家进度:** 自动记录每个玩家的最高地牢等级、总击杀数和总游戏时间。
* **促进竞争:** 使用悬浮文本(全息图)在您的世界中显示动态排行榜,展示顶级玩家。
* **吸引您的社区:** 玩家可以查看自己的统计数据或与服务器上最优秀的玩家进行比较。
* **提供开发者工具:** 内置的RESTful API允许您提取统计数据以用于网站、Discord机器人或其他自定义集成。
## ✨ 功能
* **玩家统计跟踪:** 监控并保存每个玩家在地下城中的每次运行的关键数据。
* 达到的最高地牢等级
* 总怪物击杀数
* 总游戏时间
* **游戏内排行榜:**
* 高度可配置的悬浮文本显示(全息图),用于显示顶级击杀数、游戏时间和最大等级。
* 选择单个、轮换的全息图或多个静态的全息图。
* 自定义标题、颜色和格式。
* **玩家指令:**
* `/dun stats [player]` - 查看您自己的或另一位玩家的统计数据。
* `/dun killtop` - 在聊天中显示按怪物击杀数排列的前几名玩家。
* `/dun playtimetop` - 在聊天中显示按游戏时间排列的前几名玩家。
* `/dun maxleveltop` - 在聊天中显示按最大等级排列的前几名玩家。
* **RESTful API:**
* 可选的内置API服务器,通过简单的HTTP请求公开玩家和服务器统计数据。(需要在服务器上打开端口)。
* **轻量级和高效:** 专为Infinity Dungeons设计,以尽可能高的性能运行。
## ⚙️ 配置
插件可以通过`config.yml`完全配置。 您可以启用/禁用功能、设置全息图位置和自定义所有消息。
```yaml
# DungeonStats 插件配置
database: "data.yml"
api-server:
enabled: true
port: 8080
log-checker:
enabled: true
interval-ticks: 100
holograms:
enabled: false
refresh-interval-seconds: 10
# 'SINGLE': 使用一个 text_display 实体,在不同的排行榜之间轮换。
# 'MULTIPLE': 使用一个单独的 text_display 实体来显示每个排行榜。
display-mode: 'SINGLE'
single-display:
location: "world,0.5,100.5,0.5" # 格式: "world_name,x,y,z"
# 显示每个排行榜前切换的持续时间(以秒为单位)。
rotation-interval-seconds: 5
multiple-displays:
killtop:
location: "world,5.5,101.5,0.5"
playtimetop:
location: "world,0.5,101.5,5.5"
maxleveltop:
location: "world,-4.5,101.5,0.5"
messages:
title-kills: "&6&l--- Kills Leaderboard ---"
title-playtime: "&6&l--- Playtime Leaderboard ---"
title-maxlevel: "&6&l--- Max Level Leaderboard ---"
# 可用的占位符:{rank}, {player_name}, {value}
rank-entry: "#{rank} &b{player_name}: &f{value}"
rank-color-1: "&e" # 黄金用于等级 1
rank-color-2: "&f" # 银色用于等级 2
rank-color-3: "&6" # 青铜用于等级 3
rank-color-default: "&7" # 其他等级的默认颜色
command-usage: "&cUsage: /dun "
command-player-not-found: "&cCould not find data for player {player_name}"
command-no-data: "&7No data available yet"
stats-title: "&6--- Stats for {player_name} ---"
stats-line-maxlevel: "&eHighest Dungeon Level: &f{value}"
stats-line-kills: "&eTotal Kills: &f{value}"
stats-line-playtime: "&eTotal Playtime: &f{value}"
```
## 🔌 RESTful API 文档
如果 `api-server.enabled` 设置为 `true`,则该插件将在配置的端口上托管一个简单的 API 服务器。 **这会将游戏数据公开到远程服务器连接,如果您不想使其公开,则必须相应地进行防火墙设置。**
## 📋 安装
1. 下载插件的最新版本。
2. 将 `.jar` 文件放入服务器的 `plugins` 文件夹中。
3. 重启您的服务器。
4. 通过编辑 `plugins/RougeStats/config.yml` 来配置插件。
5. 再次重启服务器以应用更改。
## ❗ 依赖项
* **必需:** 您的服务器必须运行 **Infinity Dungeons** 地图。本插件专门设计用于配合其机制工作。
* **全息图:** 此插件使用内置的 `text_display` 实体,不需要单独的全息图插件。