EcoPlugin#afterLoad now runs 2 ticks after, with a preliminary reload 1 tick after startup to fix load order bugs
This commit is contained in:
@@ -135,6 +135,14 @@ public interface Eco {
|
||||
@NotNull
|
||||
Logger createLogger(@NotNull EcoPlugin plugin);
|
||||
|
||||
/**
|
||||
* Get NOOP logger.
|
||||
*
|
||||
* @return The logger.
|
||||
*/
|
||||
@NotNull
|
||||
Logger getNOOPLogger();
|
||||
|
||||
/**
|
||||
* Create a PAPI integration.
|
||||
*
|
||||
|
||||
@@ -126,7 +126,7 @@ public abstract class EcoPlugin extends JavaPlugin implements PluginLike, Regist
|
||||
/**
|
||||
* The logger for the plugin.
|
||||
*/
|
||||
private final Logger logger;
|
||||
private Logger logger;
|
||||
|
||||
/**
|
||||
* If the server is running an outdated version of the plugin.
|
||||
@@ -425,7 +425,18 @@ public abstract class EcoPlugin extends JavaPlugin implements PluginLike, Regist
|
||||
|
||||
this.loadPluginCommands().forEach(PluginCommand::register);
|
||||
|
||||
this.getScheduler().runLater(this::afterLoad, 1);
|
||||
// Run preliminary reload to resolve load order issues
|
||||
this.getScheduler().runLater(() -> {
|
||||
Logger before = this.getLogger();
|
||||
// Temporary silence logger.
|
||||
this.logger = Eco.get().getNOOPLogger();
|
||||
|
||||
this.reload(false);
|
||||
|
||||
this.logger = before;
|
||||
}, 1);
|
||||
|
||||
this.getScheduler().runLater(this::afterLoad, 2);
|
||||
|
||||
if (this.isSupportingExtensions()) {
|
||||
this.getExtensionLoader().loadExtensions();
|
||||
@@ -601,9 +612,18 @@ public abstract class EcoPlugin extends JavaPlugin implements PluginLike, Regist
|
||||
* Reload the plugin.
|
||||
*/
|
||||
public final void reload() {
|
||||
this.reload(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reload the plugin.
|
||||
*
|
||||
* @param cancelTasks If tasks should be cancelled.
|
||||
*/
|
||||
public final void reload(final boolean cancelTasks) {
|
||||
this.getConfigHandler().updateConfigs();
|
||||
|
||||
if (this.cancelsTasksOnReload()) {
|
||||
if (cancelTasks) {
|
||||
this.getScheduler().cancelAll();
|
||||
}
|
||||
|
||||
@@ -1163,15 +1183,6 @@ public abstract class EcoPlugin extends JavaPlugin implements PluginLike, Regist
|
||||
return this.configYml.isUsingLocalStorage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get if all tasks should be cancelled on reload.
|
||||
*
|
||||
* @return If cancelling tasks on reload.
|
||||
*/
|
||||
public boolean cancelsTasksOnReload() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public final String getID() {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.willfp.eco.core.items;
|
||||
|
||||
import com.willfp.eco.core.Eco;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -55,7 +54,7 @@ public class CustomItem implements TestableItem {
|
||||
*/
|
||||
Eco.get().getEcoPlugin().getScheduler().runLater(() -> {
|
||||
if (!matches(getItem())) {
|
||||
Bukkit.getLogger().severe("Item with key " + key + " is invalid!");
|
||||
Eco.get().getEcoPlugin().getLogger().severe("Item with key " + key + " is invalid!");
|
||||
}
|
||||
}, 1);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.willfp.eco.core.items.Items;
|
||||
import com.willfp.eco.core.recipe.recipes.CraftingRecipe;
|
||||
import com.willfp.eco.core.recipe.recipes.ShapedCraftingRecipe;
|
||||
import com.willfp.eco.util.NamespacedKeyUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -127,8 +126,8 @@ public final class Recipes {
|
||||
}
|
||||
|
||||
if (builder.isAir()) {
|
||||
Bukkit.getLogger().warning("Crafting recipe " + plugin.getID() + ":" + key + " consists only");
|
||||
Bukkit.getLogger().warning("of air or invalid items! It will not be registered.");
|
||||
plugin.getLogger().warning("Crafting recipe " + plugin.getID() + ":" + key + " consists only");
|
||||
plugin.getLogger().warning("of air or invalid items! It will not be registered.");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user