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

@@ -11,6 +11,7 @@ import cn.hamster3.mc.plugin.core.bukkit.listener.CallbackListener;
import cn.hamster3.mc.plugin.core.bukkit.listener.DebugListener;
import cn.hamster3.mc.plugin.core.bukkit.page.listener.PageListener;
import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -23,6 +24,8 @@ public class HamsterCorePlugin extends JavaPlugin {
public static final ParentCommand COMMAND_EXECUTOR = new ParentCommand("core");
private static HamsterCorePlugin instance;
private BukkitAudiences audienceProvider;
public static HamsterCorePlugin getInstance() {
return instance;
}
@@ -34,6 +37,19 @@ public class HamsterCorePlugin extends JavaPlugin {
@Override
public void onLoad() {
instance = this;
Logger logger = getLogger();
long start = System.currentTimeMillis();
logger.info("仓鼠核心正在初始化...");
CoreBukkitAPI.init();
logger.info("CoreBukkitAPI 已初始化.");
COMMAND_EXECUTOR.addChildCommand(BlockInfoCommand.INSTANCE);
logger.info("已添加指令: " + BlockInfoCommand.INSTANCE.getName() + " .");
COMMAND_EXECUTOR.addChildCommand(YamlCommand.INSTANCE);
logger.info("已添加指令: " + YamlCommand.INSTANCE.getName() + " .");
COMMAND_EXECUTOR.addChildCommand(ParentLoreCommand.INSTANCE);
logger.info("已添加指令: " + ParentLoreCommand.INSTANCE.getName() + " .");
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms.");
}
@Override
@@ -41,27 +57,20 @@ public class HamsterCorePlugin extends JavaPlugin {
Logger logger = getLogger();
long start = System.currentTimeMillis();
logger.info("仓鼠核心正在启动...");
CoreBukkitAPI.init();
logger.info("CoreAPI 已初始化.");
VaultAPI.reloadVaultHook();
logger.info("完成 VaultAPI 挂载.");
PointAPI.reloadPlayerPointAPIHook();
logger.info("完成 PlayerPoints 挂载.");
audienceProvider = BukkitAudiences.create(this);
logger.info("完成 BukkitAudiences 挂载.");
Bukkit.getPluginManager().registerEvents(PageListener.INSTANCE, this);
logger.info("已注册 PageListener.");
Bukkit.getPluginManager().registerEvents(CallbackListener.INSTANCE, this);
logger.info("已注册 CallbackListener.");
Bukkit.getPluginManager().registerEvents(DebugListener.INSTANCE, this);
logger.info("已注册 DebugListener.");
COMMAND_EXECUTOR.addChildCommand(BlockInfoCommand.INSTANCE);
logger.info("已添加指令: " + BlockInfoCommand.INSTANCE.getName() + " .");
COMMAND_EXECUTOR.addChildCommand(YamlCommand.INSTANCE);
logger.info("已添加指令: " + YamlCommand.INSTANCE.getName() + " .");
COMMAND_EXECUTOR.addChildCommand(ParentLoreCommand.INSTANCE);
logger.info("已添加指令: " + ParentLoreCommand.INSTANCE.getName() + " .");
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心启动,总计耗时 " + time + " ms.");
logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms.");
}
@Override
@@ -86,4 +95,8 @@ public class HamsterCorePlugin extends JavaPlugin {
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
return COMMAND_EXECUTOR.onTabComplete(sender, command, alias, args);
}
public BukkitAudiences getAudienceProvider() {
return audienceProvider;
}
}

View File

@@ -5,19 +5,16 @@ 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.bukkit.BukkitAudiences;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public final class CoreBukkitAPI extends CoreAPI {
private final BukkitAudiences audienceProvider;
private final HikariDataSource datasource;
private CoreBukkitAPI() {
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
audienceProvider = BukkitAudiences.create(plugin);
plugin.saveDefaultConfig();
FileConfiguration config = plugin.getConfig();
@@ -48,7 +45,7 @@ public final class CoreBukkitAPI extends CoreAPI {
@Override
public @NotNull AudienceProvider getAudienceProvider() {
return audienceProvider;
return HamsterCorePlugin.getInstance().getAudienceProvider();
}
@Override

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