From 726968765394729d216d81d466b77b1e9fa9b3d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B3=A0=E8=BE=B0?= <93849805+Crsuh2er0@users.noreply.github.com> Date: Tue, 18 Oct 2022 21:31:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++++++ src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/pom.xml b/pom.xml index bb1c2f0..5c1e6e5 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,12 @@ 1.8-R0.1-SNAPSHOT provided + + org.spigotmc + spigot-api + 1.14-R0.1-SNAPSHOT + provided + org.projectlombok lombok diff --git a/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java b/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java index 8d614e1..a1b8263 100644 --- a/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java +++ b/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java @@ -36,9 +36,12 @@ public final class LingsHttpUtils extends JavaPlugin { private final Map httpData = Maps.newConcurrentMap(); @Getter private String pluginName; + String serverVersion; @Override public void onLoad() { + serverVersion = Bukkit.getVersion(); + getLogger().info(serverVersion); instance = this; saveDefaultConfig(); config = getConfig(); From 1cce67045723e27419ac97d2057fb1b838b439e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B3=A0=E8=BE=B0?= <93849805+Crsuh2er0@users.noreply.github.com> Date: Tue, 18 Oct 2022 21:35:04 +0800 Subject: [PATCH 2/3] test --- src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java b/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java index a1b8263..9d5ad9c 100644 --- a/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java +++ b/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java @@ -42,6 +42,8 @@ public final class LingsHttpUtils extends JavaPlugin { public void onLoad() { serverVersion = Bukkit.getVersion(); getLogger().info(serverVersion); + serverVersion = Bukkit.getBukkitVersion(); + getLogger().info(serverVersion); instance = this; saveDefaultConfig(); config = getConfig(); From a1af160c4ebb117e34f7213ac3295ce2daa7421d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B3=A0=E8=BE=B0?= <93849805+Crsuh2er0@users.noreply.github.com> Date: Tue, 18 Oct 2022 21:57:59 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=B9=E9=AB=98?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lingshttputils/LingsHttpUtils.java | 9 ++-- .../lingshttputils/utils/JsonUtils.java | 43 +++++++++++++++-- src/main/resources/config.yml | 48 +++++++++---------- 3 files changed, 67 insertions(+), 33 deletions(-) diff --git a/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java b/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java index 9d5ad9c..fba47fa 100644 --- a/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java +++ b/src/main/java/cn/lingsmc/lingshttputils/LingsHttpUtils.java @@ -34,16 +34,17 @@ public final class LingsHttpUtils extends JavaPlugin { private static LingsHttpUtils instance; @Getter private final Map httpData = Maps.newConcurrentMap(); + public boolean gson = false; @Getter private String pluginName; - String serverVersion; + private String serverVersion; @Override public void onLoad() { - serverVersion = Bukkit.getVersion(); - getLogger().info(serverVersion); serverVersion = Bukkit.getBukkitVersion(); - getLogger().info(serverVersion); + if (serverVersion.compareTo("1.14") > 0) { + gson = true; + } instance = this; saveDefaultConfig(); config = getConfig(); diff --git a/src/main/java/cn/lingsmc/lingshttputils/utils/JsonUtils.java b/src/main/java/cn/lingsmc/lingshttputils/utils/JsonUtils.java index 2f7848c..c4123f2 100644 --- a/src/main/java/cn/lingsmc/lingshttputils/utils/JsonUtils.java +++ b/src/main/java/cn/lingsmc/lingshttputils/utils/JsonUtils.java @@ -1,7 +1,8 @@ package cn.lingsmc.lingshttputils.utils; import cn.lingsmc.lingshttputils.LingsHttpUtils; -import org.bukkit.plugin.Plugin; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.json.simple.JSONObject; @@ -15,12 +16,23 @@ * @apiNote */ public class JsonUtils { - static Plugin plugin = LingsHttpUtils.getInstance(); + static LingsHttpUtils plugin = LingsHttpUtils.getInstance(); private JsonUtils() { } - public static @Nullable JSONObject parseStr(String jsonString) { + public static String getValue(String jsonString, String @NotNull [] keys) { + if (plugin.gson) { + return getValueGson(jsonString, keys); + } else { + return getValueJsonSimple(jsonString, keys); + } + } + + /** + * 使用com.googlecode.json-simple(1.13-) + */ + public static @Nullable JSONObject parseStrJsonsimple(String jsonString) { JSONParser parser = new JSONParser(); try { return (JSONObject) parser.parse(jsonString); @@ -30,8 +42,11 @@ private JsonUtils() { } } - public static @Nullable String getValue(String jsonString, String @NotNull [] keys) { - JSONObject json = parseStr(jsonString); + /** + * 使用com.googlecode.json-simple(1.13-) + */ + public static @Nullable String getValueJsonSimple(String jsonString, String @NotNull [] keys) { + JSONObject json = parseStrJsonsimple(jsonString); if (Objects.isNull(json)) { return null; } @@ -43,4 +58,22 @@ private JsonUtils() { } return value.toString(); } + + /** + * 使用Gson(1.14+) + */ + public static JsonObject parseStrGson(String str) { + return new JsonParser().parse(str).getAsJsonObject(); + } + + /** + * 使用Gson(1.14+) + */ + public static String getValueGson(String str, String @NotNull [] keys) { + JsonObject value = parseStrGson(str); + for (String key : keys) { + value = value.get(key).getAsJsonObject(); + } + return value.toString(); + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index a39acad..143c82e 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -6,38 +6,38 @@ version: 1.2.2 # 每个模块名字随意 # 样例 bilibili_followers: -# 是否已开启 + # 是否已开启 enabled: false -# -# mode -# json 获取json格式的字符串并解析 -# string 直接获取文本 + # + # mode + # json 获取json格式的字符串并解析 + # string 直接获取文本 mode: "json" -# -# key 当模式为json时要获取的值对应的键 -# 只在模式为json时可用 + # + # key 当模式为json时要获取的值对应的键 + # 只在模式为json时可用 key: "data.follower" -# -# apiname 比如你想要PAPI变量名为 %lhu_ab_cd% 那么apiname为"ab_cd" -# 此插件的变量名头为lhu + # + # apiname 比如你想要PAPI变量名为 %lhu_ab_cd% 那么apiname为"ab_cd" + # 此插件的变量名头为lhu apiname: "bilibili_followers" -# -# url 要请求的网页链接 + # + # url 要请求的网页链接 url: "https://api.bilibili.com/x/relation/stat?vmid=359206390" -# -# reqTime 请求超时时间(ms) -# 仅当reqMode: Cycle时可用 + # + # reqTime 请求超时时间(ms) + # 仅当reqMode: Cycle时可用 reqTime: 10000 -# -# refInterval 请求间隔时间 + # + # refInterval 请求间隔时间 refInterval: 30000 -# -# method 请求方法 不指定则使用GET + # + # method 请求方法 不指定则使用GET method: "GET" -# -# reqMode 请求方式 -# Cycle 循环请求 -# inTime 即时请求(注意可能卡住服务器) + # + # reqMode 请求方式 + # Cycle 循环请求 + # inTime 即时请求(注意可能卡住服务器) reqMode: "Cycle" hitokoto: