La classe principale et les proxys
-
Pour ceux qui n’ont pas envie de tout relire, voici la liste des changements entre ce tutoriel pour la 1.6.2 et l’ancien pour la 1.5.2 :
- @Init, @PreInit, @PostInit et tout les autres annotations sont obsolète, il faut maintenant utiliser @EventHandler
- J’ai enlevé les informations sur ce qui est obsolète (modExclusionList et bukkitPlugin)
- J’ai ajouté une information à propos du versionBounds dans @NetworkMod
Bref, pas de grand changement ici, il y a juste les @EventHandler à mettre.
-
Bonjour
D’abord merci pour ces tutos (en français !
)je débute en java et en modding donc ne soyez pas étonné de la simplicité de mes questions :))
Dans la classe pincipale du tuto “ModTutoriel” sous @EventHandler les 3 méthodes suivantes sont utilisées :PreInit() Init() PostInit() ; tu parle de load à un moment : “Dans ma méthode load, j’ai mis proxy.registerRender…” .
Après recherche (Forge) j’ai vu 3 autres méthodes qui apparemment font la même chose , soit dans l’ordre : preInit() load() postInit() , (j’ai testé les 2 ensembles de méthodes dans le même code pas de différence apparemment).Qu’elle est la différence donc entre ces 2 ensembles MAJ d’anciennes méthodes? En gros lesquelles doit ont utiliser ?
-
Le nom de la méthode ne change rien, il faut juste que tu es l’event en argument et le @EventHandler au dessus.
-
J’ai modifier en “Dans ma méthode Init, j’ai mis proxy.registerRender…”, c’est plus compréhensible comme ça. (j’avais reprit de l’ancien tutoriel)
Comme kevin_68 l’a dit, le nom de la méthode ne change absolument rien, c’est l’annotation @EventHandler et l’argument FML(Post/Pre)InitializationEvent qui fait que la méthode va être chargé par FML. Tu peux mettre :
[code_java]@EventHandler
nimporteQuelNomDeMethode(FMLInitializationEvent event)
{}[/code_java]
Ça reviendra au même. -
Merci beaucoup pour cette réponse rapide et précise.
Obnubilé par le " @EventHandler " je n’avais pas capté que c’était nous qui créions ces méthodes; ces annotations " @quelquechose " ne me sont pas encore
vraiment compréhensibles.
Je sais que se sont des tags javadoc ,mais je pensais que cela ne concernait que le domaine des commentaires ,de la documentation du programme.
Apparemment cela va plus loin ; si l’on omet le " @EventHandler " àMarchePu ! Donc cela a une action sur : l’exécution du programme, la compilation du code ?
Je sais que cela relève de la connaissance de la programmation java , mais si vous aviez un début de réponse ou une piste à suivre pour cette utilisation spécifique de la javadoc ,je suis preneur ; les @quelquechose sont très utilisés dans le code minecraft.J’ai vu dans ‘cpw.mods.fml.common.Mod’ cette annotation :
- // Mark this method for receiving an {@link FMLEvent} (in this case, it’s the {@link FMLPreInitializationEvent})
- {@literal @}EventHandler public void preInit(FMLPreInitializationEvent event){}
J’en déduit(par recoupement) que ça crée un lien avec les ’ FMLEvent’ qu’on l’utilise comme ça : @EventHandler
public void preInit(FMLPreInitializationEvent event){}
Mais au niveau java j’aimerai trouver de la doc sur la syntaxe et le mécanisme de ce genre d’annotation; en faite je manque de mot clef pour faire une recherche sur internet . En gros comment s’appelle ce genre de technique en java ?
Ceci juste au cas ou quelqu’un aurait quelques éléments de réponse .
Et encore un grand merci pour les réponses à ma précédente question.
-
Tout ce que je peux te dire c’est qu’un @quelquehose est une annotation (ou @interface) et que l’annotation @EventHandler est elle-même sous deux autres annotations qui sont: @Retention(RetentionPolicy.RUNTIME) et @Target(ElementType.METHOD). Pour comprendre à quoi elles servent regarde ça:
http://adiguba.developpez.com/tutoriels/java/tiger/annotations/ -
Merci kevin_68 pour ta réponse super rapide j’ai de quoi m’occuper un moment

