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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user