From e80c983c510e4a9e4a8e29b97f1b1875f550d43e Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Wed, 27 Dec 2023 20:47:16 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=96=B0=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/bukkit/constant/CoreMessage.java | 27 ++++++++++++------- .../core/common/data/DisplayMessage.java | 5 ++++ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java index dba1b37..7d62611 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java @@ -3,6 +3,7 @@ package cn.hamster3.mc.plugin.core.bukkit.constant; import cn.hamster3.mc.plugin.core.bukkit.api.CoreBukkitAPI; import cn.hamster3.mc.plugin.core.bukkit.util.CoreBukkitUtils; import cn.hamster3.mc.plugin.core.common.data.DisplayMessage; +import lombok.Getter; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.TextReplacementConfig; import org.bukkit.command.CommandSender; @@ -59,9 +60,10 @@ public enum CoreMessage { COMMAND_LORE_INSERT_INPUT_NUMBER_ERROR("§c行号必须是一个大于等于 0 的整数"), COMMAND_LORE_INSERT_WAIT_CHAT_TEXT("§a请于 15 秒内在聊天框输入想要设置的 lore 文本"), COMMAND_LORE_INSERT_INDEX_OUT_OF_RANGE("§c你的手持物品没有这么多行 lore 文本"), - COMMAND_LORE_INSERT_SUCCESS("§a已成功设置 lore 文本"), - ; + COMMAND_LORE_INSERT_SUCCESS("§a已成功设置 lore 文本"); + @Getter + @NotNull private DisplayMessage message; CoreMessage(@NotNull String message) { @@ -106,17 +108,22 @@ public enum CoreMessage { } } - public void show(@NotNull CommandSender sender, TextReplacementConfig... replacement) { - if (message == null) { - sender.sendMessage(name()); - return; - } + public void show(@NotNull CommandSender sender, @NotNull TextReplacementConfig... replacement) { Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender); message.show(audience, replacement); } - @SuppressWarnings("unused") - public DisplayMessage getMessage() { - return message; + public void show(@NotNull CommandSender sender, @NotNull String... replacement) { + if (replacement.length % 2 != 0) { + throw new IllegalArgumentException(); + } + TextReplacementConfig[] configs = new TextReplacementConfig[replacement.length / 2]; + for (int i = 0; i < configs.length; i++) { + String key = replacement[i * 2]; + String value = replacement[i * 2 + 1]; + configs[i] = TextReplacementConfig.builder().matchLiteral(key).replacement(value).build(); + } + Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender); + message.show(audience, configs); } } diff --git a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java index 4d98cf8..42fb89a 100644 --- a/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java +++ b/core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java @@ -148,6 +148,11 @@ public class DisplayMessage { return copy; } + @NotNull + public DisplayMessage replace(@NotNull String key, String value) { + return replace(TextReplacementConfig.builder().matchLiteral(key).replacement(value).build()); + } + @NotNull public JsonObject toJson() { JsonObject object = new JsonObject(); From 79db9acf959d93649e1fbb59d51bb9c3d990b587 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Fri, 29 Dec 2023 18:00:56 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix(bukkit):=20=E4=BF=AE=E5=A4=8D=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/lore/sub/LoreCustomModelDataCommand.java | 5 +---- .../core/bukkit/command/lore/sub/LoreFlagCommand.java | 11 ++--------- .../mc/plugin/core/bukkit/constant/CoreMessage.java | 5 ++--- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreCustomModelDataCommand.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreCustomModelDataCommand.java index 04dce4b..1daf178 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreCustomModelDataCommand.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreCustomModelDataCommand.java @@ -3,7 +3,6 @@ package cn.hamster3.mc.plugin.core.bukkit.command.lore.sub; import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand; import cn.hamster3.mc.plugin.core.bukkit.constant.CoreMessage; import cn.hamster3.mc.plugin.core.bukkit.util.CoreBukkitUtils; -import net.kyori.adventure.text.TextReplacementConfig; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -66,9 +65,7 @@ public class LoreCustomModelDataCommand extends ChildCommand { int data = Integer.parseInt(args[0]); meta.setCustomModelData(data); stack.setItemMeta(meta); - CoreMessage.COMMAND_LORE_CMD_SET_SUCCESS.show(sender, TextReplacementConfig.builder() - .matchLiteral("%data%").replacement(args[0]) - .build()); + CoreMessage.COMMAND_LORE_CMD_SET_SUCCESS.show(sender, "%data%", args[0]); } catch (NumberFormatException e) { CoreMessage.COMMAND_LORE_CMD_SET_INPUT_ERROR.show(sender); return true; diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreFlagCommand.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreFlagCommand.java index bf64693..40e7f85 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreFlagCommand.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/command/lore/sub/LoreFlagCommand.java @@ -3,7 +3,6 @@ package cn.hamster3.mc.plugin.core.bukkit.command.lore.sub; import cn.hamster3.mc.plugin.core.bukkit.command.ChildCommand; import cn.hamster3.mc.plugin.core.bukkit.constant.CoreMessage; import cn.hamster3.mc.plugin.core.bukkit.util.CoreBukkitUtils; -import net.kyori.adventure.text.TextReplacementConfig; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -71,16 +70,10 @@ public class LoreFlagCommand extends ChildCommand { if (meta != null) { if (meta.hasItemFlag(flag)) { meta.removeItemFlags(flag); - CoreMessage.COMMAND_LORE_FLAG_REMOVE_SUCCESS.show(player, TextReplacementConfig.builder() - .replacement("%flag%") - .matchLiteral(flag.name()) - .build()); + CoreMessage.COMMAND_LORE_FLAG_REMOVE_SUCCESS.show(player, "%flag%", flag.name()); } else { meta.addItemFlags(flag); - CoreMessage.COMMAND_LORE_FLAG_SET_SUCCESS.show(player, TextReplacementConfig.builder() - .replacement("%flag%") - .matchLiteral(flag.name()) - .build()); + CoreMessage.COMMAND_LORE_FLAG_SET_SUCCESS.show(player, "%flag%", flag.name()); } } stack.setItemMeta(meta); diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java index 7d62611..e3dc5d5 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java @@ -108,9 +108,8 @@ public enum CoreMessage { } } - public void show(@NotNull CommandSender sender, @NotNull TextReplacementConfig... replacement) { - Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender); - message.show(audience, replacement); + public void show(@NotNull CommandSender sender) { + message.show(CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender)); } public void show(@NotNull CommandSender sender, @NotNull String... replacement) { From b2fdbfa99fc878620b47d9bbc1260a4398437e5b Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Thu, 4 Jan 2024 13:58:18 +0800 Subject: [PATCH 3/4] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 070d30d..4e3c8bc 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,22 @@ -# [HamsterCore](https://gitee.com/MiniDay/hamster-core) +# [HamsterCore](https://git.airgame.net/MiniDay/hamster-core) 仓鼠核心:叁只仓鼠的 Minecraft 插件开发通用工具包 -# 添加依赖 +# 手动构建 -## Gradle (`build.gradle`) +1. 将源代码下载或克隆至本地 +2. 在源代码根目录中打开命令行窗口 +3. 命令行窗口中执行`./gradlew clean build` +4. 构建成品在 `build` 文件夹 + +也可访问我的[Jenkins网站](https://jenkins.airgame.net/job/opensource/job/hamster-core/)获取最新版 + +# 开发 + +## 添加依赖 + +
+ Gradle(build.gradle) ```groovy // 添加仓库 @@ -22,7 +34,31 @@ dependencies { } ``` -## Maven (`pom.xml`) +
+ +
+ Gradle(build.gradle.kts) + +```kotlin +// 添加仓库 +repositories { + maven { + url = uri("https://maven.airgame.net/maven-public/") + } +} + +dependencies { + // 对于 Bukkit 插件 + compileOnly("cn.hamster3.mc.plugin:core-bukkit:+") + // 对于 BungeeCord 插件 + compileOnly("cn.hamster3.mc.plugin:core-bungee:+") +} +``` + +
+ +
+ Gradle(pom.xml) ```xml @@ -52,3 +88,13 @@ dependencies { ``` + +
+ +## 使用 API + +- 绝大部分 API 相关的方法都位于 `cn.hamster3.mc.plugin.core.common.api.CoreAPI` 类中 + - 使用方法为:`CoreAPI.getInstance().xxx()` +- 部分通用的工具代码在 `cn.hamster3.mc.plugin.core.common.util` 包中 +- 部分Bukkit的工具代码在 `cn.hamster3.mc.plugin.core.bukkit.util` 包中 +- 部分BungeeCord的工具代码在 `cn.hamster3.mc.plugin.core.bungee.util` 包中 \ No newline at end of file From 0e5e313b5bc86332840e0697aac4493c333f7a05 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Thu, 4 Jan 2024 13:59:43 +0800 Subject: [PATCH 4/4] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core-bukkit/src/main/resources/plugin.yml | 2 +- core-bungee/src/main/resources/bungee.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core-bukkit/src/main/resources/plugin.yml b/core-bukkit/src/main/resources/plugin.yml index b3ac4f0..07ff519 100644 --- a/core-bukkit/src/main/resources/plugin.yml +++ b/core-bukkit/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ version: ${version} api-version: 1.13 author: MiniDay -website: https://github.com/MiniDay/hamster-core +website: https://git.airgame.net/MiniDay/hamster-core description: 仓鼠核心:叁只仓鼠的 Minecraft 插件开发通用工具包 load: STARTUP diff --git a/core-bungee/src/main/resources/bungee.yml b/core-bungee/src/main/resources/bungee.yml index 9f29fdf..39611b9 100644 --- a/core-bungee/src/main/resources/bungee.yml +++ b/core-bungee/src/main/resources/bungee.yml @@ -3,3 +3,4 @@ main: cn.hamster3.mc.plugin.core.bungee.HamsterCorePlugin version: ${version} author: MiniDay +description: 仓鼠核心:叁只仓鼠的 Minecraft 插件开发通用工具包 \ No newline at end of file