Comment rendre un Launcher obligatoire ?
-
Non, c’est toi qui n’a pas comprit ce que je t’expliques.
Dans ton mod, dans la fonction preInit, mets ça :
if(event.getSide().isClient()) { System.out.println("–------ dossier du jeu ----------") System.out.println(Minecraft.getMinecraft().mcDataDir.getAbsolutePath()) }Ensuite compile ton mod, mets-le sur ton launcher, lances le jeu, et regardes les logs. Tu vas comprendre.
-
ça m’affiches : –------ dossier du jeu ----------
C:\Users\xxxx\Desktop\1.7.2 Forge\eclipse.Même il a juste à reprendre les mods dans le .minecraft/mods , et voilà il pourra jouer sur le launcher…
-
Une fois compilé et sur ton launcher. Pas sur eclipse.
@‘FR_Style13’:
Même il a juste à reprendre les mods dans le .minecraft/mods , et voilà il pourra jouer sur le launcher…
Justement non, puisqu’on va faire crasher le jeu si il n’y a pas le nom de ton launcher dans le chemin du jeu.
-
Ah …Mais je pourrai mêttre comment le code ?
Genre quand il crash si ce n’ai pas le nom du launcher -
bha
une condition qui verifie le string du launcher, et au passage base du java -
Oui je suis un débutant… avant j’avais juste à modifier les class du Minecraft… mais bon maintenant c’est un peu plus compliqué car on ne peut plus …
Mais bon pour l’instant j’ai déjà bien avancer sur mon projet
Bref, revenons sur la transformation de la class, On ne pourrai pas tout simplement modifier le numéro ?Je sais je suis nul mais bon ^^ sans aide on ne peut pas avancer

Merci de votre aide,
-
Comment ça modifier le numéro?
-
Bon, dans la fonction preinit de ton mod, ajoutes ça :
if(event.getSide().isClient()) { if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("nom_de_ton_launcher") && !Minecraft.getMinecraft().mcDataDir.equals(new File("."))) { Throwables.propagate(new Exception("Launcher non autorisé")); } }Ensuite compiles ton mod en tapant gradlew build dans la console, mets le mod dans ton launcher et regardes. Mais le mod dans un autre launcher et regardes également.
-
Rien qui change
Même dans les logs il y a aucune chose -
Avec ce que je t’ai donné le jeu devrait crasher si tu le lance sur un autre launcher que le tiens.
-
Regarde le code :
–-------------------------------------------------
package fr.style13; import java.io.File; import com.google.common.base.Throwables; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.client.gui.GuiScreen; import net.minecraft.init.Blocks; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @Mod(modid = BaseMod.MODID, version = BaseMod.VERSION) public class BaseMod { public static final String MODID = "examplemod"; public static final String VERSION = "1.0"; @SubscribeEvent @EventHandler public void init(FMLInitializationEvent event) { // some example code System.out.println("DIRT BLOCK >> " + Blocks.dirt.getUnlocalizedName()); } @SideOnly(Side.CLIENT) public void preInit(FMLInitializationEvent event) { if(event.getSide().isClient()) { if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("originalcraft") && !Minecraft.getMinecraft().mcDataDir.equals(new File("."))) { Throwables.propagate(new Exception("Launcher non autorisé")); } } } }
Quand je le recompile avec gradlew je le met dans mon .minecraft/mods et aucun succès normalement il dois crash…

-
@SideOnly(Side.CLIENT) public void preInit(FMLInitializationEvent event)-> c’est complètement faux.
ça devrait être comme ça :@EventHandler public void preInit(FMLPreInitializationEvent event) -
Tu es un dieu mec !! :rolleyes:
ça me fait bien une erreur :
java.lang.RuntimeException: java.lang.Exception: Launcher non autoris�
Merci beaucoup
