feat: 使用 MiniMessage 读取消息
This commit is contained in:
@@ -25,6 +25,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@SuppressWarnings("CallToPrintStackTrace")
|
||||
public class HamsterCorePlugin extends JavaPlugin {
|
||||
@Getter
|
||||
private static HamsterCorePlugin instance;
|
||||
@@ -64,8 +65,13 @@ public class HamsterCorePlugin extends JavaPlugin {
|
||||
saveDefaultConfig();
|
||||
reloadConfig();
|
||||
logger.info("已读取配置文件");
|
||||
CoreBukkitAPI.init();
|
||||
logger.info("已初始化 CoreAPI");
|
||||
try {
|
||||
CoreBukkitAPI.init();
|
||||
logger.info("已初始化 CoreAPI");
|
||||
} catch (Exception e) {
|
||||
logger.warning("初始化 CoreAPI 出错");
|
||||
e.printStackTrace();
|
||||
}
|
||||
CoreMessage.init(this);
|
||||
logger.info("已初始化语言文本");
|
||||
long time = System.currentTimeMillis() - start;
|
||||
|
@@ -32,16 +32,33 @@ public final class CoreBukkitAPI extends CoreAPI {
|
||||
private final HikariDataSource datasource;
|
||||
|
||||
private CoreBukkitAPI() {
|
||||
gson = new GsonBuilder()
|
||||
.registerTypeAdapter(Component.class, ComponentTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(DisplayMessage.class, MessageTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(ItemStack.class, ItemStackAdapter.INSTANCE)
|
||||
.registerTypeAdapter(PotionEffect.class, PotionEffectAdapter.INSTANCE)
|
||||
.create();
|
||||
humanGson = new GsonBuilder()
|
||||
.registerTypeAdapter(Component.class, ComponentTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(DisplayMessage.class, MessageTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(ItemStack.class, ItemStackAdapter.INSTANCE)
|
||||
.registerTypeAdapter(PotionEffect.class, PotionEffectAdapter.INSTANCE)
|
||||
.serializeNulls()
|
||||
.setPrettyPrinting()
|
||||
.create();
|
||||
|
||||
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
|
||||
FileConfiguration config = plugin.getConfig();
|
||||
|
||||
HamsterCorePlugin.getInstance().getLogger().info("正在创建 redis 客户端");
|
||||
redisClient = RedisClient.create(config.getString("redis-url"));
|
||||
HamsterCorePlugin.getInstance().getLogger().info("redis 客户端创建完成");
|
||||
|
||||
ConfigurationSection datasourceConfig = config.getConfigurationSection("datasource");
|
||||
if (datasourceConfig == null) {
|
||||
throw new IllegalArgumentException("配置文件中未找到 datasource 节点");
|
||||
}
|
||||
|
||||
HamsterCorePlugin.getInstance().getLogger().info("正在创建数据库连接池");
|
||||
HikariConfig hikariConfig = new HikariConfig();
|
||||
hikariConfig.setDriverClassName(datasourceConfig.getString("driver"));
|
||||
hikariConfig.setJdbcUrl(datasourceConfig.getString("url"));
|
||||
@@ -58,21 +75,7 @@ public final class CoreBukkitAPI extends CoreAPI {
|
||||
hikariConfig.setValidationTimeout(datasourceConfig.getLong("validation-timeout", 5000));
|
||||
hikariConfig.setPoolName("HamsterCore-Pool");
|
||||
datasource = new HikariDataSource(hikariConfig);
|
||||
|
||||
gson = new GsonBuilder()
|
||||
.registerTypeAdapter(Component.class, ComponentTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(DisplayMessage.class, MessageTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(ItemStack.class, ItemStackAdapter.INSTANCE)
|
||||
.registerTypeAdapter(PotionEffect.class, PotionEffectAdapter.INSTANCE)
|
||||
.create();
|
||||
humanGson = new GsonBuilder()
|
||||
.registerTypeAdapter(Component.class, ComponentTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(DisplayMessage.class, MessageTypeAdapter.INSTANCE)
|
||||
.registerTypeAdapter(ItemStack.class, ItemStackAdapter.INSTANCE)
|
||||
.registerTypeAdapter(PotionEffect.class, PotionEffectAdapter.INSTANCE)
|
||||
.serializeNulls()
|
||||
.setPrettyPrinting()
|
||||
.create();
|
||||
HamsterCorePlugin.getInstance().getLogger().info("数据库连接池创建完成");
|
||||
}
|
||||
|
||||
public static CoreBukkitAPI getInstance() {
|
||||
|
@@ -15,6 +15,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
@Getter
|
||||
public enum CoreMessage {
|
||||
COMMAND_NOT_FOUND("§c未找到该指令"),
|
||||
COMMAND_NOT_HAS_PERMISSION("§c你没有这个权限"),
|
||||
@@ -62,7 +63,6 @@ public enum CoreMessage {
|
||||
COMMAND_LORE_INSERT_INDEX_OUT_OF_RANGE("§c你的手持物品没有这么多行 lore 文本"),
|
||||
COMMAND_LORE_INSERT_SUCCESS("§a已成功设置 lore 文本");
|
||||
|
||||
@Getter
|
||||
@NotNull
|
||||
private DisplayMessage message;
|
||||
|
||||
|
@@ -7,6 +7,7 @@ import de.tr7zw.changeme.nbtapi.NBTContainer;
|
||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import net.kyori.adventure.title.Title;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -212,18 +213,18 @@ public final class CoreBukkitUtils {
|
||||
DisplayMessage displayMessage = new DisplayMessage();
|
||||
String message = config.getString("message");
|
||||
if (message != null) {
|
||||
displayMessage.setMessage(message);
|
||||
displayMessage.setMessage(MiniMessage.miniMessage().deserialize(message));
|
||||
}
|
||||
String actionbar = config.getString("actionbar");
|
||||
if (actionbar != null) {
|
||||
displayMessage.setActionbar(actionbar);
|
||||
displayMessage.setActionbar(MiniMessage.miniMessage().deserialize(actionbar));
|
||||
}
|
||||
String title = config.getString("title");
|
||||
String subtitle = config.getString("subtitle");
|
||||
if (title != null || subtitle != null) {
|
||||
displayMessage.setTitle(
|
||||
title,
|
||||
subtitle,
|
||||
MiniMessage.miniMessage().escapeTags(title == null ? "" : title),
|
||||
MiniMessage.miniMessage().escapeTags(subtitle == null ? "" : subtitle),
|
||||
config.getInt("fade-in", 10),
|
||||
config.getInt("stay", 70),
|
||||
config.getInt("fade-out", 20)
|
||||
|
Reference in New Issue
Block a user