From fb75b4d95f8c93ecc5ec5fe31168dbdb5532170d Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Mon, 18 Mar 2024 16:49:54 +0800 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +- build.gradle.kts | 2 +- .../plugin/core/bukkit/HamsterCorePlugin.java | 4 +- .../core/common/util/UpdateCheckUtils.java | 103 +++++++++--------- 4 files changed, 60 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index 2d09797..f864603 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ repositories { dependencies { // 对于 Bukkit 插件 - compileOnly("cn.hamster3.mc.plugin:core-bukkit:1.3.2") + compileOnly("cn.hamster3.mc.plugin:core-bukkit:1.3.3-SNAPSHOT") // 对于 BungeeCord 插件 - compileOnly("cn.hamster3.mc.plugin:core-bungee:1.3.2") + compileOnly("cn.hamster3.mc.plugin:core-bungee:1.3.3-SNAPSHOT") } ``` @@ -54,13 +54,13 @@ dependencies { cn.hamster3.mc.plugin core-bukkit - 1.3.2 + 1.3.3-SNAPSHOT cn.hamster3.mc.plugin core-bungee - 1.3.2 + 1.3.3-SNAPSHOT diff --git a/build.gradle.kts b/build.gradle.kts index f523142..d45a607 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.3.2" +version = "1.3.3-SNAPSHOT" subprojects { apply { diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java index 5f848b0..37e1f9c 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java @@ -27,7 +27,6 @@ import org.bukkit.scheduler.BukkitTask; import org.jetbrains.annotations.NotNull; import java.io.File; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; @@ -127,7 +126,8 @@ public class HamsterCorePlugin extends JavaPlugin { YamlConfig config = YamlConfig.load(reader); UpdateCheckUtils.showUpdate(plugin.getName(), config, Bukkit.getConsoleSender()::sendMessage); } - } catch (IOException ignored) { + } catch (Exception e) { + e.printStackTrace(); } } }); diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java index d793821..bed8a31 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java @@ -14,6 +14,9 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; public final class UpdateCheckUtils { private static final JsonParser JSON_PARSER = new JsonParser(); @@ -21,59 +24,59 @@ public final class UpdateCheckUtils { private UpdateCheckUtils() { } - public static void showUpdate(@NotNull String pluginName, @NotNull ConfigSection config, @NotNull UpdateReceiver sender) { + public static void showUpdate(@NotNull String pluginName, @NotNull ConfigSection config, @NotNull UpdateReceiver sender) throws IOException { String version = config.getString("version"); if (version == null) { return; } String checkType = config.getString("CHECK_TYPE", ""); - try { - switch (checkType) { - case "GITEA_RELEASES": { - String baseUrl = config.getString("GIT_BASE_URL"); - String gitRepo = config.getString("GIT_REPO"); - String downloadUrl = config.getString("DOWNLOAD_URL"); - if (baseUrl == null || gitRepo == null || downloadUrl == null) { - return; - } - String gitToken = config.getString("GIT_TOKEN"); - String lastRelease = getGiteaLastRelease(baseUrl, gitRepo, gitToken); - if (lastRelease == null) { - break; - } - if (lastRelease.compareToIgnoreCase(version) <= 0) { - break; - } - sender.sendMessage(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease)); - sender.sendMessage(String.format("§b下载链接: §n%s", downloadUrl)); - break; - } - case "GITLAB_RELEASES": { - String baseUrl = config.getString("GIT_BASE_URL"); - String gitRepo = config.getString("GIT_REPO"); - String downloadUrl = config.getString("DOWNLOAD_URL"); - if (baseUrl == null || gitRepo == null || downloadUrl == null) { - return; - } - String gitToken = config.getString("GIT_TOKEN"); - int projectID = getGitlabProjectID(baseUrl, gitRepo, gitToken); - if (projectID < 0) { - break; - } - String lastRelease = getGitlabLastRelease(baseUrl, projectID, gitToken); - if (lastRelease == null) { - break; - } - if (lastRelease.compareToIgnoreCase(version) <= 0) { - break; - } - sender.sendMessage(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease)); - sender.sendMessage(String.format("§b下载链接: §n%s", downloadUrl)); - break; - } - } - } catch (Exception ignored) { + String baseUrl = config.getString("GIT_BASE_URL"); + String gitRepo = config.getString("GIT_REPO"); + String downloadUrl = config.getString("DOWNLOAD_URL"); + if (baseUrl == null || gitRepo == null || downloadUrl == null) { + return; } + String gitToken = config.getString("GIT_TOKEN"); + String lastRelease = null; + switch (checkType) { + case "GITEA_RELEASES": { + lastRelease = getGiteaLastRelease(baseUrl, gitRepo, gitToken); + break; + } + case "GITLAB_RELEASES": { + int projectID = getGitlabProjectID(baseUrl, gitRepo, gitToken); + if (projectID < 0) { + break; + } + lastRelease = getGitlabLastRelease(baseUrl, projectID, gitToken); + break; + } + } + if (lastRelease == null) { + return; + } + if (compareVersion(version, lastRelease) <= 0) { + return; + } + sender.sendMessage(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease)); + sender.sendMessage(String.format("§b下载链接: §n%s", downloadUrl)); + } + + public static int compareVersion(@NotNull String version1, String version2) { + List collect1 = Arrays.stream(version1.split("[+-]")[0].split("\\.")).map(Integer::parseInt).collect(Collectors.toList()); + List collect2 = Arrays.stream(version2.split("[+-]")[0].split("\\.")).map(Integer::parseInt).collect(Collectors.toList()); + int max = Math.max(collect1.size(), collect2.size()); + for (int i = 0; i < max; i++) { + int v1 = i < collect1.size() ? collect1.get(i) : 0; + int v2 = i < collect2.size() ? collect2.get(i) : 0; + if (v1 > v2) { + return 1; + } + if (v1 < v2) { + return -1; + } + } + return 0; } @Nullable @@ -103,12 +106,12 @@ public final class UpdateCheckUtils { } public static int getGitlabProjectID(@NotNull String baseUrl, @NotNull String repo, @Nullable String token) throws IOException { - URL url = new URL("https://" + baseUrl + "/api/v4/projects?search=" + repo); + URL url = new URL(baseUrl + "/api/v4/projects?search=" + repo); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setRequestMethod("GET"); if (token != null) { - connection.setRequestProperty("PRIVATE-TOKEN", "token " + token); + connection.setRequestProperty("PRIVATE-TOKEN", token); } connection.connect(); try (InputStream stream = connection.getInputStream()) { @@ -130,7 +133,7 @@ public final class UpdateCheckUtils { connection.setDoInput(true); connection.setRequestMethod("GET"); if (token != null) { - connection.setRequestProperty("Authorization", "token " + token); + connection.setRequestProperty("PRIVATE-TOKEN", token); } connection.connect(); try (InputStream stream = connection.getInputStream()) { From e6cb7efe77b1aaad7b9371ff46f6976be1f752d4 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Mon, 18 Mar 2024 16:59:37 +0800 Subject: [PATCH 02/10] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java index bed8a31..8ebc689 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java @@ -55,7 +55,7 @@ public final class UpdateCheckUtils { if (lastRelease == null) { return; } - if (compareVersion(version, lastRelease) <= 0) { + if (compareVersion(lastRelease, version) <= 0) { return; } sender.sendMessage(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease)); From 9bcf8a28dd3d7fbfffae6076a27bd6225e861d16 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Mon, 18 Mar 2024 17:13:14 +0800 Subject: [PATCH 03/10] =?UTF-8?q?perf:=20=E7=AE=80=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/core/bukkit/HamsterCorePlugin.java | 2 +- .../plugin/core/bungee/HamsterCorePlugin.java | 6 +--- .../core/common/util/UpdateCheckUtils.java | 35 +++++++++++-------- .../core/velocity/HamsterCorePlugin.java | 3 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java index 37e1f9c..98b56b5 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java @@ -124,7 +124,7 @@ public class HamsterCorePlugin extends JavaPlugin { } try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { YamlConfig config = YamlConfig.load(reader); - UpdateCheckUtils.showUpdate(plugin.getName(), config, Bukkit.getConsoleSender()::sendMessage); + UpdateCheckUtils.checkUpdate(plugin.getName(), config); } } catch (Exception e) { e.printStackTrace(); diff --git a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java index 32e5339..402ff7b 100644 --- a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java +++ b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java @@ -7,7 +7,6 @@ import cn.hamster3.mc.plugin.core.common.util.UpdateCheckUtils; import lombok.Getter; import net.kyori.adventure.platform.bungeecord.BungeeAudiences; import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.plugin.Plugin; import java.io.File; @@ -73,10 +72,7 @@ public class HamsterCorePlugin extends Plugin { } try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { YamlConfig config = YamlConfig.load(reader); - UpdateCheckUtils.showUpdate( - plugin.getDescription().getName(), config, - (s) -> ProxyServer.getInstance().getConsole().sendMessage(TextComponent.fromLegacyText(s)) - ); + UpdateCheckUtils.checkUpdate(plugin.getDescription().getName(), config); } } catch (IOException ignored) { } diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java index 8ebc689..23060c1 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java @@ -1,10 +1,13 @@ package cn.hamster3.mc.plugin.core.common.util; +import cn.hamster3.mc.plugin.core.common.api.CoreAPI; import cn.hamster3.mc.plugin.core.common.config.ConfigSection; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import net.kyori.adventure.audience.Audience; +import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -24,19 +27,23 @@ public final class UpdateCheckUtils { private UpdateCheckUtils() { } - public static void showUpdate(@NotNull String pluginName, @NotNull ConfigSection config, @NotNull UpdateReceiver sender) throws IOException { - String version = config.getString("version"); + public static void checkUpdate(@NotNull String pluginName, @NotNull ConfigSection updateConfig) throws IOException { + checkUpdate(pluginName, updateConfig, CoreAPI.getInstance().getAudienceProvider().console()); + } + + public static void checkUpdate(@NotNull String pluginName, @NotNull ConfigSection updateConfig, @NotNull Audience sender) throws IOException { + String version = updateConfig.getString("version"); if (version == null) { return; } - String checkType = config.getString("CHECK_TYPE", ""); - String baseUrl = config.getString("GIT_BASE_URL"); - String gitRepo = config.getString("GIT_REPO"); - String downloadUrl = config.getString("DOWNLOAD_URL"); + String checkType = updateConfig.getString("CHECK_TYPE", ""); + String baseUrl = updateConfig.getString("GIT_BASE_URL"); + String gitRepo = updateConfig.getString("GIT_REPO"); + String downloadUrl = updateConfig.getString("DOWNLOAD_URL"); if (baseUrl == null || gitRepo == null || downloadUrl == null) { return; } - String gitToken = config.getString("GIT_TOKEN"); + String gitToken = updateConfig.getString("GIT_TOKEN"); String lastRelease = null; switch (checkType) { case "GITEA_RELEASES": { @@ -58,13 +65,15 @@ public final class UpdateCheckUtils { if (compareVersion(lastRelease, version) <= 0) { return; } - sender.sendMessage(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease)); - sender.sendMessage(String.format("§b下载链接: §n%s", downloadUrl)); + sender.sendMessage(Component.text(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease))); + sender.sendMessage(Component.text(String.format("§b下载链接: §n%s", downloadUrl))); } public static int compareVersion(@NotNull String version1, String version2) { - List collect1 = Arrays.stream(version1.split("[+-]")[0].split("\\.")).map(Integer::parseInt).collect(Collectors.toList()); - List collect2 = Arrays.stream(version2.split("[+-]")[0].split("\\.")).map(Integer::parseInt).collect(Collectors.toList()); + List collect1 = Arrays.stream(version1.split("[+-]")[0].split("\\.")) + .map(Integer::parseInt).collect(Collectors.toList()); + List collect2 = Arrays.stream(version2.split("[+-]")[0].split("\\.")) + .map(Integer::parseInt).collect(Collectors.toList()); int max = Math.max(collect1.size(), collect2.size()); for (int i = 0; i < max; i++) { int v1 = i < collect1.size() ? collect1.get(i) : 0; @@ -143,8 +152,4 @@ public final class UpdateCheckUtils { } } } - - public interface UpdateReceiver { - void sendMessage(@NotNull String message); - } } diff --git a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java index b7910a3..670cada 100644 --- a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java +++ b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java @@ -15,7 +15,6 @@ import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; import com.zaxxer.hikari.HikariDataSource; import lombok.Getter; -import net.kyori.adventure.text.Component; import org.slf4j.Logger; import java.io.File; @@ -97,7 +96,7 @@ public class HamsterCorePlugin { } try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { YamlConfig config = YamlConfig.load(reader); - UpdateCheckUtils.showUpdate(pluginName, config, (s) -> proxyServer.sendMessage(Component.text(s))); + UpdateCheckUtils.checkUpdate(pluginName, config); } catch (IOException ignored) { } } catch (IOException e) { From 7462b99ce4567888659c000e013e15509ee79041 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Mon, 18 Mar 2024 17:13:33 +0800 Subject: [PATCH 04/10] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=E9=82=AE?= =?UTF-8?q?=E7=AE=B1API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core-bukkit/build.gradle.kts | 2 ++ core-bungee/build.gradle.kts | 2 ++ core-common/build.gradle.kts | 2 ++ core-velocity/build.gradle.kts | 2 ++ 4 files changed, 8 insertions(+) diff --git a/core-bukkit/build.gradle.kts b/core-bukkit/build.gradle.kts index 00bc0c7..51ae50c 100644 --- a/core-bukkit/build.gradle.kts +++ b/core-bukkit/build.gradle.kts @@ -30,6 +30,8 @@ dependencies { } // https://mvnrepository.com/artifact/org.quartz-scheduler/quartz api("org.quartz-scheduler:quartz:2.3.2") { isTransitive = false } + // https://mvnrepository.com/artifact/com.sun.mail/jakarta.mail + api("com.sun.mail:jakarta.mail:2.0.1") // https://www.spigotmc.org/resources/nbt-api.7939/ implementation("de.tr7zw:item-nbt-api:2.12.2") diff --git a/core-bungee/build.gradle.kts b/core-bungee/build.gradle.kts index 4884ed7..863d91b 100644 --- a/core-bungee/build.gradle.kts +++ b/core-bungee/build.gradle.kts @@ -26,6 +26,8 @@ dependencies { } // https://mvnrepository.com/artifact/org.quartz-scheduler/quartz api("org.quartz-scheduler:quartz:2.3.2") { isTransitive = false } + // https://mvnrepository.com/artifact/com.sun.mail/jakarta.mail + api("com.sun.mail:jakarta.mail:2.0.1") implementation("com.zaxxer:HikariCP:4.0.3") { exclude(group = "org.slf4j") } diff --git a/core-common/build.gradle.kts b/core-common/build.gradle.kts index fc25f1b..74d9f66 100644 --- a/core-common/build.gradle.kts +++ b/core-common/build.gradle.kts @@ -19,6 +19,8 @@ dependencies { exclude(group = "org.slf4j") } compileOnlyApi("org.quartz-scheduler:quartz:2.3.2") { isTransitive = false } + // https://mvnrepository.com/artifact/com.sun.mail/jakarta.mail + compileOnlyApi("com.sun.mail:jakarta.mail:2.0.1") // https://mvnrepository.com/artifact/com.zaxxer/HikariCP compileOnly("com.zaxxer:HikariCP:4.0.3") { isTransitive = false } diff --git a/core-velocity/build.gradle.kts b/core-velocity/build.gradle.kts index d8f372f..c25c43e 100644 --- a/core-velocity/build.gradle.kts +++ b/core-velocity/build.gradle.kts @@ -15,6 +15,8 @@ dependencies { } // https://mvnrepository.com/artifact/org.quartz-scheduler/quartz api("org.quartz-scheduler:quartz:2.3.2") { isTransitive = false } + // https://mvnrepository.com/artifact/com.sun.mail/jakarta.mail + api("com.sun.mail:jakarta.mail:2.0.1") // https://mvnrepository.com/artifact/com.zaxxer/HikariCP implementation("com.zaxxer:HikariCP:5.1.0") { isTransitive = false } From 6f4e40942c43c328561fa2aa88b10c2abb133378 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Mon, 18 Mar 2024 17:32:31 +0800 Subject: [PATCH 05/10] =?UTF-8?q?perf:=20=E7=AE=80=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core-bukkit/src/main/resources/config.yml | 9 +++------ core-bungee/src/main/resources/config.yml | 4 +--- core-common/build.gradle.kts | 4 ++++ .../mc/plugin/core/common/api/CoreAPI.java | 6 +++--- .../core/common/util/UpdateCheckUtils.java | 17 +++++++++-------- .../plugin/core/velocity/HamsterCorePlugin.java | 4 ++-- core-velocity/src/main/resources/config.yml | 12 +++--------- 7 files changed, 25 insertions(+), 31 deletions(-) diff --git a/core-bukkit/src/main/resources/config.yml b/core-bukkit/src/main/resources/config.yml index f05abda..0babd79 100644 --- a/core-bukkit/src/main/resources/config.yml +++ b/core-bukkit/src/main/resources/config.yml @@ -9,15 +9,12 @@ redis-url: "redis://localhost:6379/0?clientName=HamsterCore&timeout=5s" datasource: - # 数据库链接驱动地址 - # 除非你知道自己在做什么,否则不建议更改该项 - # 旧版服务端(低于1.13)请使用:com.mysql.jdbc.Driver + # 数据库链接驱动地址,旧版服务端(低于1.13)请使用:com.mysql.jdbc.Driver driver: "com.mysql.cj.jdbc.Driver" - # 数据库链接填写格式: + # MySQL数据库链接填写格式: # jdbc:mysql://{数据库地址}:{数据库端口}/{使用的库名}?参数 - # 除非你知道自己在做什么,否则不建议随意更改参数 url: "jdbc:mysql://localhost:3306/Test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" - # 如果你不需要做多端跨服,那么请使用 sqlite 作本地数据库 + # 如果你不需要做多端跨服,那么请使用 sqlite 作本地数据库 ↓ # driver: "org.sqlite.JDBC" # url: "jdbc:sqlite:./plugins/HamsterCore/database.db" # 用户名 diff --git a/core-bungee/src/main/resources/config.yml b/core-bungee/src/main/resources/config.yml index f5bce48..da86f90 100644 --- a/core-bungee/src/main/resources/config.yml +++ b/core-bungee/src/main/resources/config.yml @@ -10,11 +10,9 @@ redis-url: "redis://localhost:6379/0?clientName=HamsterCore&timeout=5s" datasource: # 数据库链接驱动地址 - # 除非你知道自己在做什么,否则不建议更改该项 driver: "com.mysql.cj.jdbc.Driver" - # 数据库链接填写格式: + # MySQL数据库链接填写格式: # jdbc:mysql://{数据库地址}:{数据库端口}/{使用的库名}?参数 - # 除非你知道自己在做什么,否则不建议随意更改参数 url: "jdbc:mysql://localhost:3306/Test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" # 用户名 username: "root" diff --git a/core-common/build.gradle.kts b/core-common/build.gradle.kts index 74d9f66..79b5365 100644 --- a/core-common/build.gradle.kts +++ b/core-common/build.gradle.kts @@ -12,6 +12,10 @@ dependencies { exclude(group = "org.jetbrains") exclude(group = "com.google.code.gson") } + compileOnlyApi("net.kyori:adventure-text-serializer-legacy:4.13.1") { + exclude(group = "org.jetbrains") + exclude(group = "com.google.code.gson") + } // https://mvnrepository.com/artifact/redis.clients/jedis compileOnlyApi("redis.clients:jedis:5.1.2") { diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/api/CoreAPI.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/api/CoreAPI.java index ce66dd3..83dbeec 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/api/CoreAPI.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/api/CoreAPI.java @@ -29,7 +29,7 @@ public abstract class CoreAPI { @NotNull private final JedisPool jedisPool; /** - * HamsterCore 公用数据库连接池 + * 公用数据库连接池 */ @Getter @NotNull @@ -63,7 +63,7 @@ public abstract class CoreAPI { } /** - * 获取 HamsterCore 公用数据库连接池 + * 获取公用数据库连接池 * * @return 公用数据库连接池 */ @@ -73,7 +73,7 @@ public abstract class CoreAPI { } /** - * 获取 HamsterCore 公用数据库连接 + * 获取公用数据库连接 * * @return 公用数据库连接 * @throws SQLException - diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java index 23060c1..3e12e3f 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java @@ -7,7 +7,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import net.kyori.adventure.audience.Audience; -import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -32,15 +32,12 @@ public final class UpdateCheckUtils { } public static void checkUpdate(@NotNull String pluginName, @NotNull ConfigSection updateConfig, @NotNull Audience sender) throws IOException { - String version = updateConfig.getString("version"); - if (version == null) { - return; - } + String version = updateConfig.getString("version", ""); String checkType = updateConfig.getString("CHECK_TYPE", ""); String baseUrl = updateConfig.getString("GIT_BASE_URL"); String gitRepo = updateConfig.getString("GIT_REPO"); String downloadUrl = updateConfig.getString("DOWNLOAD_URL"); - if (baseUrl == null || gitRepo == null || downloadUrl == null) { + if (baseUrl == null || gitRepo == null) { return; } String gitToken = updateConfig.getString("GIT_TOKEN"); @@ -65,8 +62,12 @@ public final class UpdateCheckUtils { if (compareVersion(lastRelease, version) <= 0) { return; } - sender.sendMessage(Component.text(String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease))); - sender.sendMessage(Component.text(String.format("§b下载链接: §n%s", downloadUrl))); + sender.sendMessage(LegacyComponentSerializer.legacySection().deserialize( + String.format("§a插件 §l%s§a 发布了新版本 %s", pluginName, lastRelease) + )); + if (downloadUrl != null) { + sender.sendMessage(LegacyComponentSerializer.legacySection().deserialize("§b下载链接: §n" + downloadUrl)); + } } public static int compareVersion(@NotNull String version1, String version2) { diff --git a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java index 670cada..7936a42 100644 --- a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java +++ b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java @@ -71,7 +71,7 @@ public class HamsterCorePlugin { slf4jLogger.error("初始化 CoreAPI 出错", e); } long time = System.currentTimeMillis() - start; - slf4jLogger.info("HamsterCore 初始化完成,总计耗时 " + time + " ms"); + slf4jLogger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms"); } @Subscribe(order = PostOrder.FIRST) @@ -120,6 +120,6 @@ public class HamsterCorePlugin { CoreAPI.getInstance().getScheduledService().shutdownNow(); slf4jLogger.info("已关闭 ScheduledExecutorService 线程池"); long time = System.currentTimeMillis() - start; - slf4jLogger.info("HamsterCore 关闭完成,总计耗时 " + time + " ms"); + slf4jLogger.info("仓鼠核心关闭完成,总计耗时 " + time + " ms"); } } \ No newline at end of file diff --git a/core-velocity/src/main/resources/config.yml b/core-velocity/src/main/resources/config.yml index f05abda..da86f90 100644 --- a/core-velocity/src/main/resources/config.yml +++ b/core-velocity/src/main/resources/config.yml @@ -10,16 +10,10 @@ redis-url: "redis://localhost:6379/0?clientName=HamsterCore&timeout=5s" datasource: # 数据库链接驱动地址 - # 除非你知道自己在做什么,否则不建议更改该项 - # 旧版服务端(低于1.13)请使用:com.mysql.jdbc.Driver driver: "com.mysql.cj.jdbc.Driver" - # 数据库链接填写格式: + # MySQL数据库链接填写格式: # jdbc:mysql://{数据库地址}:{数据库端口}/{使用的库名}?参数 - # 除非你知道自己在做什么,否则不建议随意更改参数 url: "jdbc:mysql://localhost:3306/Test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" - # 如果你不需要做多端跨服,那么请使用 sqlite 作本地数据库 - # driver: "org.sqlite.JDBC" - # url: "jdbc:sqlite:./plugins/HamsterCore/database.db" # 用户名 username: "root" # 密码 @@ -28,8 +22,8 @@ datasource: # 推荐值:1~3 minimum-idle: 0 # 最大链接数 - # 推荐值:不低于3 - maximum-pool-size: 3 + # 推荐值:不低于5 + maximum-pool-size: 5 # 保持连接池可用的间隔 # 除非你的服务器数据库连接经常断开,否则不建议启用该选项 # 单位:毫秒 From 7285f1b3e2b66e841c9d228d18dd55ea13af8634 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Mon, 18 Mar 2024 17:32:56 +0800 Subject: [PATCH 06/10] =?UTF-8?q?perf:=20=E7=AE=80=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hamster3/mc/plugin/core/velocity/api/CoreVelocityAPI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/api/CoreVelocityAPI.java b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/api/CoreVelocityAPI.java index 6c50e0d..d28eab8 100644 --- a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/api/CoreVelocityAPI.java +++ b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/api/CoreVelocityAPI.java @@ -7,9 +7,9 @@ import cn.hamster3.mc.plugin.core.common.data.DisplayMessage; import cn.hamster3.mc.plugin.core.common.impl.ComponentTypeAdapter; import cn.hamster3.mc.plugin.core.common.impl.MessageTypeAdapter; import cn.hamster3.mc.plugin.core.velocity.HamsterCorePlugin; +import cn.hamster3.mc.plugin.core.velocity.impl.AudienceProviderImpl; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import cn.hamster3.mc.plugin.core.velocity.impl.AudienceProviderImpl; import net.kyori.adventure.platform.AudienceProvider; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; From 98300804fea10e498dcce5759118b08185bbd77d Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 19 Mar 2024 16:31:38 +0800 Subject: [PATCH 07/10] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=A3=80=E6=B5=8B=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 2 ++ .../mc/plugin/core/bukkit/HamsterCorePlugin.java | 9 +++++++-- core-bukkit/src/main/resources/plugin.yml | 9 ++++++++- core-bukkit/src/main/resources/update.yml | 6 ------ .../mc/plugin/core/bungee/HamsterCorePlugin.java | 9 +++++++-- core-bungee/src/main/resources/bungee.yml | 10 +++++++++- core-bungee/src/main/resources/update.yml | 6 ------ .../mc/plugin/core/velocity/HamsterCorePlugin.java | 5 +---- core-velocity/src/main/resources/update.yml | 3 +-- 9 files changed, 35 insertions(+), 24 deletions(-) delete mode 100644 core-bukkit/src/main/resources/update.yml delete mode 100644 core-bungee/src/main/resources/update.yml diff --git a/build.gradle.kts b/build.gradle.kts index d45a607..42a8933 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,6 +6,7 @@ plugins { group = "cn.hamster3.mc.plugin" version = "1.3.3-SNAPSHOT" +description = "叁只仓鼠的 Minecraft 插件开发通用工具包" subprojects { apply { @@ -16,6 +17,7 @@ subprojects { group = rootProject.group version = rootProject.version + description = rootProject.description repositories { maven("https://maven.airgame.net/maven-public") diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java index 98b56b5..4408d02 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java @@ -13,6 +13,7 @@ import cn.hamster3.mc.plugin.core.bukkit.page.handler.PageHandler; import cn.hamster3.mc.plugin.core.bukkit.page.listener.PageListener; import cn.hamster3.mc.plugin.core.bukkit.util.MinecraftVersion; import cn.hamster3.mc.plugin.core.common.api.CoreAPI; +import cn.hamster3.mc.plugin.core.common.config.ConfigSection; import cn.hamster3.mc.plugin.core.common.config.YamlConfig; import cn.hamster3.mc.plugin.core.common.util.UpdateCheckUtils; import lombok.Getter; @@ -118,13 +119,17 @@ public class HamsterCorePlugin extends JavaPlugin { VaultAPI.reloadVaultHook(); async(() -> { for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { - try (InputStream stream = plugin.getResource("update.yml")) { + try (InputStream stream = plugin.getResource("plugin.yml")) { if (stream == null) { continue; } try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { YamlConfig config = YamlConfig.load(reader); - UpdateCheckUtils.checkUpdate(plugin.getName(), config); + ConfigSection section = config.getSection("UPDATE_CHECKER"); + if (section == null) { + continue; + } + UpdateCheckUtils.checkUpdate(plugin.getName(), section); } } catch (Exception e) { e.printStackTrace(); diff --git a/core-bukkit/src/main/resources/plugin.yml b/core-bukkit/src/main/resources/plugin.yml index 9ae31b0..f137cb3 100644 --- a/core-bukkit/src/main/resources/plugin.yml +++ b/core-bukkit/src/main/resources/plugin.yml @@ -4,8 +4,15 @@ version: ${version} api-version: 1.13 author: MiniDay +description: ${description} website: https://git.airgame.net/MiniDay/hamster-core -description: 仓鼠核心:叁只仓鼠的 Minecraft 插件开发通用工具包 + +UPDATE_CHECKER: + VERSION: ${version} + CHECK_TYPE: GITEA_RELEASES + GIT_BASE_URL: https://git.airgame.net + GIT_REPO: MiniDay/hamster-core + DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-core/ load: STARTUP diff --git a/core-bukkit/src/main/resources/update.yml b/core-bukkit/src/main/resources/update.yml deleted file mode 100644 index a585009..0000000 --- a/core-bukkit/src/main/resources/update.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: ${version} -CHECK_TYPE: GITEA_RELEASES -GIT_BASE_URL: https://git.airgame.net -GIT_REPO: MiniDay/hamster-core -GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e -DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-core/ diff --git a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java index 402ff7b..30d7445 100644 --- a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java +++ b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java @@ -2,6 +2,7 @@ package cn.hamster3.mc.plugin.core.bungee; import cn.hamster3.mc.plugin.core.bungee.api.CoreBungeeAPI; import cn.hamster3.mc.plugin.core.common.api.CoreAPI; +import cn.hamster3.mc.plugin.core.common.config.ConfigSection; import cn.hamster3.mc.plugin.core.common.config.YamlConfig; import cn.hamster3.mc.plugin.core.common.util.UpdateCheckUtils; import lombok.Getter; @@ -66,13 +67,17 @@ public class HamsterCorePlugin extends Plugin { CoreAPI.getInstance().getExecutorService().submit(() -> { for (Plugin plugin : ProxyServer.getInstance().getPluginManager().getPlugins()) { - try (InputStream stream = plugin.getResourceAsStream("update.yml")) { + try (InputStream stream = plugin.getResourceAsStream("bungee.yml")) { if (stream == null) { continue; } try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { YamlConfig config = YamlConfig.load(reader); - UpdateCheckUtils.checkUpdate(plugin.getDescription().getName(), config); + ConfigSection section = config.getSection("UPDATE_CHECKER"); + if (section == null) { + continue; + } + UpdateCheckUtils.checkUpdate(plugin.getDescription().getName(), section); } } catch (IOException ignored) { } diff --git a/core-bungee/src/main/resources/bungee.yml b/core-bungee/src/main/resources/bungee.yml index b321c81..25a39cd 100644 --- a/core-bungee/src/main/resources/bungee.yml +++ b/core-bungee/src/main/resources/bungee.yml @@ -3,4 +3,12 @@ main: cn.hamster3.mc.plugin.core.bungee.HamsterCorePlugin version: ${version} author: MiniDay -description: 仓鼠核心:叁只仓鼠的 Minecraft 插件开发通用工具包 +description: ${description} +website: https://git.airgame.net/MiniDay/hamster-core + +UPDATE_CHECKER: + VERSION: ${version} + CHECK_TYPE: GITEA_RELEASES + GIT_BASE_URL: https://git.airgame.net + GIT_REPO: MiniDay/hamster-core + DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-core/ diff --git a/core-bungee/src/main/resources/update.yml b/core-bungee/src/main/resources/update.yml deleted file mode 100644 index a585009..0000000 --- a/core-bungee/src/main/resources/update.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: ${version} -CHECK_TYPE: GITEA_RELEASES -GIT_BASE_URL: https://git.airgame.net -GIT_REPO: MiniDay/hamster-core -GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e -DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-core/ diff --git a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java index 7936a42..80e2545 100644 --- a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java +++ b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java @@ -18,7 +18,6 @@ import lombok.Getter; import org.slf4j.Logger; import java.io.File; -import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; @@ -97,10 +96,8 @@ public class HamsterCorePlugin { try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { YamlConfig config = YamlConfig.load(reader); UpdateCheckUtils.checkUpdate(pluginName, config); - } catch (IOException ignored) { } - } catch (IOException e) { - e.printStackTrace(); + } catch (Exception ignored) { } } }); diff --git a/core-velocity/src/main/resources/update.yml b/core-velocity/src/main/resources/update.yml index a585009..03181ce 100644 --- a/core-velocity/src/main/resources/update.yml +++ b/core-velocity/src/main/resources/update.yml @@ -1,6 +1,5 @@ -version: ${version} +VERSION: ${version} CHECK_TYPE: GITEA_RELEASES GIT_BASE_URL: https://git.airgame.net GIT_REPO: MiniDay/hamster-core -GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-core/ From 03b0d62b1941025bcaf464deefc6d44fdf79d5de Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 19 Mar 2024 17:57:27 +0800 Subject: [PATCH 08/10] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E6=9B=B4=E6=96=B0=E6=97=B6=E8=8E=B7=E5=8F=96=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/core/bukkit/HamsterCorePlugin.java | 41 ++++++++--------- .../plugin/core/bungee/HamsterCorePlugin.java | 39 ++++++++-------- .../core/common/util/UpdateCheckUtils.java | 2 +- .../core/velocity/HamsterCorePlugin.java | 46 ++++++++++--------- 4 files changed, 65 insertions(+), 63 deletions(-) diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java index 4408d02..6047a14 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java @@ -35,7 +35,6 @@ import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.logging.Logger; -@SuppressWarnings("CallToPrintStackTrace") public class HamsterCorePlugin extends JavaPlugin { @Getter private static HamsterCorePlugin instance; @@ -117,26 +116,7 @@ public class HamsterCorePlugin extends JavaPlugin { sync(() -> { PointAPI.reloadPlayerPointAPIHook(); VaultAPI.reloadVaultHook(); - async(() -> { - for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { - try (InputStream stream = plugin.getResource("plugin.yml")) { - if (stream == null) { - continue; - } - try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { - YamlConfig config = YamlConfig.load(reader); - ConfigSection section = config.getSection("UPDATE_CHECKER"); - if (section == null) { - continue; - } - UpdateCheckUtils.checkUpdate(plugin.getName(), section); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - + async(this::checkUpdate); }); logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms"); } @@ -165,4 +145,23 @@ public class HamsterCorePlugin extends JavaPlugin { long time = System.currentTimeMillis() - start; logger.info("仓鼠核心已关闭,总计耗时 " + time + " ms"); } + + private void checkUpdate() { + for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { + try (InputStream stream = plugin.getResource("plugin.yml")) { + if (stream == null) { + continue; + } + try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { + YamlConfig config = YamlConfig.load(reader); + ConfigSection section = config.getSection("UPDATE_CHECKER"); + if (section == null) { + continue; + } + UpdateCheckUtils.checkUpdate(plugin.getName(), section); + } + } catch (Exception ignored) { + } + } + } } diff --git a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java index 30d7445..9af906f 100644 --- a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java +++ b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java @@ -62,27 +62,9 @@ public class HamsterCorePlugin extends Plugin { logger.info("仓鼠核心正在启动"); audienceProvider = BungeeAudiences.create(this); logger.info("已创建 AudienceProvider"); + CoreAPI.getInstance().getExecutorService().submit(this::checkUpdate); long time = System.currentTimeMillis() - start; logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms"); - - CoreAPI.getInstance().getExecutorService().submit(() -> { - for (Plugin plugin : ProxyServer.getInstance().getPluginManager().getPlugins()) { - try (InputStream stream = plugin.getResourceAsStream("bungee.yml")) { - if (stream == null) { - continue; - } - try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { - YamlConfig config = YamlConfig.load(reader); - ConfigSection section = config.getSection("UPDATE_CHECKER"); - if (section == null) { - continue; - } - UpdateCheckUtils.checkUpdate(plugin.getDescription().getName(), section); - } - } catch (IOException ignored) { - } - } - }); } @Override @@ -100,4 +82,23 @@ public class HamsterCorePlugin extends Plugin { long time = System.currentTimeMillis() - start; logger.info("仓鼠核心已关闭,总计耗时 " + time + " ms"); } + + private void checkUpdate() { + for (Plugin plugin : ProxyServer.getInstance().getPluginManager().getPlugins()) { + try (InputStream stream = plugin.getResourceAsStream("bungee.yml")) { + if (stream == null) { + continue; + } + try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { + YamlConfig config = YamlConfig.load(reader); + ConfigSection section = config.getSection("UPDATE_CHECKER"); + if (section == null) { + continue; + } + UpdateCheckUtils.checkUpdate(plugin.getDescription().getName(), section); + } + } catch (IOException ignored) { + } + } + } } diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java index 3e12e3f..b437e7a 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/util/UpdateCheckUtils.java @@ -32,7 +32,7 @@ public final class UpdateCheckUtils { } public static void checkUpdate(@NotNull String pluginName, @NotNull ConfigSection updateConfig, @NotNull Audience sender) throws IOException { - String version = updateConfig.getString("version", ""); + String version = updateConfig.getString("VERSION", ""); String checkType = updateConfig.getString("CHECK_TYPE", ""); String baseUrl = updateConfig.getString("GIT_BASE_URL"); String gitRepo = updateConfig.getString("GIT_REPO"); diff --git a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java index 80e2545..98a3342 100644 --- a/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java +++ b/core-velocity/src/main/java/cn/hamster3/mc/plugin/core/velocity/HamsterCorePlugin.java @@ -77,30 +77,9 @@ public class HamsterCorePlugin { public void onProxyInitialization(ProxyInitializeEvent event) { long start = System.currentTimeMillis(); slf4jLogger.info("仓鼠核心正在启动"); + CoreAPI.getInstance().getExecutorService().submit(this::checkUpdate); long time = System.currentTimeMillis() - start; slf4jLogger.info("仓鼠核心启动完成,总计耗时 " + time + " ms"); - CoreAPI.getInstance().getExecutorService().submit(() -> { - for (PluginContainer plugin : proxyServer.getPluginManager().getPlugins()) { - String pluginName = plugin.getDescription().getName().orElse(null); - if (pluginName == null) { - continue; - } - Object pluginObject = plugin.getInstance().orElse(null); - if (pluginObject == null) { - continue; - } - try (InputStream stream = pluginObject.getClass().getResourceAsStream("/update.yml")) { - if (stream == null) { - continue; - } - try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { - YamlConfig config = YamlConfig.load(reader); - UpdateCheckUtils.checkUpdate(pluginName, config); - } - } catch (Exception ignored) { - } - } - }); } @Subscribe(order = PostOrder.LAST) @@ -119,4 +98,27 @@ public class HamsterCorePlugin { long time = System.currentTimeMillis() - start; slf4jLogger.info("仓鼠核心关闭完成,总计耗时 " + time + " ms"); } + + private void checkUpdate() { + for (PluginContainer plugin : proxyServer.getPluginManager().getPlugins()) { + String pluginName = plugin.getDescription().getName().orElse(null); + if (pluginName == null) { + continue; + } + Object pluginObject = plugin.getInstance().orElse(null); + if (pluginObject == null) { + continue; + } + try (InputStream stream = pluginObject.getClass().getResourceAsStream("/update.yml")) { + if (stream == null) { + continue; + } + try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { + YamlConfig config = YamlConfig.load(reader); + UpdateCheckUtils.checkUpdate(pluginName, config); + } + } catch (Exception ignored) { + } + } + } } \ No newline at end of file From 86bd28e134eba6eb66db90194ef6eb0ce080e9ca Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Thu, 21 Mar 2024 04:44:16 +0800 Subject: [PATCH 09/10] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/bukkit/command/core/CoreCommand.java | 1 - .../command/core/sub/ReloadCommand.java | 49 --------------- .../plugin/core/bukkit/page/PageConfig.java | 21 ++----- .../plugin/core/bukkit/page/PageManager.java | 61 ------------------- .../bukkit/page/handler/FixedPageHandler.java | 9 +-- .../core/bukkit/page/handler/PageHandler.java | 51 ++++++++-------- .../bukkit/page/handler/PageableHandler.java | 21 ++----- 7 files changed, 39 insertions(+), 174 deletions(-) delete mode 100644 core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/ReloadCommand.java delete mode 100644 core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/CoreCommand.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/CoreCommand.java index aef2f09..34d7d16 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/CoreCommand.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/CoreCommand.java @@ -14,7 +14,6 @@ public class CoreCommand extends ParentCommand { addChildCommand(GCCommand.INSTANCE); addChildCommand(YamlCommand.INSTANCE); addChildCommand(InfoModeCommand.INSTANCE); - addChildCommand(ReloadCommand.INSTANCE); addChildCommand(MemoryCommand.INSTANCE); addChildCommand(SystemCommand.INSTANCE); } diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/ReloadCommand.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/ReloadCommand.java deleted file mode 100644 index 234c012..0000000 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/core/sub/ReloadCommand.java +++ /dev/null @@ -1,49 +0,0 @@ -package cn.hamster3.mc.plugin.core.bukkit.command.core.sub; - -import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand; -import cn.hamster3.mc.plugin.core.bukkit.page.PageManager; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class ReloadCommand extends ChildCommand { - public static final ReloadCommand INSTANCE = new ReloadCommand(); - - private ReloadCommand() { - } - - @Override - public @NotNull String getName() { - return "reload"; - } - - @Override - public @NotNull String getUsage() { - return "reload"; - } - - @Override - public boolean hasPermission(@NotNull CommandSender sender) { - return true; - } - - @Override - public @NotNull String getDescription() { - return "重载页面配置文件"; - } - - @Override - public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - PageManager.PAGE_CONFIG.clear(); - sender.sendMessage("§a已重载页面配置文件"); - return true; - } - - @Override - public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) { - return Collections.emptyList(); - } -} diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java index 928f599..25a1521 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageConfig.java @@ -7,7 +7,6 @@ import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -18,8 +17,6 @@ import java.util.Map; @SuppressWarnings("unused") public class PageConfig implements InventoryHolder { - @NotNull - private final Plugin plugin; @NotNull private final ConfigurationSection rawConfig; @@ -38,8 +35,7 @@ public class PageConfig implements InventoryHolder { @NotNull private final Inventory inventory; - public PageConfig(@NotNull Plugin plugin, @NotNull ConfigurationSection rawConfig) { - this.plugin = plugin; + public PageConfig(@NotNull ConfigurationSection rawConfig) { this.rawConfig = rawConfig; title = rawConfig.getString("title", "").replace("&", "§"); @@ -163,11 +159,6 @@ public class PageConfig implements InventoryHolder { throw new IllegalArgumentException("未找到名称为 " + groupName + " 的按钮编组"); } - @NotNull - public Plugin getPlugin() { - return plugin; - } - @NotNull public ConfigurationSection getRawConfig() { return rawConfig; @@ -197,10 +188,10 @@ public class PageConfig implements InventoryHolder { @Override public String toString() { return "PageConfig{" + - ", title='" + title + '\'' + - ", graphic=" + graphic + - ", buttonMap=" + buttons + - ", buttonGroups=" + buttonGroups + - '}'; + ", title='" + title + '\'' + + ", graphic=" + graphic + + ", buttonMap=" + buttons + + ", buttonGroups=" + buttonGroups + + '}'; } } diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java deleted file mode 100644 index f05045f..0000000 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java +++ /dev/null @@ -1,61 +0,0 @@ -package cn.hamster3.mc.plugin.core.bukkit.page; - -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.Plugin; -import org.jetbrains.annotations.NotNull; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; -import java.util.HashMap; - -public class PageManager { - public static final HashMap PAGE_CONFIG = new HashMap<>(); - - @NotNull - public static PageConfig getPageConfig(@NotNull Class clazz) { - PageConfig pageConfig = PAGE_CONFIG.get(clazz.getName()); - if (pageConfig != null) { - return pageConfig; - } - if (!clazz.isAnnotationPresent(PluginPage.class)) { - throw new IllegalArgumentException(clazz.getName() + " 未被 @PluginPage 注解修饰"); - } - PluginPage annotation = clazz.getAnnotation(PluginPage.class); - String pluginName = annotation.value(); - Plugin plugin = Bukkit.getPluginManager().getPlugin(pluginName); - if (plugin == null) { - throw new IllegalArgumentException("未找到插件 " + pluginName + " "); - } - pageConfig = getPageConfig(plugin, clazz.getSimpleName()); - PAGE_CONFIG.put(clazz.getName(), pageConfig); - return pageConfig; - } - - @NotNull - public static PageConfig getPageConfig(@NotNull Plugin plugin, @NotNull String pageName) { - String pluginName = plugin.getName(); - File pageFolder = new File(plugin.getDataFolder(), "pages"); - if (pageFolder.mkdirs()) { - plugin.getLogger().info("创建页面配置文件夹"); - } - String filename = pageName + ".yml"; - File pageConfigFile = new File(pageFolder, filename); - if (pageConfigFile.exists()) { - YamlConfiguration config = YamlConfiguration.loadConfiguration(pageConfigFile); - return new PageConfig(plugin, config); - } - try (InputStream stream = plugin.getResource("pages/" + filename)) { - if (stream != null) { - Files.copy(stream, pageConfigFile.toPath(), StandardCopyOption.REPLACE_EXISTING); - } - } catch (IOException e) { - throw new IllegalArgumentException("为插件 " + pluginName + " 加载页面配置文件 " + filename + " 时出错", e); - } - YamlConfiguration config = YamlConfiguration.loadConfiguration(pageConfigFile); - return new PageConfig(plugin, config); - } -} diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java index f109d44..da174ba 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/FixedPageHandler.java @@ -4,6 +4,7 @@ import cn.hamster3.mc.plugin.core.bukkit.page.ButtonGroup; import cn.hamster3.mc.plugin.core.bukkit.page.PageConfig; import org.bukkit.Bukkit; import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.List; @@ -12,15 +13,11 @@ import java.util.List; * 固定页面的 GUI */ @SuppressWarnings("unused") -public class FixedPageHandler extends PageHandler { - public FixedPageHandler(@NotNull HumanEntity player) { +public abstract class FixedPageHandler extends PageHandler { + public FixedPageHandler(@NotNull Player player) { super(player); } - public FixedPageHandler(@NotNull PageConfig config, @NotNull HumanEntity player) { - super(config, player); - } - @Override public void initPage() { if (inventory == null) { diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageHandler.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageHandler.java index 0344839..d45e3ce 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageHandler.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageHandler.java @@ -2,15 +2,17 @@ package cn.hamster3.mc.plugin.core.bukkit.page.handler; import cn.hamster3.mc.plugin.core.bukkit.page.ButtonGroup; import cn.hamster3.mc.plugin.core.bukkit.page.PageConfig; -import cn.hamster3.mc.plugin.core.bukkit.page.PageManager; +import cn.hamster3.mc.plugin.core.bukkit.util.CoreBukkitUtils; +import lombok.Getter; import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.Bukkit; import org.bukkit.Sound; -import org.bukkit.entity.HumanEntity; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.*; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; +import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import java.util.HashMap; @@ -20,21 +22,29 @@ import java.util.Map; * GUI 处理类 */ @SuppressWarnings("unused") +@Getter public abstract class PageHandler implements InventoryHolder { + @NotNull private final PageConfig pageConfig; - private final HumanEntity player; + @NotNull + private final Player player; protected Inventory inventory; - public PageHandler(@NotNull HumanEntity player) { - pageConfig = PageManager.getPageConfig(getClass()); + public PageHandler(@NotNull Player player) { + pageConfig = loadPageConfig(); this.player = player; } - public PageHandler(@NotNull PageConfig pageConfig, @NotNull HumanEntity player) { - this.pageConfig = pageConfig; - this.player = player; + @NotNull + public PageConfig loadPageConfig() { + String simpleName = getClass().getSimpleName(); + YamlConfiguration config = CoreBukkitUtils.getPluginConfig(getPlugin(), "pages/" + simpleName + ".yml"); + return new PageConfig(config); } + @NotNull + public abstract Plugin getPlugin(); + public abstract void initPage(); public void onOpen(@NotNull InventoryOpenEvent event) { @@ -55,9 +65,6 @@ public abstract class PageHandler implements InventoryHolder { } public void onPlayButtonSound(@NotNull ClickType clickType, @NotNull InventoryAction action, int index) { - if (!(player instanceof Player)) { - return; - } PageConfig config = getPageConfig(); String buttonName = getButtonGroup().getButtonName(index); Sound sound = config.getButtonSound(buttonName); @@ -73,7 +80,7 @@ public abstract class PageHandler implements InventoryHolder { if (sound == null) { return; } - ((Player) player).playSound(player.getLocation(), sound, 1, 1); + player.playSound(player.getLocation(), sound, 1, 1); } public void onDrag(@NotNull InventoryDragEvent event) { @@ -94,21 +101,11 @@ public abstract class PageHandler implements InventoryHolder { if (init) { initPage(); } - Bukkit.getScheduler().runTask(pageConfig.getPlugin(), () -> player.openInventory(getInventory())); + Bukkit.getScheduler().runTask(getPlugin(), () -> player.openInventory(getInventory())); } public void close() { - Bukkit.getScheduler().runTask(pageConfig.getPlugin(), player::closeInventory); - } - - @NotNull - public PageConfig getPageConfig() { - return pageConfig; - } - - @NotNull - public HumanEntity getPlayer() { - return player; + Bukkit.getScheduler().runTask(getPlugin(), player::closeInventory); } @NotNull @@ -118,9 +115,9 @@ public abstract class PageHandler implements InventoryHolder { @NotNull public String getTitle() { - String title = pageConfig.getTitle(); - if (player instanceof Player && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { - title = PlaceholderAPI.setPlaceholders((Player) player, title); + String title = getPageConfig().getTitle(); + if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + title = PlaceholderAPI.setPlaceholders(player, title); } for (Map.Entry entry : getPageVariables().entrySet()) { title = title.replace(entry.getKey(), entry.getValue()); diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java index 7adaa0d..c58edb7 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/handler/PageableHandler.java @@ -46,24 +46,18 @@ public abstract class PageableHandler extends FixedPageHandler { @Getter private int page; - public PageableHandler(@NotNull HumanEntity player) { + public PageableHandler(@NotNull Player player) { super(player); this.page = 0; elementSlot = new HashMap<>(); } - public PageableHandler(@NotNull HumanEntity player, int page) { + public PageableHandler(@NotNull Player player, int page) { super(player); this.page = page; elementSlot = new HashMap<>(); } - public PageableHandler(@NotNull PageConfig config, @NotNull HumanEntity player, int page) { - super(config, player); - this.page = page; - elementSlot = new HashMap<>(); - } - @NotNull public abstract List getPageElements(); @@ -95,10 +89,7 @@ public abstract class PageableHandler extends FixedPageHandler { @Override public void onPlayButtonSound(@NotNull ClickType clickType, @NotNull InventoryAction action, int index) { - HumanEntity player = getPlayer(); - if (!(player instanceof Player)) { - return; - } + Player player = getPlayer(); PageConfig config = getPageConfig(); String buttonName = getButtonGroup().getButtonName(index); Sound sound = config.getButtonSound(buttonName); @@ -120,7 +111,7 @@ public abstract class PageableHandler extends FixedPageHandler { if (sound == null) { return; } - ((Player) player).playSound(player.getLocation(), sound, 1, 1); + player.playSound(player.getLocation(), sound, 1, 1); } @Override @@ -177,14 +168,14 @@ public abstract class PageableHandler extends FixedPageHandler { for (Map.Entry entry : variables.entrySet()) { displayName = displayName.replace(entry.getKey(), entry.getValue()); } - if (player instanceof Player && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { displayName = PlaceholderAPI.setPlaceholders((OfflinePlayer) player, displayName); } meta.setDisplayName(displayName); } List lore = meta.getLore(); if (lore != null) { - if (player instanceof Player && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { lore.replaceAll(s -> { for (Map.Entry entry : variables.entrySet()) { s = s.replace(entry.getKey(), entry.getValue()); From e2a8cc236e229b10ebea24427ae76e50992a743b Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sun, 24 Mar 2024 13:36:27 +0800 Subject: [PATCH 10/10] =?UTF-8?q?feat:=201.3.3=20=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- build.gradle.kts | 2 +- core-bukkit/build.gradle.kts | 25 +------------------------ core-bungee/build.gradle.kts | 27 +-------------------------- 4 files changed, 7 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index f864603..f1cb78a 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ repositories { dependencies { // 对于 Bukkit 插件 - compileOnly("cn.hamster3.mc.plugin:core-bukkit:1.3.3-SNAPSHOT") + compileOnly("cn.hamster3.mc.plugin:core-bukkit:1.3.3") // 对于 BungeeCord 插件 - compileOnly("cn.hamster3.mc.plugin:core-bungee:1.3.3-SNAPSHOT") + compileOnly("cn.hamster3.mc.plugin:core-bungee:1.3.3") } ``` @@ -54,13 +54,13 @@ dependencies { cn.hamster3.mc.plugin core-bukkit - 1.3.3-SNAPSHOT + 1.3.3 cn.hamster3.mc.plugin core-bungee - 1.3.3-SNAPSHOT + 1.3.3 diff --git a/build.gradle.kts b/build.gradle.kts index 42a8933..e4a617a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.3.3-SNAPSHOT" +version = "1.3.3" description = "叁只仓鼠的 Minecraft 插件开发通用工具包" subprojects { diff --git a/core-bukkit/build.gradle.kts b/core-bukkit/build.gradle.kts index 51ae50c..c8e8219 100644 --- a/core-bukkit/build.gradle.kts +++ b/core-bukkit/build.gradle.kts @@ -1,12 +1,7 @@ @file:Suppress("VulnerableLibrariesLocal") -import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar - evaluationDependsOn(":core-common") -val shade = configurations.create("shade") -val shadeJava8 = configurations.create("shadeJava8") - dependencies { api(project(":core-common")) { isTransitive = false } compileOnly("org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT") @@ -37,11 +32,8 @@ dependencies { implementation("de.tr7zw:item-nbt-api:2.12.2") // https://mvnrepository.com/artifact/com.zaxxer/HikariCP implementation("com.zaxxer:HikariCP:4.0.3") { exclude(group = "org.slf4j") } - - // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib - shade("org.jetbrains.kotlin:kotlin-stdlib:1.9.23") { exclude(group = "org.jetbrains") } // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jdk8 - shadeJava8("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.23") { exclude(group = "org.jetbrains") } + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.23") { exclude(group = "org.jetbrains") } } tasks { @@ -54,23 +46,8 @@ tasks { archiveBaseName = "HamsterCore-Bukkit" } shadowJar { - from(shade.map { if (it.isDirectory) it else zipTree(it) }) destinationDirectory = rootProject.layout.buildDirectory relocate("de.tr7zw.changeme.nbtapi", "cn.hamster3.mc.plugin.core.lib.de.tr7zw.nbtapi") relocate("de.tr7zw.annotations", "cn.hamster3.mc.plugin.core.lib.de.tr7zw.nbtapi.annotations") } - val shadowJava8 = register("shadowJava8") { - dependsOn(":core-common:build") - archiveClassifier = "Java8" - from(project.configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) - from(processResources.get().outputs) - from(jar.get().outputs) - from(shadeJava8.map { if (it.isDirectory) it else zipTree(it) }) - destinationDirectory = rootProject.layout.buildDirectory - relocate("de.tr7zw.changeme.nbtapi", "cn.hamster3.mc.plugin.core.lib.de.tr7zw.nbtapi") - relocate("de.tr7zw.annotations", "cn.hamster3.mc.plugin.core.lib.de.tr7zw.nbtapi.annotations") - } - build { - dependsOn(shadowJava8) - } } diff --git a/core-bungee/build.gradle.kts b/core-bungee/build.gradle.kts index 863d91b..a1d582c 100644 --- a/core-bungee/build.gradle.kts +++ b/core-bungee/build.gradle.kts @@ -1,12 +1,7 @@ @file:Suppress("VulnerableLibrariesLocal") -import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar - evaluationDependsOn(":core-common") -val shade = configurations.create("shade") -val shadeJava8 = configurations.create("shadeJava8") - dependencies { api(project(":core-common")) { isTransitive = false } compileOnly("net.md-5:bungeecord-api:1.20-R0.1") @@ -30,11 +25,8 @@ dependencies { api("com.sun.mail:jakarta.mail:2.0.1") implementation("com.zaxxer:HikariCP:4.0.3") { exclude(group = "org.slf4j") } - - // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib - shade("org.jetbrains.kotlin:kotlin-stdlib:1.9.23") { exclude(group = "org.jetbrains") } // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jdk8 - shadeJava8("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.23") { exclude(group = "org.jetbrains") } + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.23") { exclude(group = "org.jetbrains") } } tasks { @@ -47,23 +39,6 @@ tasks { archiveBaseName = "HamsterCore-BungeeCord" } shadowJar { - from(shade.map { if (it.isDirectory) it else zipTree(it) }) destinationDirectory = rootProject.layout.buildDirectory } - shadowJar { - from(shade.map { if (it.isDirectory) it else zipTree(it) }) - destinationDirectory = rootProject.layout.buildDirectory - } - val shadowJava8 = register("shadowJava8") { - dependsOn(":core-common:build") - archiveClassifier = "Java8" - from(project.configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) - from(processResources.get().outputs) - from(jar.get().outputs) - from(shadeJava8.map { if (it.isDirectory) it else zipTree(it) }) - destinationDirectory = rootProject.layout.buildDirectory - } - build { - dependsOn(shadowJava8) - } }