- 版权类型
- 原创
- 插件中文名称
- 咕UID
- 插件英文名称
- GuUID
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
GuUID
一个简单易用的UID系统插件
一款简单易用、功能完善的游戏内UID系统一个简单易用的UID系统插件
特性
- 支持多种UID生成格式安装
将插件拖进 plugins 目录安装即可支持版本
理论支持1.17+,测试使用版本1.20.1命令
/guid <player|uid|uuid|ip> - 通过玩家名、UID、UUID、IP查询玩家的信息/guid addcustom <player|uid> <key> <content> - 通过玩家名、UID给玩家添加自定义字段,key和content
/guid json <player|uid> - 通过玩家名、UID查询玩家信息并使用json格式返回
/guid jsonip <player|uid> - 通过IP查询玩家信息并使用json格式返回
插件API
Java:
addCustomField("Notch", "胜利", "5"); //添加自定义字段
getPlayerInfoAsJson("Notch"); //查询玩家信息(JSON)
getPlayersByIpAsJson("127.0.0.1"); //使用IP查询玩家信息(JSON)
开发文档
开发文档
获取插件实例
API方法
1. 添加自定义字段
2. 查询玩家信息(JSON格式)
3. 根据IP查询玩家信息(JSON格式)
JSON响应格式
单个玩家信息
IP查询结果
完整示例
添加自定义字段并查询
处理JSON响应
错误处理
注意事项
版本要求
获取插件实例
Java:
Main guidPlugin = (Main) Bukkit.getPluginManager().getPlugin("GuUID");
if (guidPlugin == null) {
getLogger().warning("GuUID插件未找到,请确保已正确安装!");
return;
}
API方法
1. 添加自定义字段
Java:
boolean addCustomField(String identifier, String key, String content)
- 功能: 为玩家添加或更新自定义字段
- 参数:
- identifier: 玩家标识符(用户名、UID或UUID)
- key: 字段键名
- content: 字段值
- 返回值: 成功返回true,失败返回false
Java:
boolean success = guidPlugin.addCustomField("Notch", "victories", "5");
if (success) {
getLogger().info("自定义字段添加成功!");
}
2. 查询玩家信息(JSON格式)
Java:
String getPlayerInfoAsJson(String identifier)
- 功能: 查询玩家信息并以JSON格式返回
- 参数: 玩家标识符(用户名、UID或UUID)
- 返回值: JSON格式的玩家信息字符串
Java:
String json = guidPlugin.getPlayerInfoAsJson("Notch");
getLogger().info("玩家信息: " + json);
3. 根据IP查询玩家信息(JSON格式)
Java:
String getPlayersByIpAsJson(String ip)
- 功能: 查询使用指定IP的所有玩家信息
- 参数: IP地址
- 返回值: JSON数组格式的玩家信息字符串
Java:
String jsonArray = guidPlugin.getPlayersByIpAsJson("127.0.0.1");
getLogger().info("IP关联玩家: " + jsonArray);
JSON响应格式
单个玩家信息
JSON:
{
"uid": "10000001",
"uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
"username": "Notch",
"last_ip": "127.0.0.1",
"first_join": "2023-01-01 12:00:00",
"last_join": "2023-01-02 14:30:00",
"custom_fields": {
"victories": "5",
"defeats": "3"
}
}
IP查询结果
JSON:
[
{
"uid": "10000001",
"uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
"username": "Notch",
"last_ip": "127.0.0.1",
"first_join": "2023-01-01 12:00:00",
"last_join": "2023-01-02 14:30:00",
"custom_fields": {
"victories": "5",
"defeats": "3"
}
},
{
"uid": "10000002",
"uuid": "853c80ef-3c37-4a12-a5fa-4b5a6a5a5a5a",
"username": "Steve",
"last_ip": "127.0.0.1",
"first_join": "2023-01-01 13:00:00",
"last_join": "2023-01-02 15:30:00",
"custom_fields": {
"victories": "2",
"defeats": "5"
}
}
]
完整示例
添加自定义字段并查询
Java:
public class GuUIDDemo extends JavaPlugin {
private Main guidPlugin;
@Override
public void onEnable() {
guidPlugin = (Main) Bukkit.getPluginManager().getPlugin("GuUID");
if (guidPlugin == null) {
getLogger().warning("GuUID插件未找到!");
return;
}
// 添加自定义字段
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
boolean success = guidPlugin.addCustomField("Notch", "victories", "5");
if (success) {
getLogger().info("成功添加自定义字段!");
// 查询玩家信息
String json = guidPlugin.getPlayerInfoAsJson("Notch");
getLogger().info("玩家信息: " + json);
}
});
}
}
处理JSON响应
Java:
// 使用org.json库
JSONObject playerData = new JSONObject(json);
String uid = playerData.getString("uid");
String username = playerData.getString("username");
// 获取自定义字段
JSONObject customFields = playerData.getJSONObject("custom_fields");
if (customFields.has("victories")) {
int victories = customFields.getInt("victories");
getLogger().info("胜利次数: " + victories);
}
错误处理
- 如果玩家不存在,addCustomField会返回false
- 如果查询不到玩家,getPlayerInfoAsJson会返回空JSON对象{}
- 如果查询不到IP相关的玩家,getPlayersByIpAsJson会返回空数组[]
注意事项
- 确保在调用API前GuUID插件已加载
- API调用是线程安全的,可以在异步任务中使用
- 自定义字段的键名应避免使用特殊字符
- 建议在插件依赖中添加GuUID作为软依赖
版本要求
- GuUID插件版本: 1.0+
- Minecraft版本: 1.17+
- Java版本: 16+