-
Pourquoi dans:
@Mod(modid = “ModTutoriel”, name = “Mod Tutoriel”, version = “1.0.0”, acceptedMinecraftVersions = “[1.6.1,)”)
acceptedMinecraftVersions est inférieur ou égal à 1.6.1 alors que le tuto est en 1.6.2?Sa ne devrait pas être:
@Mod(modid = “ModTutoriel”, name = “Mod Tutoriel”, version = “1.0.0”, acceptedMinecraftVersions = “[1.6.2,)”)ou encore:
@Mod(modid = “ModTutoriel”, name = “Mod Tutoriel”, version = “1.0.0”, acceptedMinecraftVersions = “[1.6.1]”)
vu que dans forge 1.6.2 on a remplacé - @Init, @PreInit, @PostInit par @EventHandler
les vieilles versions de forge (1.6.1 ou 1.5.2…) ne sont donc pas logiquement capable de comprendre un mod fait pour la 1.6.2! -
Le tuto a été rédigé en 1.6.1 la première fois et robin a oublié de changer ça.
-
[1.6.1,) = 1.6.1 et supérieurs pas inférieurs, relis la doc sur “maven version range”
Et oui, je pense que je vais remplacer par 1.6.2, car un mod 1.6.2 n’est pas compatible 1.6.1 si tu utilise la classe ResourceLocation (due à changement de package)
-
Bonjour j’ai un petit problème assez conséquent le problème est que je n’est pas le package cpw.mods.fml.common.Mod pourtant l’installation était un succès.
-
Il te manque juste ce package ou tout les packages en cpw.mods.fml ?
Vérifie aussi que tu as bien les packages en net.minecraftforge -
Il ne me manque que celui la il me semble.
:::
cpw.mods.fml.client
cpw.mods.fml.client.modloader
cpw.mods.fml.client.registry
cpw.mods.fml.common
cpw.mods.fml.common.asm
cpw.mods.fml.common.asm.transformers
cpw.mods.fml.common.asm.transformers.deobf
cpw.mods.fml.common.discovery
cpw.mods.fml.common.discovery.asm
cpw.mods.fml.common.event
cpw.mods.fml.common.functions
cpw.mods.fml.common.launcher
cpw.mods.fml.common.modloader
cpw.mods.fml.common.network
cpw.mods.fml.common.patcher
cpw.mods.fml.common.registry
cpw.mods.fml.common.toposort
cpw.mods.fml.common.versioning
cpw.mods.fml.relauncher
cpw.mods.fml.repackage.com.nothome.delta
cpw.mods.fml.server
ibxm
net.minecraft.block
net.minecraft.block.material
net.minecraft.client
net.minecraft.client.audio
net.minecraft.client.entity
net.minecraft.client.gui
net.minecraft.client.gui.achievement
net.minecraft.client.gui.inventory
net.minecraft.client.gui.mco
net.minecraft.client.main
net.minecraft.client.mco
net.minecraft.client.model
net.minecraft.client.multiplayer
net.minecraft.client.particle
net.minecraft.client.renderer
net.minecraft.client.renderer.culling
net.minecraft.client.renderer.entity
net.minecraft.client.renderer.texture
net.minecraft.client.renderer.tileentity
net.minecraft.client.resources
net.minecraft.client.resources.data
net.minecraft.client.settings
net.minecraft.client.stats
net.minecraft.command
net.minecraft.crash
net.minecraft.creativetab
net.minecraft.dispenser
net.minecraft.enchantment
net.minecraft.entity
net.minecraft.entity.ai
net.minecraft.entity.ai.attributes
net.minecraft.entity.boss
net.minecraft.entity.effect
net.minecraft.entity.item
net.minecraft.entity.monster
net.minecraft.entity.passive
net.minecraft.entity.player
net.minecraft.entity.projectile
net.minecraft.inventory
net.minecraft.item
net.minecraft.item.crafting
net.minecraft.logging
net.minecraft.nbt
net.minecraft.network
net.minecraft.network.packet
net.minecraft.network.rcon
net.minecraft.pathfinding
net.minecraft.potion
net.minecraft.profiler
net.minecraft.scoreboard
net.minecraft.server
net.minecraft.server.dedicated
net.minecraft.server.gui
net.minecraft.server.integrated
net.minecraft.server.management
net.minecraft.src
net.minecraft.stats
net.minecraft.tileentity
net.minecraft.util
net.minecraft.village
net.minecraft.world
net.minecraft.world.biome
net.minecraft.world.chunk
net.minecraft.world.chunk.storage
net.minecraft.world.demo
net.minecraft.world.gen
net.minecraft.world.gen.feature
net.minecraft.world.gen.layer
net.minecraft.world.gen.structure
net.minecraft.world.storage
net.minecraftforge.classloading
net.minecraftforge.client
net.minecraftforge.client.event
net.minecraftforge.client.event.sound
net.minecraftforge.client.model
net.minecraftforge.client.model.obj
net.minecraftforge.client.model.techne
net.minecraftforge.common
net.minecraftforge.common.network
net.minecraftforge.common.network.packet
net.minecraftforge.event
net.minecraftforge.event.brewing
net.minecraftforge.event.entity
net.minecraftforge.event.entity.item
net.minecraftforge.event.entity.living
net.minecraftforge.event.entity.minecart
net.minecraftforge.event.entity.player
net.minecraftforge.event.terraingen
net.minecraftforge.event.world
net.minecraftforge.fluids
net.minecraftforge.liquids
net.minecraftforge.oredict
net.minecraftforge.transformers
paulscode.sound.codecs:::
-
un Spoiler aurai étai bien …

Merci

-
Étrange, supprime le dossier forge/mcp et relance l’installation de forge.
Si le problème persiste, envoie-moi le fichier forge\mcp\logs\mcp.log -
Je t’ai envoyer un mp
-
J’ai exactement le même problème que blackswan
Si le problème a était trouver entre temps merci de m’en faire part ^^ -
Prend la dernière version de forge, et réinstalle ton JDK ainsi que ton JRE
-
A vrai dire c’est exactement ce que je viens de faire, car je commence dans le modding ^^’ (Je vais quand même le faire au cas ou :P)
–—
Je vien de le refaire et toujours pas de cpw.mods.fml.common.Mod
Est-ce que le ‘‘Mod’’ en question serais dans cpw.mods.fml.common MAIS en l’ouvrant ? 
-
Normalement non, envoie un screenshot du project explorer pour être sûr.
(Voir plus bas pour la solution).
