资源图标

原创 其他 通过指令获取玩家信息 1.0

完成注册/登录后下载
版权类型
原创
插件中文名称
获取玩家信息
插件英文名称
getPlayerInfo
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
  4. 其他核心
语言支持
中文(简体)
前置组件
PlaceholderAPI
适配版本(Java)
  1. 1.20
  2. 1.19
  3. 1.18
  4. 1.17
  5. 1.16
  6. 1.7
[MD] 一个用于 Spigot/Bukkit 服务器的插件,通过指令获取玩家游戏信息并以 JSON 格式返回。 ## 功能特性 - 🎮 **获取单个玩家信息** - 查询指定玩家的详细游戏数据 - 👥 **批量查询** - 一次性获取所有在线玩家的信息 - 🔌 **PlaceholderAPI 集成** - 支持获取其他插件提供的变量 - 💤 **离线玩家查询** - 支持查询离线玩家的基本信息 - 🚀 **异步处理** - 大量玩家查询时使用异步处理,不阻塞服务器 - 📊 **JSON 格式输出** - 统一的 JSON 格式,便于外部系统集成 - 🔐 **权限控制** - 灵活的权限配置,保护玩家隐私 - 📝 **详细日志** - 完整的审计日志和性能监控 ## 使用方法 ### 指令 **玩家信息指令:** ``` /playerinfo <玩家名> - 获取指定玩家的信息 /playerinfo all - 获取所有在线玩家的信息 /playerinfo reload - 重载配置文件 ``` **服务器信息指令:** ``` /serverinfo - 获取服务器信息(版本、在线人数、插件列表等) ``` **权限检查指令:** ``` /checkperm <玩家名> <权限节点> - 检查玩家是否拥有指定权限 ``` ### 权限 - `playerinfo.use` - 使用 playerinfo 指令的权限(默认) - 控制台自动拥有所有权限 ## 配置文件 ### 配置选项 ```yaml # 权限节点 - 玩家使用指令所需的权限 permission: "playerinfo.use" # 是否启用 PlaceholderAPI 集成 enable-papi: true # 是否允许查询离线玩家 allow-offline-query: true # PlaceholderAPI 变量列表 # 这些变量会在返回的 JSON 中包含 placeholders: - "%vault_eco_balance%" - "%player_level%" - "%player_ping%" ``` ### 配置说明 - **permission**: 定义使用 `/playerinfo` 指令所需的权限节点 - **enable-papi**: 是否启用 PlaceholderAPI 集成(需要安装 PlaceholderAPI 插件) - **allow-offline-query**: 是否允许查询离线玩家的信息 - **placeholders**: 要获取的 PlaceholderAPI 变量列表 ## JSON 响应格式 ### 成功响应(单个玩家) ```json { "success": true, "data": { "name": "PlayerName", "uuid": "xxx-xxx-xxx-xxx", "online": true, "placeholders": { "%player_level%": "30" } } } ``` ### 错误响应 ```json { "success": false, "error": "Player not found" } ``` ### 服务器信息响应 ```json { "success": true, "data": { "serverName": "CraftBukkit", "version": "1.20.1", "bukkitVersion": "1.20.1-R0.1-SNAPSHOT", "onlinePlayers": 5, "maxPlayers": 20, "motd": "A Minecraft Server", "uptime": 3600000, "tps": 20.0, "plugins": [ { "name": "GetPlayerInfo", "version": "1.0", "enabled": true, "authors": ["BuGeDev"] } ], "mods": [ { "modId": "examplemod", "name": "Example Mod", "version": "1.0.0", "description": "An example mod" } ] } } ``` **注意**:Mod 列表仅在混合服务端(Mohist、Arclight、Magma 等)上可用。纯 Bukkit/Spigot 服务器将返回空的 mods 数组。 ### 权限检查响应 **在线玩家:** ```json {"success":true,"data":{"player":"Steve","permission":"minecraft.command.gamemode","hasPermission":true,"online":true,"uuid":"xxx-xxx-xxx"}} ``` **离线玩家:** ```json {"success":true,"data":{"player":"Steve","permission":"minecraft.command.gamemode","hasPermission":true,"online":false,"uuid":"xxx-xxx-xxx","method":"luckperms"}} ``` **支持的权限检查方式:** - `luckperms` - 使用 LuckPerms API(推荐) - `vault` - 使用 Vault API - `op-check` - 检查玩家是否为 OP - `default-deny` - 默认拒绝(无权限插件时) ### 可能的错误消息 - `"Usage: /playerinfo <player|all|reload>"` - playerinfo 指令格式错误 - `"Usage: /checkperm <player> <permission>"` - checkperm 指令格式错误 - `"Permission denied"` - 权限不足 - `"Player not found"` - 玩家不存在或未登录过服务器 - `"Internal error occurred"` - 内部错误 ## 数据字段说明 ### 基础字段 - **name**: 玩家名称 - **uuid**: 玩家的唯一标识符 - **online**: 玩家是否在线(true/false) - **lastPlayed**: 最后登录时间(Unix 时间戳) - **firstPlayed**: 首次登录时间(Unix 时间戳) ### 服务器信息字段 - **serverName**: 服务器名称 - **version**: Minecraft 版本 - **bukkitVersion**: Bukkit 版本 - **onlinePlayers**: 当前在线玩家数 - **maxPlayers**: 最大玩家数 - **motd**: 服务器 MOTD 消息 - **uptime**: 服务器运行时间(毫秒) - **plugins**: Bukkit 插件列表 - **name**: 插件名称 - **version**: 插件版本 - **enabled**: 是否启用 - **authors**: 作者列表 - **mods**: Forge/Fabric Mod 列表(仅混合服务端) - **modId**: Mod ID - **name**: Mod 名称 - **version**: Mod 版本 - **description**: Mod 描述 ### PlaceholderAPI 变量 如果启用了 PlaceholderAPI 集成,`placeholders` 字段会包含配置文件中定义的变量值。 ## 性能优化 ### 异步处理 当查询所有玩家时(`/playerinfo all`),插件会自动使用异步处理: 1. 在异步线程中收集所有玩家数据 2. 收集完成后切换回主线程 3. 构建并发送 JSON 响应 这确保了即使在玩家数量较多(50+)的情况下,也不会阻塞服务器主线程。 ### 性能指标 - 单个玩家查询:通常 < 50ms - 50 个玩家批量查询:通常 < 2 秒 - 异步处理不会影响服务器 TPS ## 兼容性 ### 支持的 Minecraft 版本 - ✅ 1.16.x - ✅ 1.17.x - ✅ 1.18.x - ✅ 1.19.x - ✅ 1.20.x ### 支持的服务器 - ✅ Spigot - ✅ Paper - ✅ Purpur - ⚠️ Bukkit (基础功能) ### 可选依赖 - PlaceholderAPI [/MD]
作者
BuGe
下载
2
查看
127
首次发布
最后更新

评分

0.00 星 0 次评分
后退
顶部 底部