Merge remote-tracking branch 'origin/master'

This commit is contained in:
2024-01-13 01:32:20 +08:00
7 changed files with 78 additions and 30 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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,21 @@ public enum CoreMessage {
}
}
public void show(@NotNull CommandSender sender, TextReplacementConfig... replacement) {
if (message == null) {
sender.sendMessage(name());
return;
}
Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender);
message.show(audience, replacement);
public void show(@NotNull CommandSender sender) {
message.show(CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender));
}
@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);
}
}

View File

@@ -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