0
This repository has been archived on 2024-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ModuleLoader/src/main/java/com/redstoner/modules/Module.java
2019-02-08 18:49:51 -05:00

54 lines
1.6 KiB
Java

package com.redstoner.modules;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
/**
* Interface for the Module class. Modules must always have an empty constructor to be invoked by the ModuleLoader.
*
* @author Pepich
*/
@Version (major = 4, minor = 0, revision = 0, compatible = 0)
public interface Module {
/** Will be called when the module gets enabled. */
public default boolean onEnable() {
return true;
}
/**
* This methods gets called after all modules were enabled, please use this method to register commands and similar. <br/>
* It will only get called if and only if the module was successfully enabled.
*/
public default void postEnable() {}
/** Will be called when the module gets disabled. */
public default void onDisable() {}
/**
* Gets called on registration of the module, when this option is selected for command registration
*
* @return The String used for the CommandManager to register the commands.
*/
public default String getCommandString() {
return null;
}
/** This method gets run the very first time a module gets loaded. You can use this to set up file structures or background data. */
public default void firstLoad() {}
/**
* This method gets run every time a module gets loaded and its version has changed.
*
* @param old The version of the previous module.
*/
public default void migrate(Version old) {}
default void setPrefix(final String name) {
getLogger().setName(name);
}
public default ModuleLogger getLogger() {
return ModuleLoader.getModuleLogger(this);
}
}