Créer la base de votre mod
-
Mais hier je lancais mon mod sans problème pourtant :huh:
EDIT : Ah non en faite résolu ^^ Merci quand même de l’aide -
L’un des plus gros avantage de forge, c’est qu’il permet de faire des mods universels, il n’y a donc qu’une seule version de votre mod pour le client et le serveur. Les proxy vont être très utilisé pour ça, car en fonction du side (client ou serveur) les fonctions seront soit appelé dans le client proxy, soit dans le common proxy.
Créez deux nouvelles classes, ClientProxy et CommonProxy. Mettez ces deux classes soit dans un nouveau package dédié aux proxy (fr.minecraftforgefrance.tutoriel.proxy dans mon cas), soit CommonProxy dans le package common et ClientProxy dans le package client. Le client proxy doit hériter du CommonProxy (public class ClientProxy extends CommonProxy).
Ajoutez une méthode nommé registerRender du type void dans les deux proxy, avec l’annotation @Override dans le ClientProxy.Je ne suis pas d’accord avec ce qu’il y a en rouge :
Je trouve que ça porte a confusion, on devrait plutot dire “une seule version pour le client et le serveur dédié”.
Car comme je l’explique dans mon tuto sur le network, le client c’est aussi le serveur.
Donc en réalité cette fusion nous permet de créé des mods qui marcheront a la fois sur le client-seveur.exe et le serveur.exe qui est le serveur dédié.Vous allez me dire que je suis titilleux et vous avez raison, mais c’est un point sensible les proxies et beaucoup bloque la dessus. Donc pour éviter les confusions mieux vaut être le plus clair possible et éviter tout malentendu.
D’ailleur … cette phrase est-elle vrai ? Pas a mon sens.
Est ce un énorme avantage de pouvoir developper des mods pour les serveur dédies uniquement ?
Comme je l’ai dit dans mon tutoriel, je raye de la liste la notion de Side.Server car je n’en voit pas l’interet.
Est ce que forge perdrait de son interet si on ne pouvait developper que des mods qui marche en solo, en multi-local et en multi-distant (Donc en gros qui fonctionne partout) mais qui ne fonctionne pas exlusivement en serveur dédié ? Non.
Vous voyez ou je veux en venir ? Il y a un contre sens dans le tutoriel.Je pense que la notion de proxy demande a elle seule un tutoriel.
J’explique en détails le fonctionnement d’un proxy dans mon tutoriel sur le network, mais je ne donne aucun exemple pour montrer comment le mettre en place. Contrairement a ce tutoriel qui n’explique presque pas comment ça fonctionne mais qui donne des exemples. Bien que, les exemples ne sont pas assez riche selon moi.Je vais faire un tutoriel a part sur les proxies donc
Mais avant ça, j’ai une façon particulière de les gérer donc je vous en ferais par dans “Discussions Générales” avant de me lancer dans la rédaction du tutoriel -
Dans cette phrase le serveur dédié est sous entendu. Puisque côté archive final de mod, on ne différencie que le serveur dédié et le client (avec serveur intégré).
Après c’est vrai que ça peut porter à confusion.Le fait d’avoir une seule archive pour les deux restes un gros avantage, à l’époque ou les deux n’était pas regroupé, développer un mod serveur était beaucoup plus compliqué. L’universalité à énormément simplifié les choses, donc pour moi ça reste un gros avantage, parmi les autres avantages de forge. Mais c’est vrai que c’est pas juste cette avantage qui fait tout l’intérêt de Forge.
Pour les proxies, franchement je ne vois pas ce qu’il y de compliqué.
Il y a une deux classes, si le mods est lancé en client, le proxy prend la valeur client proxy, et sinon si c’est lancé en serveur le proxy prend la valeur commonProxy.
En fait ce que je trouve mal fait, c’est le nom de common proxy qui devrait plutôt être nommé serverproxy, car en réalité il n’est que exécuté par le serveur, sauf si on fait un super.maMéthode() dans le client proxy.Mais à l’époque où j’ai appris à créer un mod forge, ceci n’était pas expliqué et du-coup le client proxy / common proxy est resté (et puis c’est aussi le nom indiqué dans la ligne du @SidedProxy, ce qui est aussi mal fait …).
ÉDIT : d’ailleurs je viens de me rendre compte que ton explication est fausse dans ton tutoriel sur le network, common proxy n’est pas exécuté par le serveur intégré. Le serveur intégré est considéré comme le client, donc il passe aussi sur le client proxy.
-
J’ai du faire une erreur en voulant dire “dédié”, je ne trouve pas ou est ce que j’ai écris ça, mais c’est fort probable que j’ai fait la faute.
Comme tu le dis, c’était surtout le bordel avant, lorsque Minecraft n’était pas une application client/serveur.
La oui, il fallait une archive cliente et une autre serveur.Mais aujourd’hui ce n’est plus le cas et ce n’est pas les packages universels qui font que Minecraft est passé sous une archi cliente/serveur mais bien ce changement d’archi qui a rendu les packets universels possible.
Pour le nom des classes, tu as raison.
c’est plutot le ClientProxy qui devrait s’appeler CommonProxy, parcequ’il possède les fonctions cliente et les fonctions serveur par héritage et que donc ce qu’on appel CommonProxy devrait s’appeler ServerProxy.Bordel, en écrivant ça je viens de repenser tout mon modèle de conception xD
Je continue de penser qu’il faut expliquer plus en détail ce que sont les proxy et faire un tutoriel a part dessus. -
Oui, c’est la 1.3.2 qui a permit ça, si Mojang n’avait pas mit en place le lan de la façon dont c’est en place actuellement, ça n’aurai pas été possible.
Pour les noms, en effet c’est même mieux comme ça.
Je vais voir pour faire un tutoriel, sauf si tu le fais toi.
-
-
Il n’arrive pas à s’authentifié, tu es sur que tu as mis tes bons identifiants dans le ce tutoriel : http://www.minecraftforgefrance.fr/showthread.php?tid=566#bonus
-
nn jai pas fait merci
@‘MrCupCakeMonster’:
Il n’arrive pas à s’authentifié, tu es sur que tu as mis tes bons identifiants dans le ce tutoriel : http://www.minecraftforgefrance.fr/showthread.php?tid=566#bonus
Non sa marche pas voila se que j’ai ecrit: –version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --username sm********@gmail.com --*********** --username=MisterFire34
-
%(#FF0000)[EDIT : J’ai résolu mon problème et voici comment j’ai fait :
j’ai configuré Le build path du dossier start ainsi :
1- je l’ai retiré de la liste des librairies
2-J’ai fait Add class folder
3-J’ai indiqué dans quel dossier ce trouvait le dossier \start (sur mon ordi c’est c:\Users\Demolir.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.0.1180\ et le dossier est la)
4- j’ai validé et tout était réparé
J’éspere avoir aidé ceux qui auront ce souci plus tard bonne journée
]%(#000000)[
Bonjour
J’ai eu un problème en suivant le tutoriel vidéo
J’ai tapé exactement ce que le tutoriel indique mais quand je lance minecraft le mod n’est pas reconnupackage com.phoenixarena.phoenix.common; import cpw.mods.fml.common.Mod; @Mod(modid = "phoenixmod", name = "Phoenix Mod", version = "0.1.0") public class Phoenix { }
J’ai aussi un problème éclipse comme je le montre sur ce screen :
Merci d’avance ]
-
@‘MisterFire34’:
nn jai pas fait merci
@‘MrCupCakeMonster’:
Il n’arrive pas à s’authentifié, tu es sur que tu as mis tes bons identifiants dans le ce tutoriel : http://www.minecraftforgefrance.fr/showthread.php?tid=566#bonus
Non sa marche pas voila se que j’ai ecrit: –version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --username sm********@gmail.com --*********** --username=MisterFire34
Mais non, tu vas donc sur eclipse dans le petit menu déroulant de “run”, puis “Run Configuration”, dans “Java Application” tu choisis “Client”, puis dedans “Arguments” et tu marques dans Program Arguments :
–username TonPseudo
Ou pour être carrément authentifié sur le jeu :
--username TonPseudo --password TonMotDePasse
-
@‘Demolir’:
%(#FF0000)[EDIT : J’ai résolu mon problème et voici comment j’ai fait :
j’ai configuré Le build path du dossier start ainsi :
1- je l’ai retiré de la liste des librairies
2-J’ai fait Add class folder
3-J’ai indiqué dans quel dossier ce trouvait le dossier \start (sur mon ordi c’est c:\Users\Demolir.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.0.1180\ et le dossier est la)
4- j’ai validé et tout était réparé
J’éspere avoir aidé ceux qui auront ce souci plus tard bonne journée
]%(#000000)[
Bonjour
J’ai eu un problème en suivant le tutoriel vidéo
J’ai tapé exactement ce que le tutoriel indique mais quand je lance minecraft le mod n’est pas reconnupackage com.phoenixarena.phoenix.common; import cpw.mods.fml.common.Mod; @Mod(modid = "phoenixmod", name = "Phoenix Mod", version = "0.1.0") public class Phoenix { }
J’ai aussi un problème éclipse comme je le montre sur ce screen :
Merci d’avance ]
Fini au moins ta classe main la elle est vide
-
@‘isador34’:
@‘Demolir’:
%(#FF0000)[EDIT : J’ai résolu mon problème et voici comment j’ai fait :
j’ai configuré Le build path du dossier start ainsi :
1- je l’ai retiré de la liste des librairies
2-J’ai fait Add class folder
3-J’ai indiqué dans quel dossier ce trouvait le dossier \start (sur mon ordi c’est c:\Users\Demolir.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.0.1180\ et le dossier est la)
4- j’ai validé et tout était réparé
J’éspere avoir aidé ceux qui auront ce souci plus tard bonne journée
]%(#000000)[
Bonjour
J’ai eu un problème en suivant le tutoriel vidéo
J’ai tapé exactement ce que le tutoriel indique mais quand je lance minecraft le mod n’est pas reconnupackage com.phoenixarena.phoenix.common; import cpw.mods.fml.common.Mod; @Mod(modid = "phoenixmod", name = "Phoenix Mod", version = "0.1.0") public class Phoenix { }
J’ai aussi un problème éclipse comme je le montre sur ce screen :
Merci d’avance ]
Fini au moins ta classe main la elle est vide
N’importe quoi c’est pas ça qui pose problème ^^
Justement si elle n’a rien elle ne peut pas poser problème -
j’avais mal lu…. doit y avoir un bug avec le setup de gradle, essaie de le refaire
-
@‘MrCupCakeMonster’:
@‘MisterFire34’:
nn jai pas fait merci
@‘MrCupCakeMonster’:
Il n’arrive pas à s’authentifié, tu es sur que tu as mis tes bons identifiants dans le ce tutoriel : http://www.minecraftforgefrance.fr/showthread.php?tid=566#bonus
Non sa marche pas voila se que j’ai ecrit: –version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --username sm********@gmail.com --*********** --username=MisterFire34
Mais non, tu vas donc sur eclipse dans le petit menu déroulant de “run”, puis “Run Configuration”, dans “Java Application” tu choisis “Client”, puis dedans “Arguments” et tu marques dans Program Arguments :
–username TonPseudo
Ou pour être carrément authentifié sur le jeu :
--username TonPseudo --password TonMotDePasse
sa ne marche toujours pas
mais le contenue de la console est différent:[14:27:35] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraft.launchwrapper.VanillaTweaker [14:27:35] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraft.launchwrapper.VanillaTweaker [14:27:35] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraft.launchwrapper.VanillaTweaker [14:27:35] [main/ERROR] [LaunchWrapper]: Unable to launch java.lang.NoSuchMethodException: net.minecraft.client.Minecraft.main([Ljava.lang.String;) at java.lang.Class.getMethod(Unknown Source) ~[?:1.8.0_11] at net.minecraft.launchwrapper.Launch.launch(Launch.java:131) [launchwrapper-1.9.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
j’ai marqué sa dans run configuration / client / argument:
–username MisterFire34 --password **********
-
java.lang.NoSuchMethodException: net.minecraft.client.Minecraft.main([Ljava.lang.StringWink
ça veut dire qu’il manque minecraft, pas normal, refait un setup. -
j’ai refait gradlew setupDecompWorkspace mais sa marche toujours pas
-
Il faut aussi faire gradlew eclipse après.
-
ha ok je le fait
Non sa ne fonctionne pas.
Le problème persiste
-
@‘MisterFire34’:
ha ok je le fait
Non sa ne fonctionne pas.
Le problème persiste
Je te conseille de carrément tous recommencé en suivant les tutos, car NoSuchMethod provient du faîte qu’il ne trouve pas minecraft, et donc qu’il est mal installer
-
ok je le fait demain