• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

让插件访问 Minebbs 资源实现自动检查更新

让插件访问 Minebbs 资源实现自动检查更新

版权类型
原创
原帖地址
#
适配版本(Java)
  1. 1.21
  2. 1.20
  3. 1.19
  4. 1.18
  5. 1.17
  6. 1.16
  7. 1.15
  8. 1.14
  9. 1.13
  10. 1.12
  11. 1.11
  12. 1.10
  13. 1.9
  14. 1.8
  15. 1.7
前言
  • 引用 Minebbs 提供的开放 API,让插件在启用时可以访问论坛获取插件的最新版本,结合判断让插件实现自动检查更新。
  • 相关 API 文档:https://docs.minebbs.com/
快捷代码

使用该代码需要导入 Gson 库,Maven 导入:
XML:
<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.9</version>
    </dependency>
</dependencies>

实现代码:
Java:
    @Override
    public void onEnable() {
        // 调用示例
        String latestVersion = getResourceVersion("9993");
        if (latestVersion != null && !getDescription().getVersion().equals(latestVersion)) {
            getLogger().info("发现新版本: " + latestVersion);
        }
    }

    // 检查更新方法
    public static String getResourceVersion(String resourceId) {
        String apiUrl = "https://api.minebbs.com/api/openapi/v1/resources/" + resourceId;
        try {
            HttpURLConnection connection = (HttpURLConnection) new URL(apiUrl).openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);

            try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
                String response = in.lines().collect(Collectors.joining());
                JsonObject jsonResponse = JsonParser.parseString(response).getAsJsonObject();
                int statusCode = jsonResponse.get("status").getAsInt();

                if (statusCode == 2000) {
                    return jsonResponse.get("data").getAsJsonObject().get("version").getAsString();
                }

                Bukkit.getLogger().warning("检查更新时发生错误: " + jsonResponse.get("message").getAsString());
                return null;
            }
        } catch (Exception e) {
            Bukkit.getLogger().warning("检查更新时发生错误: " + e.getMessage());
            return null;
        }
    }
作者
PuddingKC
查看
498
首次发布
最后更新

评分

4.00 星 1 次评分

PuddingKC 的其他资源

最新更新

  1. 新增调用示例

    新增调用示例 修改方法

最新评价

好东西收藏了
后退
顶部 底部