9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-26 10:29:10 +00:00

delay world init

This commit is contained in:
XiaoMoMi
2025-06-20 23:33:56 +08:00
parent 886f5fbcd6
commit 6d190d1943
5 changed files with 22 additions and 6 deletions

View File

@@ -188,8 +188,17 @@ public class BukkitCustomCropsPluginImpl extends BukkitCustomCropsPlugin {
Runnable delayedInitTask = () -> {
((SimpleRegistryAccess) registryAccess).freeze();
logger.info("Registry access has been frozen");
this.integrationManager.delayedLoad();
this.logger.info("Registry access has been frozen");
try {
this.worldManager.reloadWorlds();
} catch (Exception e) {
this.logger.severe("Failed to load worlds", e);
}
try {
this.integrationManager.delayedLoad();
} catch (Exception e) {
this.logger.severe("Failed to load integrations", e);
}
EventUtils.fireAndForget(new CustomCropsReloadEvent(this));
((BukkitItemManager) itemManager).setAntiGriefLib(AntiGriefLib.builder((JavaPlugin) getBootstrap()).silentLogs(true).ignoreOP(true).build());
};

View File

@@ -39,6 +39,7 @@ public class ReloadCommand extends BukkitCommandFeature<CommandSender> {
.handler(context -> {
long time1 = System.currentTimeMillis();
BukkitCustomCropsPlugin.getInstance().reload();
BukkitCustomCropsPlugin.getInstance().getWorldManager().reloadWorlds();
handleFeedback(context, MessageConstants.COMMAND_RELOAD_SUCCESS, Component.text(System.currentTimeMillis() - time1));
});
}

View File

@@ -128,9 +128,7 @@ public class BukkitWorldManager implements WorldManager, Listener {
}
@Override
public void load() {
this.loadConfig();
Bukkit.getPluginManager().registerEvents(this, plugin.getBootstrap());
public void reloadWorlds() {
// load and unload worlds
for (World world : Bukkit.getWorlds()) {
if (isMechanicEnabled(world)) {
@@ -141,6 +139,12 @@ public class BukkitWorldManager implements WorldManager, Listener {
}
}
@Override
public void load() {
this.loadConfig();
Bukkit.getPluginManager().registerEvents(this, plugin.getBootstrap());
}
@Override
public void unload() {
HandlerList.unregisterAll(this);