# 🏆 **Rexon Baltop**
所有新的更新仅在此处可用:https://builtbybit.com/resources/rexon-baltop.77092
**最先进、性能优化过的 PaperMC 和 Purpur 服务器的排行榜插件,拥有 35+ 个内置占位符!** 🚀
灵感来自 DonutSMP 的 baltop GUI 系统,但完全重新构想,具有无与伦比的自定义选项。 体验下一代插件,利用闪电般快速的文件存储,并且 **完全免费**!
***
## ✨ **主要特性**
### 🎨 **美观的 GUI 界面**
- **分页的玩家排行榜**,带有自定义玩家头像
- **交互式导航**(上一页/下一页按钮)
- **实时搜索系统**(即将推出)
- **实时刷新按钮**,带有智能反馈
- **响应式设计**,适用于任何服务器规模
**注意:只有当有足够的玩家可以填满其他页面时,才会显示上一页和下一页箭头按钮!**


### ⚡ **超快性能**
- **基于文件存储** - 使用 YAML 和 JSON!
- **异步处理** - 从不阻塞主服务器线程
- **智能保存系统** - 闪电般快速的数据检索
- **线程安全操作** - 为高性能服务器而设计
### 🎯 **高级数字格式**
- **自动缩写** (1,000 → 1K, 1,000,000 → 1M,等等)
- **智能小数处理** (10,000 → 10K, 10,100 → 10.1K)
- **可自定义格式** (高级, 千位分隔符, 纯文本)
- **多货币支持** 通过 Vault 集成



### 🛡️ **智能页面管理**
- **智能页面路由** - 无效的页面重定向到最高可用页面
- **动态页面计算** - 自动调整到玩家数量
- **无 Tab 补全垃圾** - 清理命令建议
- **边界保护** - 不会显示空页面

### 🔧 **完全自定义**
- **所有消息均可配置** - 颜色、格式、语言
- **完整的 GUI 自定义** - 材料、名称、lore、插槽
- **声音系统** - 可自定义的音频反馈
- **基于权限的访问** - 粒度控制系统

