婲样的女孩_
本帖最后由 婲样的女孩_ 于 2022-8-28 15:20 编辑

前言:
bStats是一款强大、免费且开源的插件数据统计系统。它可以统计当前正在使用插件的服务器、使用插件的人数、地区等信息。著名的EssentialsX、WorldEdit插件使用的就是bStats。这款统计系统对插件的性能及服务器的网络影响几乎可以忽略不计。它支持Bukkit/Spigot/Sponge/Bungeecord。本教程将演示如何给Bukkit/Spigot插件添加bStats

详情见:这里

简述:
前面知道了bStats的作用那么我们可以根据他的api获取插件的版本:
  1. https://bstats.org/api/v1/plugins/插件ID/charts/pluginVersion/data
复制代码
他的返回值是一串Json数组
  1. [{"name":"1.0","y":1}]
复制代码
这样我们就可以获取到插件的历史版本从而进行更新的检测啦~

代码:
  1.         try {
  2.             URL url = new URL("https://bstats.org/api/v1/plugins/14080/charts/pluginVersion/data");
  3.             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  4.             conn.setRequestMethod("GET");
  5.             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");
  6.             InputStream inputStream = conn.getInputStream();
  7.             BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
  8.             String versionJson = reader.readLine();
  9.             reader.close();
  10.             int pluginVersion = Integer.parseInt(ClearEntity.getInstance().getDescription().getVersion().replaceAll("\\.", ""));
  11.             Type list = new TypeToken<List<Version>>() {
  12.             }.getType();
  13.             List<Version> versions = new Gson().fromJson(versionJson, list);


  14.             for (Version version : versions) {
  15.                 int serverVersion = Integer.parseInt(version.getName().replaceAll("\\.", ""));
  16.                 if (serverVersion > pluginVersion) {
  17.                     //这里写更新需要的操作
  18.                     return;
  19.                 }
  20.             }
  21.         } catch (Exception ignore) {
  22.             //
  23.         }
复制代码
代码2:TypeToken中的Version
  1. public class Version {
  2.     private String name;
  3.     private String y;

  4.     public String getName() {
  5.         return name;
  6.     }

  7.     public void setName(String name) {
  8.         this.name = name;
  9.     }

  10.     public String getY() {
  11.         return y;
  12.     }

  13.     public void setY(String y) {
  14.         this.y = y;
  15.     }
  16. }
复制代码









第一页 上一页 下一页 最后一页