前言
使用该代码需要导入 Gson 库,Maven 导入:
实现代码:
- 引用 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;
}
}