• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

原创 工具 GuUID - 一个简单易用的UID系统插件 1.0.0

请登录后获取
版权类型
原创
插件中文名称
咕UID
插件英文名称
GuUID
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
语言支持
中文(简体)
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
GuUID
一个简单易用的UID系统插件

一款简单易用、功能完善的游戏内UID系统

特性​

- 支持多种UID生成格式
1758442753868.webp
- 支持多种数据存储方式,适配单个服务器、群组服
1758442854811.webp
- 支持添加、查询自定义字段,可作为玩家系统使用
1758443090907.webp
- 支持API接口调用,其他插件可使用API对接添加、查询玩家信息/自定义字段


安装​

将插件拖进 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)


开发文档​

开发文档

获取插件实例

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会返回空数组[]

注意事项
  1. 确保在调用API前GuUID插件已加载
  2. API调用是线程安全的,可以在异步任务中使用
  3. 自定义字段的键名应避免使用特殊字符
  4. 建议在插件依赖中添加GuUID作为软依赖

版本要求
  • GuUID插件版本: 1.0+
  • Minecraft版本: 1.17+
  • Java版本: 16+
作者
Benxp
价格
80.00金粒
下载
5
查看
317
首次发布
最后更新

评分

0.00 星 0 次评分

Benxp 的其他资源

后退
顶部 底部