MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Tutorial un peu plus détailler

    Planifier Épinglé Verrouillé Déplacé Suggestions pour le forum
    14 Messages 8 Publieurs 4.3k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • BlackDrag00nB Hors-ligne
      BlackDrag00n
      dernière édition par robin4002

      Bonjour a tous,

      Je me permet de donnée une suggestion, car étant débutant dans le modding minecraft et suivant divers tuto dont quasiment tous ceux du forum. J’ai remarqué que j’avais des difficulté à suivre à la lettre les tutos et que je pose beaucoup de question à la communauté pour pas grand chose.

      Ce qui serais bien c’est que dans les tutos, on nous précise qu’elle classe est modifier au fur et a mesure du tuto, voici un exemple concret :


      Une parti d’un tuto aujourd’hui

      Classe du packet :

      Le packet est ce qui va permettre au c
      lient et au serveur de se transmettre les données. Cette classe est propre à ma manière d’utiliser les packets. Il est possible que vous n’ayez pas à faire la même chose. Dans ce cas, inspirez-vous de ce que je fais.

      Note : Si vous souhaitez faire comme moi, vous devez avoir FFMT-Lib

      public class PacketMoney extends AbstractPacket{
      
      private int maxMoney, Money;
      
      public PacketMoney(){
      
      }
      
      public PacketMoney(int maxMoney, int money){
      this.maxMoney = maxMoney;
      this.money = money;
      }
      
      @Override
      public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) {
      buffer.writeInt(maxMoney);
      buffer.writeInt(money);
      
      }
      
      @Override
      public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) {
      this.maxMoney = buffer.readInt();
      this.money = buffer.readInt();
      }
      
      @Override
      public void handleClientSide(EntityPlayer player) {
      ExtendedEntityPropTuto props = ExtendedEntityPropTuto
      .get(player);
      props.maxMoney = this.maxMoney;
      props.money = this.money;
      }
      
      @Override
      public void handleServerSide(EntityPlayer player) {
      ExtendedEntityPropTuto props = ExtendedEntityPropTuto
      .get(player);
      props.maxMoney = this.maxMoney;
      props.money = this.money;
      }
      
      }
      

      #Ce qui pourrait être sympa c’est de rajouter dans qu’elle package est la classe ainsi que son nom :(Ce qui pourrait être sympa c’est de rajouter dans qu’elle package est la classe ainsi que son nom 🙂

      Classe du packet :

      Package : fr.minecraftforgefrance.tutoriel.packets
      Classe : PacketMoney.java

      Le packet est ce qui va permettre au client et au serveur de se transmettre les données. Cette classe est propre à ma manière d’utiliser les packets. Il est possible que vous n’ayez pas à faire la même chose. Dans ce cas, inspirez-vous de ce que je fais.
      :::

      Note : Si vous souhaitez faire comme moi, vous devez avoir FFMT-Lib

      public class PacketMoney extends AbstractPacket{
      
      private int maxMoney, Money;
      
      public PacketMoney(){
      
      }
      
      public PacketMoney(int maxMoney, int money){
      this.maxMoney = maxMoney;
      this.money = money;
      }
      
      @Override
      public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) {
      buffer.writeInt(maxMoney);
      buffer.writeInt(money);
      
      }
      
      @Override
      public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) {
      this.maxMoney = buffer.readInt();
      this.money = buffer.readInt();
      }
      
      @Override
      public void handleClientSide(EntityPlayer player) {
      ExtendedEntityPropTuto props = ExtendedEntityPropTuto
      .get(player);
      props.maxMoney = this.maxMoney;
      props.money = this.money;
      }
      
      @Override
      public void handleServerSide(EntityPlayer player) {
      ExtendedEntityPropTuto props = ExtendedEntityPropTuto
      .get(player);
      props.maxMoney = this.maxMoney;
      props.money = this.money;
      }
      
      }
      

      :::


      Ainsi qu’un GitHub serait un plus non négligable.

      Voila c’est mon avis car actuellement je suis bloquer dans mon apprentissage, car je ne sais pas ou je doit insérer une série de code.

      1 réponse Dernière réponse Répondre Citer 0
      • DiangleD Hors-ligne
        Diangle
        dernière édition par

        non, cela ne changera rien en le code, à la limite expliquer le code oui (se qui normalement doit être fait), je te conseille en revanche d’apprendre le java, tu as des sites utiles pour sa, sinon il faut que tu commence tous les tuto les plus basique et que tu enchaîne après sur les plus complexe.
        vas ici si tu veux apprendre le java:
        fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-java

        tu peux ausi suivre les TP de Blackout ^^.

        1 réponse Dernière réponse Répondre Citer 0
        • BlackDrag00nB Hors-ligne
          BlackDrag00n
          dernière édition par

          je ne suis pas d’accord avec toi si tu met des méthode dans une autre classe que la classe main sa ne fonctionnera pas, vrai ou pas ?

          1 réponse Dernière réponse Répondre Citer 0
          • utyboU Hors-ligne
            utybo
            dernière édition par

            Pas vrai. Tout dépend des circonstances
            Et si tu veut voir où va quoi, il y a le GitHub qui a été rajouté pour ça! (Il est déjà dispo sur 90% des tutos validés si non il va bientôt être rajouté)

            Moddeur à la retraite et développeur de trucs en Java.

            J'aide les gens comme je peux, alors si mon message v…

            1 réponse Dernière réponse Répondre Citer 0
            • BlackDrag00nB Hors-ligne
              BlackDrag00n
              dernière édition par robin4002

              Donc vrai … car tous dépend des circonstances …

              Je dit cela car j’ai du mal a suivre certain tuto, étant au niveau débutant … et pourtant je programme en PHP, C, C++, C#.
              Certes, je ne me considéré pas comme un pro de ces langages mais j’ai atteins un certain niveau de logique…

              exemple: en quelques heures j’ai compris le fonctionnement d’affichage HUD > [1.7.x] [Résolu] Afficher du texte ou image sur le HUD d’un joueur <

              Et malgré cela j’ai pas pu suivre les tutos qui nous sont quand même un peu destiné a nous débutant en modding java minecraft, chose que je ne trouve pas normal pour des tutos, après j’apporte une suggestion car moi sa a été mon problème sur les tutos, désoler si certaines personnes prennent mal ce que je dit c’est pas mon but, mon but est apporter des améliorations pour rendre les tutos plus agréable au débutant…

              Par exemple la je suis bloquer ici avec des Event Handler > [1.7.x] Crée de nouvelle valeurs (données) joueurs sauvegarder (exemple : mana) < en suivant le tuto > [1.7.2] Extended Entity Properties <, il n’y a pas de GitHub dans ce tuto et c’est justement mal indiquer sur ou insérer les méthodes.

              D’après ce tuto > [1.7.x] Utiliser les évenements < on peut les mettre dans la classe “ExtendedEntityPropTuto” mais dans ces cas la il manque ceci dans le tuto “[1.7.2] Extended Entity Properties” :

              FMLCommonHandler.instance().bus().register(new ExtendedEntityPropTuto());
              

              Après je me trompe peut etre dans ces cas la je vous invite a me corrigé sur mon problème dans support plutôt que ici car ce n’est pas le sujet et que je peux me tromper je suis la pour apprendre et comprendre avant tous !


              ps : Je voulais juste d’ailleurs remercier “robin4002” pour son aide apporter et de toutes ces explications

              1 réponse Dernière réponse Répondre Citer 0
              • GuguG Hors-ligne
                Gugu
                dernière édition par

                Je pense que ce n’est pas nécessairement utile.

                Déjà, pour le nom de la classe, il se voit dans le code :

                
                public class PacketMoney
                
                

                Ensuite, les packages, c’est simplement comme on le préfère.
                Certaines personnes utilisent un seul package “Network” et mettent tout ce qui concerne le réseau dedans, d’autres font des packages “packets” et s’organisent autrement etc…

                "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                ― Jordan B. Peterson

                1 réponse Dernière réponse Répondre Citer 0
                • BlackDrag00nB Hors-ligne
                  BlackDrag00n
                  dernière édition par

                  Oui, mais dans mon exemple les Event Handlers si je l’est rajout dans la classe “ExtendedEntityPropTuto”, minecraft et mon mod va les initialiser ? il n’y a pas besoin de l’indiquer dans l’une des méthodes suivante dans mon “Main” ?

                  @EventHandler
                  public void preInit(FMLPreInitializationEvent event)
                  {
                  
                  }
                  
                  @EventHandler
                  public void init(FMLInitializationEvent event)
                  {
                  
                  }
                  
                  @EventHandler
                  public void postInit(FMLPostInitializationEvent event)
                  {
                  
                  }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • GuguG Hors-ligne
                    Gugu
                    dernière édition par robin4002

                    Non, il faut les mettre dans un event handler …

                    Je te rappelle qu’il faut suivre les pré-requis

                    https://www.minecraftforgefrance.fr/topic/636/utiliser-les-événements

                    "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                    ― Jordan B. Peterson

                    1 réponse Dernière réponse Répondre Citer 0
                    • BlackDrag00nB Hors-ligne
                      BlackDrag00n
                      dernière édition par

                      Oui mais pour “savoir manipuler les packets et les events” la théorie c’est bien beau, mais je pense qu’il faut quand même pratiquer pour savoir le faire.

                      Étape a laquelle j’en suis… et dans le tuto il n’y a pas d’explication sur le fait de crée la classe EventHandler puis l’appeler dans le Main dans l’INIT.

                      Mais avec toutes ces discussion je pense me dirigé sur la bonne voie et comprendre le fonctionne grâce aux tuto, vos explication et la pratique.

                      1 réponse Dernière réponse Répondre Citer 0
                      • Superloup10S Hors-ligne
                        Superloup10 Modérateurs
                        dernière édition par

                        Les “@EventHandler” se mettent dans 90% du temps au-dessus des méthodes ayant en paramètre “FMLPreInitialisationEvent”, “FMLInitialisationEvent”, “FMLPostInitialisationEvent”. Pour les Events, c’est toujours “@SubscribeEvent” au-dessus.

                        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R Hors-ligne
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                          dernière édition par

                          100 %*
                          @EventHandler c’est que pour les étapes d’initialisations des mods, rien d’autre.

                          Personnellement je ne vois pas en quoi indiquer le nom de la classe et le package va aider, car tu peux n’importe quel non à la classe et n’importe quel nom de package selon tes envies / ta façon de t’organiser.

                          Ce qu’il manque surtout pour suivre le tutoriel de gugu, c’est un tutoriel sur les paquets, je vais voir pour faire ça car les paquets sont vraiment quelque chose d’important.

                          1 réponse Dernière réponse Répondre Citer 0
                          • BlackDrag00nB Hors-ligne
                            BlackDrag00n
                            dernière édition par

                            En faite étant donnée que nous on n’a pas les sources GitHub ou autre pour suivre le tuto, on n’a que les choses qui y sont inscrit.

                            Avec le nom des packages et classe qu’il a utiliser on pourrait suivre plus facilement les fichiers qu’il indique et modifie au fur et a mesure des avancement du tuto.

                            Pour d’autre tuto il y avait Github donc je m’en suis servit pour suivre l’avancement des fichiers qu’y est demander dans les tutos.

                            Après je sais bien qu’on peut donner les noms de classe ou méthode différent selon ce qu’on veut nous, mais pour un exemple dans le tuto de suivre les fichiers qui ont servit au tuto aide.

                            Par exemple pour mon probleme d’Event Handler depuis qu’on ma founit un GitHub qui a servit au tuto bah je m’en sert pour retrouver mes petis par rapport au tuto donc je m’adapte ce qui est pas évident pour un débutant (merci pour mes années de prog en C et PHP sa m’aide beaucoups :p)

                            1 réponse Dernière réponse Répondre Citer 0
                            • RedRelayR Hors-ligne
                              RedRelay Moddeurs confirmés
                              dernière édition par

                              La c’est des lacunes en Java qui te posent problème et pas des problèmes lié a la clareté des tutoriaux.
                              Quand tu créés une classe, tu peux la mettre dans n’importe quel package, ça ne change rien.
                              De plus les mods avec forge ne modifie aucun objet.

                              –------------------------------------------------------------------------------------
                              Si tu trouves mon intervention pertinente, n'hésite pas a m…

                              1 réponse Dernière réponse Répondre Citer 0
                              • F Hors-ligne
                                FireDreft
                                dernière édition par

                                La partie “Suggestions” est là pour ça, que les utilisateurs et coddeurs puissent donner leur avis pour nous permettre d’améliorer le forum 😉
                                Donc, même si ton idée n’est pas forcément utile et ne sera peut-être pas mise en place, personne ne te critiquera pour le dire, bien au contraire !

                                C’est grâce à vous que le forum se développe, et grâce au courage des Admins et personnes qui rédigent les tutoriels que nous proposerons toujours du contenu interessant 😄

                                1 réponse Dernière réponse Répondre Citer 1
                                • 1 / 1
                                • Premier message
                                  Dernier message
                                Design by Woryk
                                ContactMentions Légales

                                MINECRAFT FORGE FRANCE © 2024

                                Powered by NodeBB