[JAVA] Modèle de mod

Modèle de mod

J'ai pensé que ce serait bien de l'avoir. target version : forge-1.12-14.21.1.2426

supposition Après avoir téléchargé le MDK, la configuration du projet est terminée.

Sous le code source

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;

/***
 *Charge les éléments, les blocs et les outils communs aux clients et aux serveurs.
 * 
 * @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");
    }

    /***
     *Chargez l'élément que vous souhaitez ajouter avec Mod.<br>
     *Bien sûr, vous devez définir vous-même la classe d'objets.
     * 
     * @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;

/***
 *Chargez les ressources côté client.
 * 
 * @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");
    }

    /***
     *Chargez un bloc ou un modèle d'élément (un fichier qui définit ce qu'il faut utiliser pour les textures et l'orientation des textures).<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;

/***
 *Traitement effectué côté serveur.
 * 
 * @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;

/***
 *Dans le corps principal du Mod@En déclarant un mod, il sera reconnu comme le corps principal.<br>
 *La chaîne modid est mcmod.Si ce n'est pas le même que le modid de info, mcmod.Comme les informations ne sont pas lues, il est nécessaire de faire correspondre la valeur de réglage.<br>
 *Enregistrez des blocs et des objets dans Minecraft avec cette classe.<br>
 * 
 * @author myname
 * @version forge-1.12-14.21.1.2426
 */
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod {

    //Utilisé pour l'identification du mod et le nom de domaine de la ressource
    public static final String MODID = "examplemod";
    //Version du mod
    public static final String VERSION = "0.0.1";

    //Hiérarchie des packages proxy (processus de lecture)
    public static final String CLIENT_PROXY = "examplemod.proxy.ClientProxy";
    public static final String SERVER_PROXY = "examplemod.proxy.ServerProxy";

    //Identifie le serveur, le client et détient l'instance
    @SidedProxy(clientSide = CLIENT_PROXY, serverSide = SERVER_PROXY)
    public static CommonProxy proxy;

    //Je ne comprends pas la nécessité
    @Mod.Instance
    public static ExampleMod instance;

    //Utilisé pour la sortie du journal
    public static Logger logger;

    /***
     *Il est appelé en premier dans la méthode du corps du Mod.<br>
     *Faites des choses qui affectent le traitement ultérieur, comme l'initialisation des variables.
     * 
     * @param event
     */
    @Mod.EventHandler
    public void preInit(FMLPreInitializationEvent event) {
        logger = event.getModLog();
        proxy.preInit(event);
    }

    /***
     *Appelé après preinit.<br>
     *C'est la méthode principale qui peut être considérée comme le corps principal de ce mod.<br>
     *Quoi qu'il en soit, l'essentiel est géré ici.
     * 
     * @param event
     */
    @Mod.EventHandler
    public void init(FMLInitializationEvent event) {
        proxy.init(event);
    }

    /***
     *Appelé après init. En d'autres termes, il est appelé dernier dans le corps du Mod.<br>
     *Nous ferons des choses propres telles que la libération de ressources et la suppression des données inutiles.
     * 
     * @param event
     */
    @Mod.EventHandler
    public void postInit(FMLPostInitializationEvent event) {
        proxy.postInit(event);
    }
}

Le code est disponible sur Github.

Github Github

Recommended Posts

Modèle de mod
Modèle [Java] .gitignore
Modèle de modèle de méthode