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.listener.DebugListener;
import cn.hamster3.mc.plugin.core.bukkit.page.listener.PageListener; import cn.hamster3.mc.plugin.core.bukkit.page.listener.PageListener;
import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -23,6 +24,8 @@ public class HamsterCorePlugin extends JavaPlugin {
public static final ParentCommand COMMAND_EXECUTOR = new ParentCommand("core"); public static final ParentCommand COMMAND_EXECUTOR = new ParentCommand("core");
private static HamsterCorePlugin instance; private static HamsterCorePlugin instance;
private BukkitAudiences audienceProvider;
public static HamsterCorePlugin getInstance() { public static HamsterCorePlugin getInstance() {
return instance; return instance;
} }
@@ -34,6 +37,19 @@ public class HamsterCorePlugin extends JavaPlugin {
@Override @Override
public void onLoad() { public void onLoad() {
instance = this; 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 @Override
@@ -41,27 +57,20 @@ public class HamsterCorePlugin extends JavaPlugin {
Logger logger = getLogger(); Logger logger = getLogger();
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
logger.info("仓鼠核心正在启动..."); logger.info("仓鼠核心正在启动...");
CoreBukkitAPI.init();
logger.info("CoreAPI 已初始化.");
VaultAPI.reloadVaultHook(); VaultAPI.reloadVaultHook();
logger.info("完成 VaultAPI 挂载."); logger.info("完成 VaultAPI 挂载.");
PointAPI.reloadPlayerPointAPIHook(); PointAPI.reloadPlayerPointAPIHook();
logger.info("完成 PlayerPoints 挂载."); logger.info("完成 PlayerPoints 挂载.");
audienceProvider = BukkitAudiences.create(this);
logger.info("完成 BukkitAudiences 挂载.");
Bukkit.getPluginManager().registerEvents(PageListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(PageListener.INSTANCE, this);
logger.info("已注册 PageListener."); logger.info("已注册 PageListener.");
Bukkit.getPluginManager().registerEvents(CallbackListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(CallbackListener.INSTANCE, this);
logger.info("已注册 CallbackListener."); logger.info("已注册 CallbackListener.");
Bukkit.getPluginManager().registerEvents(DebugListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(DebugListener.INSTANCE, this);
logger.info("已注册 DebugListener."); 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; long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心启动,总计耗时 " + time + " ms."); logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms.");
} }
@Override @Override
@@ -86,4 +95,8 @@ public class HamsterCorePlugin extends JavaPlugin {
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
return COMMAND_EXECUTOR.onTabComplete(sender, command, alias, 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.HikariConfig;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import net.kyori.adventure.platform.AudienceProvider; import net.kyori.adventure.platform.AudienceProvider;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public final class CoreBukkitAPI extends CoreAPI { public final class CoreBukkitAPI extends CoreAPI {
private final BukkitAudiences audienceProvider;
private final HikariDataSource datasource; private final HikariDataSource datasource;
private CoreBukkitAPI() { private CoreBukkitAPI() {
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance(); HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
audienceProvider = BukkitAudiences.create(plugin);
plugin.saveDefaultConfig(); plugin.saveDefaultConfig();
FileConfiguration config = plugin.getConfig(); FileConfiguration config = plugin.getConfig();
@@ -48,7 +45,7 @@ public final class CoreBukkitAPI extends CoreAPI {
@Override @Override
public @NotNull AudienceProvider getAudienceProvider() { public @NotNull AudienceProvider getAudienceProvider() {
return audienceProvider; return HamsterCorePlugin.getInstance().getAudienceProvider();
} }
@Override @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.bungee.api.CoreBungeeAPI;
import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects; 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 net.md_5.bungee.api.plugin.Plugin;
import java.util.logging.Logger; import java.util.logging.Logger;
public class HamsterCorePlugin extends Plugin { public class HamsterCorePlugin extends Plugin {
private static HamsterCorePlugin instance; private static HamsterCorePlugin instance;
private BungeeAudiences audienceProvider;
public static HamsterCorePlugin getInstance() { public static HamsterCorePlugin getInstance() {
return instance; return instance;
@@ -16,6 +18,13 @@ public class HamsterCorePlugin extends Plugin {
@Override @Override
public void onLoad() { public void onLoad() {
instance = this; 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 @Override
@@ -23,10 +32,10 @@ public class HamsterCorePlugin extends Plugin {
Logger logger = getLogger(); Logger logger = getLogger();
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
logger.info("仓鼠核心正在启动..."); logger.info("仓鼠核心正在启动...");
CoreBungeeAPI.init(); audienceProvider = BungeeAudiences.create(this);
logger.info("CoreAPI 已初始化."); logger.info("完成 BungeeAudiences 挂载.");
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心启动,总计耗时 " + time + " ms."); logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms.");
} }
@Override @Override
@@ -41,4 +50,8 @@ public class HamsterCorePlugin extends Plugin {
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心已关闭,总计耗时 " + time + " ms."); 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.HikariConfig;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import net.kyori.adventure.platform.AudienceProvider; import net.kyori.adventure.platform.AudienceProvider;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.Configuration;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public final class CoreBungeeAPI extends CoreAPI { public final class CoreBungeeAPI extends CoreAPI {
private final BungeeAudiences audienceProvider;
private final HikariDataSource datasource; private final HikariDataSource datasource;
private CoreBungeeAPI() { private CoreBungeeAPI() {
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance(); HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
audienceProvider = BungeeAudiences.create(plugin);
Configuration config = BungeeCordUtils.getPluginConfig(plugin); Configuration config = BungeeCordUtils.getPluginConfig(plugin);
@@ -47,7 +44,7 @@ public final class CoreBungeeAPI extends CoreAPI {
@Override @Override
public @NotNull AudienceProvider getAudienceProvider() { public @NotNull AudienceProvider getAudienceProvider() {
return audienceProvider; return HamsterCorePlugin.getInstance().getAudienceProvider();
} }
@Override @Override