本帖最后由 婲样的女孩_ 于 2022-8-28 15:20 编辑
前言:
详情见:这里
简述:
前面知道了bStats的作用那么我们可以根据他的api获取插件的版本:
复制代码他的返回值是一串Json数组
复制代码这样我们就可以获取到插件的历史版本从而进行更新的检测啦~
代码:复制代码代码2:TypeToken中的Version
复制代码
前言:
bStats是一款强大、免费且开源的插件数据统计系统。它可以统计当前正在使用插件的服务器、使用插件的人数、地区等信息。著名的EssentialsX、WorldEdit插件使用的就是bStats。这款统计系统对插件的性能及服务器的网络影响几乎可以忽略不计。它支持Bukkit/Spigot/Sponge/Bungeecord。本教程将演示如何给Bukkit/Spigot插件添加bStats
详情见:这里
简述:
前面知道了bStats的作用那么我们可以根据他的api获取插件的版本:
- https://bstats.org/api/v1/plugins/插件ID/charts/pluginVersion/data
- [{"name":"1.0","y":1}]
代码:
- try {
- URL url = new URL("https://bstats.org/api/v1/plugins/14080/charts/pluginVersion/data");
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");
- conn.setRequestProperty("User-Agent", " Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36");
- InputStream inputStream = conn.getInputStream();
- BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
- String versionJson = reader.readLine();
- reader.close();
- int pluginVersion = Integer.parseInt(ClearEntity.getInstance().getDescription().getVersion().replaceAll("\\.", ""));
- Type list = new TypeToken<List<Version>>() {
- }.getType();
- List<Version> versions = new Gson().fromJson(versionJson, list);
- for (Version version : versions) {
- int serverVersion = Integer.parseInt(version.getName().replaceAll("\\.", ""));
- if (serverVersion > pluginVersion) {
- //这里写更新需要的操作
- return;
- }
- }
- } catch (Exception ignore) {
- //
- }
- public class Version {
- private String name;
- private String y;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getY() {
- return y;
- }
- public void setY(String y) {
- this.y = y;
- }
- }