feat: 添加新 API
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user