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: