[JAVA] Mod Vorlage

Mod Vorlage

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

Recommended Posts

Mod Vorlage
[Java] .gitignore-Vorlage
Muster der Vorlagenmethode