### 📊 **PlaceholderAPI 集成**
- **35+ 个内置占位符**,用于在任何地方显示 baltop 数据
🎯 玩家特定占位符:
```text
%rexonbaltop_rank% # 玩家当前排名
%rexonbaltop_position% # 与 rank 相同 (备用)
%rexonbaltop_balance% # 玩家格式化的余额 (例如 "1.5M")
%rexonbaltop_money% # 与 balance 相同 (备用)
%rexonbaltop_balance_raw% # 玩家原始余额数字 (例如 "1500000")
%rexonbaltop_money_raw% # 与 balance_raw 相同 (备用)
```
🏆 顶级玩家占位符:
```text
# 顶级 1 玩家
%rexonbaltop_top_1_name% # 富裕玩家 #1 的姓名
%rexonbaltop_top_1_balance% # 富裕玩家 #1 的格式化余额
%rexonbaltop_top_1_balance_raw% # 富裕玩家 #1 的原始余额
%rexonbaltop_top_1_rank% # 位置 (始终为 "1")
# 顶级 2 玩家
%rexonbaltop_top_2_name% # 富裕玩家 #2 的姓名
%rexonbaltop_top_2_balance% # 富裕玩家 #2 的格式化余额
%rexonbaltop_top_2_balance_raw% # 富裕玩家 #2 的原始余额
# 顶级 3 玩家
%rexonbaltop_top_3_name% # 富裕玩家 #3 的姓名
%rexonbaltop_top_3_balance% # 富裕玩家 #3 的格式化余额
%rexonbaltop_top_3_balance_raw% # 富裕玩家 #3 的原始余额
# 继续用于任何位置 (top_4, top_5, 等等)
%rexonbaltop_top_10_name% # 适用于任何位置!
```
📈 基于排名的占位符:
```text
%rexonbaltop_rank_1_name% # 顶级玩家的替代格式
%rexonbaltop_rank_1_balance% # 相同数据,不同的占位符格式
%rexonbaltop_rank_1_balance_raw% # #1 排名中的原始余额
%rexonbaltop_rank_2_name% # 排名第 2 玩家的姓名
%rexonbaltop_rank_5_balance% # 排名第 5 玩家的余额
# 适用于任何排名数字!
```
📊 服务器统计:
```text
%rexonbaltop_total_players% # 拥有经济数据的所有玩家数量
%rexonbaltop_total_pages% # 可用的 GUI 页面的总数
```
💡 用法示例:
```text
# 在你的积分板、聊天格式或任何支持 PAPI 的插件中:
- "您的排名: #%rexonbaltop_rank%"
- "您的余额: %rexonbaltop_balance%"
- "最富有玩家:%rexonbaltop_top_1_name% (%rexonbaltop_top_1_balance%)"
- "服务器经济: %rexonbaltop_total_players% 名玩家被跟踪"
```
***
## 🎮 **命令 & 权限**
### 📝 **命令**
```yaml
/baltop # 打开 baltop GUI (主命令)
/baltop gui # 明确地打开 baltop GUI
/baltop # 打开特定页面 (智能路由)
/baltop reload # 重新加载配置文件 (管理员)
/baltop update # 强制数据刷新 (管理员)
/baltop help # 显示帮助菜单
```
### 🔐 **权限**
```yaml
rexonbaltop.use # 使用 baltop 命令和 GUI (默认: true)
rexonbaltop.admin # 访问管理员命令 (默认: op)
rexonbaltop.* # 所有权限 (默认: op)
```
## 📦 **所需依赖**
### 🔗 **必备**
- **[Vault](https://www.spigotmc.org/resources/vault.34315/)** - 经济集成 & 权限
- **[PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/)** - 高级占位符支持
- **任何经济插件** ([EssentialsX](https://essentialsx.net/downloads.html), CMI, 等等)
***
## 🚀 **快速设置**
1. **下载** RexonBaltop1.0.0.jar
2. **安装依赖:** [Vault](https://www.spigotmc.org/resources/vault.34315/) + [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) + 你的经济插件
3. **拖放** 到你的 `/plugins/` 文件夹中
4. **重启** 你的服务器
5. **配置** `plugins/RexonBaltop/config.yml` 以满足您的喜好
6. **享受** 当前可用的最先进和免费的 baltop 系统!
**🎉 今天就体验 Minecraft 插件的未来!**
*由 VYREXEN 开发 - 为性能而设计,为完美而打造。*
config.yml:
```yaml
# ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
# ʀᴇxᴏɴ ʙᴀʟᴛᴏᴘ ᴄᴏɴꜰɪɢ
# ᴀᴅᴠᴀɴᴄᴇᴅ ʙᴀʟᴛᴏᴘ ᴘʟᴜɢɪɴ
# ᴄᴏᴍᴘᴀᴛɪʙʟᴇ ᴡɪᴛʜ ᴍɪɴᴇᴄʀᴀꜰᴛ 1.20.1+ ꜱᴇʀᴠᴇʀꜱ
# ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
# ᴅᴀᴛᴀʙᴀꜱᴇ ᴄᴏɴꜰɪɢᴜʀᴀᴛɪᴏɴ (ꜰɪʟᴇ-ʙᴀꜱᴇᴅ)
database:
type: "YAML" # YAML or JSON
file: "baltop_data.yml"
auto-save: true
save-interval: 120 # seconds
# ᴜᴘᴅᴀᴛᴇ ꜱᴇᴛᴛɪɴɢꜱ
update:
interval: 60 # ꜱᴇᴄᴏɴᴅꜱ
auto-update: true # ᴅᴏɴ'ᴛ ᴄʜᴀɴɢᴇ
# ᴄᴜʀʀᴇɴᴄy ꜱᴇᴛᴛɪɴɢꜱ
currency:
symbol: "$"
# symbol: "£"
# symbol: "¥"
# symbol: "€"
# ꜱᴍᴀʀᴛ ɴᴜᴍʙᴇʀ ꜰᴏʀᴍᴀᴛᴛɪɴɢ ꜱyꜱᴛᴇᴍ
number-formatting:
enabled: true
format: "ADVANCED" # ADVANCED, COMMA, PLAIN
# ᴀʙʙʀᴇᴠɪᴀᴛɪᴏɴ ꜱᴇᴛᴛɪɴɢꜱ
abbreviations:
thousand: "K"
million: "M"
billion: "B"
trillion: "T"
# ꜱᴍᴀʀᴛ ᴅᴇᴄɪᴍᴀʟ ꜱᴇᴛᴛɪɴɢꜱ - VALIDATED
decimals:
show-decimals: true
decimal-places: 2 # ᴍᴀx 2 - ᴠᴀʟɪᴅᴀᴛᴇᴅ ɪɴ ᴄᴏᴅᴇ
hide-zero-decimals: true # 10000→10K, 10100→10.1K, 10010→10.01K
# ɢᴜɪ ᴄᴏɴꜰɪɢᴜʀᴀᴛɪᴏɴ
gui:
title: "ᴍᴏꜱᴛ ᴍᴏɴᴇʏ - ᴘᴀɢᴇ {current}"
size: 54
max-players-per-page: 45
player-heads:
enabled: true
buttons:
previous:
material: "ARROW"
name: "§e← ᴘʀᴇᴠɪᴏᴜꜱ ᴘᴀɢᴇ"
lore:
- "§7ᴄʟɪᴄᴋ ᴛᴏ ɢᴏ ᴛᴏ ᴛʜᴇ ᴘʀᴇᴠɪᴏᴜꜱ ᴘᴀɢᴇ"
slot: 45
next:
material: "ARROW"
name: "§eɴᴇxᴛ ᴘᴀɢᴇ →"
lore:
- "§7ᴄʟɪᴄᴋ ᴛᴏ ɢᴏ ᴛᴏ ᴛʜᴇ ɴᴇxᴛ ᴘᴀɢᴇ"
slot: 53
search:
material: "COMPASS"
name: "§b🔍 ꜱᴇᴀʀᴄʜ ᴘʟᴀʏᴇʀ"
lore:
- "§e✎ ᴄʟɪᴄᴋ ᴛᴏ ꜱᴇᴀʀᴄʜ ᴀ ꜱᴘᴇᴄɪꜰɪᴄ ᴘʟᴀʏᴇʀ!"
slot: 50
refresh:
material: "EMERALD"
name: "§a⟲ ʀᴇꜰʀᴇꜱʜ ᴅᴀᴛᴀ"
lore:
- "§a⟲ ᴄʟɪᴄᴋ ᴛᴏ ʀᴇꜰʀᴇꜱʜ!"
slot: 49
close:
material: "BARRIER"
name: "§c✖ ᴄʟᴏꜱᴇ"
lore:
- "§7ᴄʟɪᴄᴋ ᴛᴏ ᴄʟᴏꜱᴇ ᴛʜᴇ ɢᴜɪ"
slot: 46
page-info:
material: "PAPER"
name: "§6📄 ᴘᴀɢᴇ {current}/{total}"
lore: []
slot: 52
player-head:
material: "PLAYER_HEAD"
name: "§e👤 {player}"
lore:
- "§7ʏᴏᴜʀ ᴘʀᴏꜰɪʟᴇ"
- "§7ʙᴀʟᴀɴᴄᴇ: §a{balance}"
- "§7ᴘᴏꜱɪᴛɪᴏɴ: §6#{rank}"
slot: 48
player-entry:
name: "§e{player}"
lore:
- "§7ʙᴀʟᴀɴᴄᴇ: §a{balance}"
- "§7ᴘᴏꜱɪᴛɪᴏɴ: §6#{rank}"
# ᴍᴇꜱꜱᴀɢᴇꜱ ᴄᴏɴꜰɪɢᴜʀᴀᴛɪᴏɴ
messages:
gui:
opening: "§7ᴏᴘᴇɴɪɴɢ ʙᴀʟᴛᴏᴘ ɢᴜɪ..."
opening-enabled: true
# REMOVED: closing messages (no longer used)
refreshed-successfully: "§7ɢᴜɪ ʀᴇꜰʀᴇꜱʜᴇᴅ ꜱᴜᴄᴄᴇꜱꜱꜰᴜʟʟʏ"
search-coming-soon: "§bꜱᴇᴀʀᴄʜ ꜰᴇᴀᴛᴜʀᴇ ᴄᴏᴍɪɴɢ ꜱᴏᴏɴ!"
previous-page: "§eᴘʀᴇᴠɪᴏᴜꜱ ᴘᴀɢᴇ!"
next-page: "§eɴᴇxᴛ ᴘᴀɢᴇ!"
player-info:
profile-header: "§6§l▰▰▰ ʏᴏᴜʀ ᴘʀᴏꜰɪʟᴇ ▰▰▰"
balance-line: "§7ʙᴀʟᴀɴᴄᴇ: §a{balance}"
rank-line: "§7ᴘᴏꜱɪᴛɪᴏɴ: §6#{rank}"
rank-unranked: "§7ᴘᴏꜱɪᴛɪᴏɴ: §cᴜɴʀᴀɴᴋᴇᴅ"
commands:
reload-success: "§aʀᴇxᴏɴʙᴀʟᴛᴏᴘ ʀᴇʟᴏᴀᴅᴇᴅ!"
reload-failed: "§cꜰᴀɪʟᴇᴅ ᴛᴏ ʀᴇʟᴏᴀᴅ: {error}"
update-started: "§eᴜᴘᴅᴀᴛɪɴɢ ᴅᴀᴛᴀ..."
update-completed: "§aᴜᴘᴅᴀᴛᴇ ᴄᴏᴍᴘʟᴇᴛᴇᴅ! {count} ᴘʟᴀʏᴇʀꜱ ᴘʀᴏᴄᴇꜱꜱᴇᴅ."
players-only: "§cᴛʜɪꜱ ᴄᴏᴍᴍᴀɴᴅ ɪꜱ ᴏɴʟy ꜰᴏʀ ᴘʟᴀʏᴇʀꜱ!"
unknown-subcommand: "§cᴜɴᴋɴᴏᴡɴ ꜱᴜʙᴄᴏᴍᴍᴀɴᴅ: {subcommand}"
invalid-page: "§cᴘᴀɢᴇ ɴᴜᴍʙᴇʀ ᴍᴜꜱᴛ ʙᴇ ɢʀᴇᴀᴛᴇʀ ᴛʜᴀɴ 0!"
permissions:
no-permission: "§cʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪꜱꜱɪᴏɴ!"
no-use-permission: "§cʏᴏᴜ ᴅᴏɴ'ᴛ ʜᴀᴠᴇ ᴘᴇʀᴍɪꜱꜱɪᴏɴ ᴛᴏ ᴜꜱᴇ ʙᴀʟᴛᴏᴘ!"
no-admin-permission: "§cʏᴏᴜ ɴᴇᴇᴅ ᴀᴅᴍɪɴ ᴘᴇʀᴍɪꜱꜱɪᴏɴ!"
errors:
gui-failed: "§cꜰᴀɪʟᴇᴅ ᴛᴏ ᴏᴘᴇɴ ɢᴜɪ: {error}"
database-error: "§cᴅᴀᴛᴀʙᴀꜱᴇ ᴇʀʀᴏʀ: {error}"
economy-error: "§cᴇᴄᴏɴᴏᴍy ᴇʀʀᴏʀ: {error}"
update-failed: "§cꜰᴀɪʟᴇᴅ ᴛᴏ ᴜᴘᴅᴀᴛᴇ ᴅᴀᴛᴀ: {error}"
help:
header: "§6§l═══════ ʀᴇxᴏɴʙᴀʟᴛᴏᴘ ʜᴇʟᴘ ═══════"
basic-commands: "§e§lʙᴀꜱɪᴄ ᴄᴏᴍᴍᴀɴᴅꜱ:"
baltop-cmd: "§e/baltop §7- ᴏᴘᴇɴ ʙᴀʟᴛᴏᴘ ɢᴜɪ"
baltop-gui-cmd: "§e/baltop gui §7- ᴏᴘᴇɴ ʙᴀʟᴛᴏᴘ ɢᴜɪ"
baltop-page-cmd: "§e/baltop §7- ᴏᴘᴇɴ ꜱᴘᴇᴄɪꜰɪᴄ ᴘᴀɢᴇ"
admin-commands: "§6§lᴀᴅᴍɪɴ ᴄᴏᴍᴍᴀɴᴅꜱ:"
reload-cmd: "§e/baltop reload §7- ʀᴇʟᴏᴀᴅ ᴄᴏɴꜰɪɢ"
update-cmd: "§e/baltop update §7- ᴜᴘᴅᴀᴛᴇ ᴅᴀᴛᴀ"
help-cmd: "§e/baltop help §7- ꜱʜᴏᴡ ᴛʜɪꜱ ʜᴇʟᴘ"
success:
data-updated: "§aᴅᴀᴛᴀ ᴜᴘᴅᴀᴛᴇᴅ!"
config-reloaded: "§aᴄᴏɴꜰɪɢ ʀᴇʟᴏᴀᴅᴇᴅ!"
gui-opened: "§aɢᴜɪ ᴏᴘᴇɴᴇᴅ!"
# ꜱᴏᴜɴᴅ ᴄᴏɴꜰɪɢᴜʀᴀᴛɪᴏɴ
sounds:
enabled: true
global-volume: 1.0
silent-mode: false
name: "ENTITY_EXPERIENCE_ORB_PICKUP"
volume: 1.0
pitch: 1.0
# ᴄᴀᴄʜᴇ ꜱᴇᴛᴛɪɴɢꜱ
cache:
enabled: true
expire-time: 600
# ᴘʟᴜɢɪɴ ꜱᴇᴛᴛɪɴɢꜱ
debug: false
# ᴘʟᴀᴄᴇʜᴏʟᴅᴇʀᴀᴘɪ ᴄᴏɴꜰɪɢᴜʀᴀᴛɪᴏɴ
placeholderapi:
enabled: true
```