9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-24 01:19:24 +00:00

Improved the safety of reload

This commit is contained in:
XiaoMoMi
2025-02-13 03:44:45 +08:00
parent 0baeb22565
commit e5adaf9665

View File

@@ -50,6 +50,7 @@ public abstract class CraftEngine implements Plugin {
protected SenderFactory<? extends Plugin, ?> senderFactory;
protected TemplateManager templateManager;
protected PluginLogger logger;
private boolean isReloading;
protected CraftEngine() {
instance = this;
@@ -69,20 +70,29 @@ public abstract class CraftEngine implements Plugin {
@Override
public void reload() {
this.translationManager.reload();
this.configManager.reload();
this.templateManager.reload();
this.furnitureManager.reload();
this.fontManager.reload();
this.itemManager.reload();
this.recipeManager.reload();
this.blockManager.reload();
this.worldManager.reload();
this.packManager.reload();
this.blockManager.delayedLoad();
this.recipeManager.delayedLoad().thenRunAsync(() -> {
this.packManager.generateResourcePack();
}, this.scheduler.async());
if (this.isReloading) return;
this.isReloading = true;
try {
this.translationManager.reload();
this.configManager.reload();
this.templateManager.reload();
this.furnitureManager.reload();
this.fontManager.reload();
this.itemManager.reload();
this.recipeManager.reload();
this.blockManager.reload();
this.worldManager.reload();
this.packManager.reload();
this.blockManager.delayedLoad();
} finally {
this.recipeManager.delayedLoad().thenRunAsync(() -> {
try {
this.packManager.generateResourcePack();
} finally {
this.isReloading = false;
}
}, this.scheduler.async());
}
}
@Override