refactor: 将部分初始化代码提前至 onLoad 阶段

This commit is contained in:
2022-10-24 02:40:57 +08:00
parent f795289526
commit 1c424f6eed
4 changed files with 41 additions and 21 deletions

View File

@@ -2,12 +2,14 @@ package cn.hamster3.mc.plugin.core.bungee;
import cn.hamster3.mc.plugin.core.bungee.api.CoreBungeeAPI;
import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
import net.md_5.bungee.api.plugin.Plugin;
import java.util.logging.Logger;
public class HamsterCorePlugin extends Plugin {
private static HamsterCorePlugin instance;
private BungeeAudiences audienceProvider;
public static HamsterCorePlugin getInstance() {
return instance;
@@ -16,6 +18,13 @@ public class HamsterCorePlugin extends Plugin {
@Override
public void onLoad() {
instance = this;
Logger logger = getLogger();
long start = System.currentTimeMillis();
logger.info("仓鼠核心正在初始化...");
CoreBungeeAPI.init();
logger.info("CoreBungeeAPI 已初始化.");
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms.");
}
@Override
@@ -23,10 +32,10 @@ public class HamsterCorePlugin extends Plugin {
Logger logger = getLogger();
long start = System.currentTimeMillis();
logger.info("仓鼠核心正在启动...");
CoreBungeeAPI.init();
logger.info("CoreAPI 已初始化.");
audienceProvider = BungeeAudiences.create(this);
logger.info("完成 BungeeAudiences 挂载.");
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心启动,总计耗时 " + time + " ms.");
logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms.");
}
@Override
@@ -41,4 +50,8 @@ public class HamsterCorePlugin extends Plugin {
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心已关闭,总计耗时 " + time + " ms.");
}
public BungeeAudiences getAudienceProvider() {
return audienceProvider;
}
}

View File

@@ -6,18 +6,15 @@ import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import net.kyori.adventure.platform.AudienceProvider;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
import net.md_5.bungee.config.Configuration;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public final class CoreBungeeAPI extends CoreAPI {
private final BungeeAudiences audienceProvider;
private final HikariDataSource datasource;
private CoreBungeeAPI() {
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
audienceProvider = BungeeAudiences.create(plugin);
Configuration config = BungeeCordUtils.getPluginConfig(plugin);
@@ -47,7 +44,7 @@ public final class CoreBungeeAPI extends CoreAPI {
@Override
public @NotNull AudienceProvider getAudienceProvider() {
return audienceProvider;
return HamsterCorePlugin.getInstance().getAudienceProvider();
}
@Override