package mekanism.common.base;
import io.netty.buffer.ByteBuf;
import java.io.IOException;
import mekanism.common.Version;
/**
* Implement in your main class if your mod happens to be completely reliant on Mekanism, or in other words, is a Mekanism module.
* @author aidancbrady
*
*/
public interface IModule
{
/**
* Gets the version of the module.
* @return the module's version
*/
public Version getVersion();
/**
* Gets the name of the module. Note that this doesn't include "Mekanism" like the actual module's name does, just the
* unique name. For example, MekanismGenerators returns "Generators" here.
* @return unique name of the module
*/
public String getName();
/**
* Writes this module's configuration to a ConfigSync packet.
* @param dataStream - the ByteBuf of the sync packet
*/
public void writeConfig(ByteBuf dataStream) throws IOException;
/**
* Reads this module's configuration from the original ConfigSync packet.
* @param dataStream - the incoming ByteBuf of the sync packet
*/
public void readConfig(ByteBuf dataStream) throws IOException;
/**
* Called when the player returns to the main menu.
*/
public void resetClient();
}