MFF

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

    (Help!) Impossible de configurer le mod Morph dans eclipse

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    56 Messages 5 Publieurs 10.8k 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.
    • MugiwaxarM Hors-ligne
      Mugiwaxar
      dernière édition par

      :interrogation:

      :dodgy: ❗

      En fait c’est une excellente idée!

      Y’a -t-il un tutoriel qui explique comment faire ça ?___Mais en fait je joue avec le mod pack FTB Unlimited Evolved
      Qui contiens de base le mod Baubles.

      Donc si je rajoute un slot, sa va crée une incompatibilité avec l’image du GUI

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

        Ah…C’est problématique en effet 😕

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

          J’ai essayé de suivre ce tuto, mais minecraft crash au démarrage  😞

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

            Pour installer l’API, tu dois créer un dossier libs dans ton dossier forge, et déplacer le .jar dedans. Une fois fait, il faut exécuter gradlew eclipse pour qu’eclipse ajoute la lib au classpath du projet.

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

              En fait c’est bon, il crash plus  😉

              J’ai téléchargé le mauvais

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

                Je m’approche du but
                Maintenant il faut que j’autorise l’objet à être équipé

                package baubles.api;
                
                import net.minecraft.entity.EntityLivingBase;
                import net.minecraft.item.ItemStack;
                
                /**
                *
                * This interface should be extended by items that can be worn in bauble slots
                *
                * @author Azanor
                */
                
                public interface IBauble {
                
                /**
                * This method return the type of bauble this is.
                * Type is used to determine the slots it can go into.
                */
                public BaubleType getBaubleType(ItemStack itemstack);
                
                /**
                * This method is called once per tick if the bauble is being worn by a player
                */
                public void onWornTick(ItemStack itemstack, EntityLivingBase player);
                
                /**
                * This method is called when the bauble is equipped by a player
                */
                public void onEquipped(ItemStack itemstack, EntityLivingBase player);
                
                /**
                * This method is called when the bauble is unequipped by a player
                */
                public void onUnequipped(ItemStack itemstack, EntityLivingBase player);
                
                /**
                * can this bauble be placed in a bauble slot
                */
                public boolean canEquip(ItemStack itemstack, EntityLivingBase player);
                
                /**
                * Can this bauble be removed from a bauble slot
                */
                public boolean canUnequip(ItemStack itemstack, EntityLivingBase player);
                }
                
                
                1 réponse Dernière réponse Répondre Citer 0
                • DeletedD Hors-ligne
                  Deleted
                  dernière édition par

                  Tu vois comment faire avec les commentaires ou tu as quelque questions ?

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

                    Ba en fait je comprends pas trop

                    La fonction *getBaubles() *me renvoie une interface “IInventory”
                    Je sais pas quoi faire avec ça

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

                      package baubles.api;
                      
                      import java.lang.reflect.Method;
                      
                      import net.minecraft.entity.player.EntityPlayer;
                      import net.minecraft.inventory.IInventory;
                      import cpw.mods.fml.common.FMLLog;
                      
                      /**
                      * @author Azanor
                      */
                      public class BaublesApi
                      {
                      static Method getBaubles;
                      
                      /**
                      * Retrieves the baubles inventory for the supplied player
                      */
                      public static IInventory getBaubles(EntityPlayer player)
                      {
                      IInventory ot = null;
                      
                         try
                         {
                             if(getBaubles == null)
                             {
                                 Class fake = Class.forName("baubles.common.lib.PlayerHandler");
                                 getBaubles = fake.getMethod("getPlayerBaubles", EntityPlayer.class);
                             }
                      
                             ot = (IInventory) getBaubles.invoke(null, player);
                         }
                         catch(Exception ex)
                         {
                          FMLLog.warning("[Baubles API] Could not invoke baubles.common.lib.PlayerHandler method getPlayerBaubles");
                         }
                      
                      return ot;
                      }
                      
                      }
                      
                      

                      Ça me dépasse largement

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

                        Ce que tu veux faire, c’est rajouter un nouvel item amulette plaçable dans le slot correspondant du mod Baubles, c’est ça ?
                        Attention, au passage aux doubles/triples posts…

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

                          Oui, c’est bien ça

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

                            Eh bien si on look les commentaires de la classe IBauble, on peut lire la phrase suivante :
                            “This interface should be extended by items that can be worn in bauble slots”

                            A partir de là, tu sais comment faire 😉

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

                              Çà c’est deja fait

                              Mais maintenant je voudrais tester dans une fonction si le joueur porte cette amulette

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

                                Bah si c’est déjà fait, tu te give ton item, tu regardes si il va bien dans tel slot et pas dans un autre, si c’est le cas, alors t’as réussi !
                                Oups mal lu
                                On voit ça demain ? Je lookerai d’un peu plus près le code du Baubles mod 😉

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

                                  Oui, ça marche parfaitement
                                  C’est réussit 😄

                                  Mais moi je suis déjà plus loin, j’aimerais tester si le joueur à cette item présent dans ce slot

                                  Et c’est là que je bloque

                                  Je sais pas quoi faire avec cette interface Iinventory

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

                                    @‘Mugiwaxar’:

                                    Oui, ça marche parfaitement
                                    C’est réussit 😄

                                    Mais moi je suis déjà plus loin, j’aimerais tester si le joueur à cette item présent dans ce slot

                                    Et c’est là que je bloque

                                    Je sais pas quoi faire avec cette interface Iinventory

                                    Si c’est pour effectuer une action à chaque tick, tu peut utiliser la méthode “onWornTick” de l’interface “IBauble”.
                                    Mais si tu veux exécuter quelque chose à partir d’un event :
                                    l’interface Iinventary te donne accès aux item équipés par le joueur : tu as la méthode getInventorySize qui te donne la taille de l’inventaire (le nombre de slot, dans ton cas je pence que ça ne conte que les 4 slots de bauble) et la méthode getInventorySlotContent(index) qui te donne l’item qu’il y as dans le slot (donc tu peut utiliser un “for” ou directement mettre l’index qui correspond au slot de l’amulette)

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

                                      Ouaip!
                                      C’est ce que j’ai vue aussi, j’ai réussit à faire un petit truc de coup
                                      (C’est très brouillon mais ça marche)

                                             Minecraft mc = Minecraft.getMinecraft();
                                      
                                             EntityPlayer player = (EntityPlayer) Minecraft.getMinecraft().thePlayer;
                                      
                                          if(player != null)
                                          {
                                          if(BaublesApi.getBaubles(player).getStackInSlot(0) != null)
                                          {
                                          String name = BaublesApi.getBaubles(player).getStackInSlot(0).getItem().getUnlocalizedName();
                                          if(!name.equals("item.magicleaf"))
                                          {
                                          System.out.println("Bad");
                                          return;
                                          }
                                          }
                                          else
                                          return;
                                      

                                      C’est déjà une petite victoire  :inlove:

                                      Je vais m’arrêter à là pour ce soir

                                      Merci beaucoup pour votre aide à tous ! 😉

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

                                        J’en profite au passage pour indiquer que le mod morph possède bien une API permettant de métamorphoser un joueur A en une entity B. Du coup c’est une bonne nouvelle pour la suite de ton code 😃

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

                                          @‘Mugiwaxar’:

                                          Ouaip!
                                          C’est ce que j’ai vue aussi, j’ai réussit à faire un petit truc de coup
                                          (C’est très brouillon mais ça marche)

                                                 Minecraft mc = Minecraft.getMinecraft();
                                                 
                                             
                                                 EntityPlayer player = (EntityPlayer) Minecraft.getMinecraft().thePlayer;
                                             
                                              if(player != null)
                                              {
                                              if(BaublesApi.getBaubles(player).getStackInSlot(0) != null)
                                              {
                                              String name = BaublesApi.getBaubles(player).getStackInSlot(0).getItem().getUnlocalizedName();
                                              if(!name.equals("item.magicleaf"))
                                              {
                                              System.out.println("Bad");
                                              return;
                                              }
                                              }
                                              else
                                              return;
                                          

                                          C’est déjà une petite victoire  :inlove:

                                          Je vais m’arrêter à là pour ce soir

                                          Merci beaucoup pour votre aide à tous ! 😉

                                          Si ça fonctionne c’est déja pas mal mais dit nous où tu as mis ce code car on ne peut utiliser “Minecraft.getMinecraft()” que coté client. En générale, il y as déjà le joueur dans les arguments de la méthode (si tu utilise une méthode) ou parmi les variable de l’event (si tu utilise un event).
                                          Ensuite on utilise plutôt :

                                          
                                          if(BaublesApi.getBaubles(player).getStackInSlot(0).getItem() == tonItem)
                                          

                                          plutôt que de passer par “getUnlocalizedName”

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

                                          MINECRAFT FORGE FRANCE © 2024

                                          Powered by NodeBB