Ich dachte, es wäre schön, es zu haben. target version : forge-1.12-14.21.1.2426
Annahme Nach dem Herunterladen des MDK ist die Projekteinrichtung abgeschlossen.
Unterhalb des Quellcodes
CommonProxy.java
package examplemod.proxy;
import examplemod.ExampleMod;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
/***
*Lädt Elemente, Blöcke und Tools, die sowohl Clients als auch Servern gemeinsam sind.
*
* @author youname
*
*/
@Mod.EventBusSubscriber
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {
ExampleMod.logger.info("CommonProxy.preInit");
}
public void init(FMLInitializationEvent event) {
ExampleMod.logger.info("CommonProxy.init");
}
public void postInit(FMLPostInitializationEvent event) {
ExampleMod.logger.info("CommonProxy.postInit");
}
@SubscribeEvent
public static void registerBlocks(RegistryEvent.Register<Block> event) {
ExampleMod.logger.info("CommonProxy.registerBlocks");
}
/***
*Laden Sie das Element, das Sie hinzufügen möchten, mit Mod.<br>
*Natürlich müssen Sie die Artikelklasse selbst definieren.
*
* @param event
*/
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
ExampleMod.logger.info("CommonProxy.registerItems");
}
}
ClientProxy.java
package examplemod.proxy;
import examplemod.ExampleMod;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
/***
*Laden Sie Ressourcen auf der Clientseite.
*
* @author youname
*
*/
@Mod.EventBusSubscriber(Side.CLIENT)
public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
ExampleMod.logger.info("ClientProxy.preInit");
}
/***
*Laden Sie ein Block- oder Objektmodell (eine Datei, die definiert, was für Texturen verwendet werden soll und wie Texturen ausgerichtet sind).<br>
*
* @param event
*/
@SubscribeEvent
public static void registerModels(ModelRegistryEvent event) {
ExampleMod.logger.info("ClientProxy.registerModels");
}
}
ServerProxy.java
package examplemod.proxy;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.relauncher.Side;
/***
*Die Verarbeitung erfolgt auf der Serverseite.
*
* @author youname
*
*/
@Mod.EventBusSubscriber(Side.SERVER)
public class ServerProxy extends CommonProxy {
}
ExampleMod.java
package examplemod;
import org.apache.logging.log4j.Logger;
import examplemod.proxy.CommonProxy;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
/***
*Im Hauptteil von Mod@Wenn Sie einen Mod deklarieren, wird er als Hauptteil erkannt.<br>
*Die modid Zeichenfolge ist mcmod.Wenn es nicht mit dem Modid of Info identisch ist, mcmod.Da Informationen nicht gelesen werden, muss der Einstellwert angepasst werden.<br>
*Registrieren Sie Blöcke und Gegenstände in Minecraft mit dieser Klasse.<br>
*
* @author myname
* @version forge-1.12-14.21.1.2426
*/
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod {
//Wird zur Mod-Identifikation und zum Namen der Ressourcendomäne verwendet
public static final String MODID = "examplemod";
//Mod Version
public static final String VERSION = "0.0.1";
//Proxy-Pakethierarchie (Lesevorgang)
public static final String CLIENT_PROXY = "examplemod.proxy.ClientProxy";
public static final String SERVER_PROXY = "examplemod.proxy.ServerProxy";
//Identifiziert Server, Client und hält Instanz
@SidedProxy(clientSide = CLIENT_PROXY, serverSide = SERVER_PROXY)
public static CommonProxy proxy;
//Ich verstehe die Notwendigkeit nicht
@Mod.Instance
public static ExampleMod instance;
//Wird für die Protokollausgabe verwendet
public static Logger logger;
/***
*Es wird zuerst in der Methode des Mod-Körpers aufgerufen.<br>
*Führen Sie Aktionen aus, die sich auf die nachfolgende Verarbeitung auswirken, z. B. die Initialisierung von Variablen.
*
* @param event
*/
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
logger = event.getModLog();
proxy.preInit(event);
}
/***
*Wird nach Preinit aufgerufen.<br>
*Es ist die Hauptmethode, die als Hauptteil dieses Mods bezeichnet werden kann.<br>
*Wie auch immer, die Hauptsache wird hier behandelt.
*
* @param event
*/
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
proxy.init(event);
}
/***
*Wird nach init aufgerufen. Mit anderen Worten, es wird zuletzt im Mod-Körper aufgerufen.<br>
*Wir werden saubere Dinge tun, wie Ressourcen freigeben und unnötige Daten löschen.
*
* @param event
*/
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
proxy.postInit(event);
}
}
Der Code ist auf Github verfügbar.
Github Github