mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
implement AbstractTerraPlugin#load
This commit is contained in:
@@ -9,12 +9,12 @@ import com.dfsek.terra.api.command.exception.MalformedCommandException;
|
|||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.config.PluginConfig;
|
import com.dfsek.terra.api.config.PluginConfig;
|
||||||
import com.dfsek.terra.api.event.EventManager;
|
import com.dfsek.terra.api.event.EventManager;
|
||||||
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
|
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.lang.Language;
|
||||||
import com.dfsek.terra.api.profiler.Profiler;
|
import com.dfsek.terra.api.profiler.Profiler;
|
||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.util.generic.Lazy;
|
import com.dfsek.terra.api.util.generic.Lazy;
|
||||||
|
import com.dfsek.terra.api.util.mutable.MutableBoolean;
|
||||||
import com.dfsek.terra.commands.CommandUtil;
|
import com.dfsek.terra.commands.CommandUtil;
|
||||||
import com.dfsek.terra.commands.TerraCommandManager;
|
import com.dfsek.terra.commands.TerraCommandManager;
|
||||||
import com.dfsek.terra.config.GenericLoaders;
|
import com.dfsek.terra.config.GenericLoaders;
|
||||||
@@ -35,6 +35,8 @@ import java.util.Optional;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Skeleton implementation of {@link TerraPlugin}
|
* Skeleton implementation of {@link TerraPlugin}
|
||||||
|
*
|
||||||
|
* Implementations must invoke {@link #load()} in their constructors.
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractTerraPlugin implements TerraPlugin {
|
public abstract class AbstractTerraPlugin implements TerraPlugin {
|
||||||
private final Lazy<DebugLogger> debugLogger = Lazy.lazy(() -> new DebugLogger(logger()));
|
private final Lazy<DebugLogger> debugLogger = Lazy.lazy(() -> new DebugLogger(logger()));
|
||||||
@@ -56,12 +58,23 @@ public abstract class AbstractTerraPlugin implements TerraPlugin {
|
|||||||
|
|
||||||
private final Logger logger;
|
private final Logger logger;
|
||||||
|
|
||||||
|
private static final MutableBoolean LOADED = new MutableBoolean(false);
|
||||||
|
|
||||||
|
|
||||||
public AbstractTerraPlugin() {
|
public AbstractTerraPlugin() {
|
||||||
this.logger = createLogger();
|
this.logger = createLogger();
|
||||||
System.out.println(logger);
|
addonRegistry = getPlatformAddon().map(terraAddon -> new AddonRegistry(terraAddon, this)).orElseGet(() -> new AddonRegistry(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void load() {
|
||||||
|
if(LOADED.get()) {
|
||||||
|
throw new IllegalStateException("Someone tried to initialize Terra, but Terra has already initialized. This is most likely due to a broken platform implementation, or a misbehaving mod.");
|
||||||
|
}
|
||||||
|
LOADED.set(true);
|
||||||
|
|
||||||
logger().info("Initializing Terra...");
|
logger().info("Initializing Terra...");
|
||||||
|
|
||||||
|
saveDefaultConfig();
|
||||||
config.load(this); // load config.yml
|
config.load(this); // load config.yml
|
||||||
|
|
||||||
LangUtil.load(config.getLanguage(), this); // load language
|
LangUtil.load(config.getLanguage(), this); // load language
|
||||||
@@ -72,7 +85,6 @@ public abstract class AbstractTerraPlugin implements TerraPlugin {
|
|||||||
profiler.start();
|
profiler.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
addonRegistry = getPlatformAddon().map(terraAddon -> new AddonRegistry(terraAddon, this)).orElseGet(() -> new AddonRegistry(this));
|
|
||||||
addonRegistry.register(new InternalAddon(this));
|
addonRegistry.register(new InternalAddon(this));
|
||||||
|
|
||||||
if(!addonRegistry.loadAll(getClass().getClassLoader())) { // load all addons
|
if(!addonRegistry.loadAll(getClass().getClassLoader())) { // load all addons
|
||||||
|
|||||||
@@ -36,6 +36,10 @@ public class TerraPluginImpl extends AbstractTerraPlugin {
|
|||||||
return Optional.of(new FabricAddon(this));
|
return Optional.of(new FabricAddon(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TerraPluginImpl() {
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Logger createLogger() {
|
protected Logger createLogger() {
|
||||||
final org.apache.logging.log4j.Logger log4jLogger = LogManager.getLogger();
|
final org.apache.logging.log4j.Logger log4jLogger = LogManager.getLogger();
|
||||||
|
|||||||
Reference in New Issue
Block a user