• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Codage d'un item dés

    1.7.x
    1.7.10
    4
    15
    1673
    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.
    • Joelchasseu
      Joelchasseu dernière édition par

      Bonjour,
      J’ai commencé a coder mon mod il y a une semaine, c’est mon premier alors je comprend ce que je fais mais dès que je m’aventure en terre inconnue c’est toujours un peu fastidieux, je dois dire … ^^

      Dans l’idée je voulais faire un item Dés qui lancerait une commande issue d’un plugin de mon serveur (/dndroll 2d6)

      Voici la classe Dés que j’ai crée :

      package init;
      
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.ChatComponentText;
      import net.minecraft.util.IChatComponent;
      import net.minecraft.world.World;
      
      public class Des extends Item
      {
      
      public static ItemStack itemdes;
      
         public ItemStack useItemRightClick(World world, EntityPlayer player)
         {
          IChatComponent jet = new ChatComponentText("/dndroll 2d6");
          player.addChatComponentMessage(jet);
      
          return player;
         }
      }
      
      

      Je n’ai aucune erreur mais quand je fait clic droit avec mon item il ne se passe rien.
      J’ai également lié la classe Dés dans ma classe principale :

      itemdes = new Des().setUnlocalizedName("des").setCreativeTab(Heimnor.HeimnorCreativeTabs).setTextureName(Heimnor.MODID + ":des");
      

      Si vous voyez l’erreur et si vous savez la corriger je suis a l’écoute !

      Merci d’avance.

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

        Salut,
        Toutes les demandes d’aide concernant la programmation vont dans support pour les moddeurs (c’est d’ailleurs clairement indiqué).
        Il y a déjà eu plusieurs demande d’aide concernant cette question (comment envoyer une commande).

        De plus, tu n’as pas indiqué ta version, merci donc de mettre la balise appropriée.

        1 réponse Dernière réponse Répondre Citer 0
        • Joelchasseu
          Joelchasseu dernière édition par

          Excusez moi alors je suis tout nouveau, je corrige ça 😉

          1 réponse Dernière réponse Répondre Citer 0
          • Infinite
            Infinite dernière édition par

            player.addChatComponentMassage(jet); peremet d’ajouter un message dans le tchat.
            Or toi, tu veux exécuter une commande.

            Utilises :

            • MinecraftServer.getServer pour obtenir l’instance du server
            • MinecraftServer#getCommandManager pour obtenir le CommandManager du server
            • ICommandManager#executeCommand pour executer une commande

            Mes Sites(Mes Sites)
            |
            |    Site général : Game & play
            |   Site de projets (en dev !) :Infinite's Ressources
            J'ai et je suis content d'avoir 16,75 points d'ICRating

            1 réponse Dernière réponse Répondre Citer 0
            • Joelchasseu
              Joelchasseu dernière édition par

              Merci ça m’aide beaucoup, je connais pas encore toute les classes donc merci.
              Je sens que j’avance je vais bidouiller un peu mais je sens que je suis sur la bonne voie 😉

              public EntityPlayer onItemRightClick(World world, EntityPlayer player)
                {
              
                    MinecraftServer server = MinecraftServer.getServer();
                    ICommandManager command = server.getCommandManager();
                    command.executeCommand(player, "/dndroll 2d6");
              
                    return world;
                }
              
              
              1 réponse Dernière réponse Répondre Citer 0
              • Infinite
                Infinite dernière édition par

                Normalement ton code est bon  🙂

                Mes Sites(Mes Sites)
                |
                |    Site général : Game & play
                |   Site de projets (en dev !) :Infinite's Ressources
                J'ai et je suis content d'avoir 16,75 points d'ICRating

                1 réponse Dernière réponse Répondre Citer 0
                • Joelchasseu
                  Joelchasseu dernière édition par

                  Pas tout a fait il semble manquer quelque chose, puisque quand je fais un clic droit il ne se passe rien, je sens que ça se joue encore a un détail, comme toujours ^^
                  Pense tu qu’un event est nécessaire dans mon cas ?

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

                    Son code n’est pas correct, car la fonction onItemRightClick a mal été override, il devrait y avoir un paramètre ItemStack.

                    1 réponse Dernière réponse Répondre Citer 1
                    • Infinite
                      Infinite dernière édition par

                      Effectivement, j’avais pas vu 😕

                      Mes Sites(Mes Sites)
                      |
                      |    Site général : Game & play
                      |   Site de projets (en dev !) :Infinite's Ressources
                      J'ai et je suis content d'avoir 16,75 points d'ICRating

                      1 réponse Dernière réponse Répondre Citer 1
                      • Joelchasseu
                        Joelchasseu dernière édition par

                        Niquel j’ai réussi,je vous remercie (1 jour que je suis dessus quand même …) , comme je l’avais dis ça se jouait a un détail. Pour ceux que ça peut aider :

                        public class Des <itemstack>extends Item
                        {
                        ItemStack itemdes = new ItemStack (Heimnor.itemdes);
                        
                        public ItemStack onItemRightClick(ItemStack itemdes, World world, EntityPlayer player)
                          {
                              MinecraftServer server = MinecraftServer.getServer();
                              ICommandManager command = server.getCommandManager();
                              command.executeCommand(player, "/dndroll 2d6");
                        
                              return itemdes;
                          }
                        }
                        

                        Dernière question si c’est pas trop demander :S

                        J’aimerais pouvoir limiter le nombre de commande que j’envois via cet item dans un espace temps donné, c’est possible ?</itemstack>

                        1 réponse Dernière réponse Répondre Citer 0
                        • Infinite
                          Infinite dernière édition par

                          Avec un peu de réflection ça doit être possible.
                          Il faudrait que a chaque fois que que tu executes une commande, il y ait un timer et que ça bloque l’exécution des commandes de l’utilisateur en envoyant un message du genre : “Merci d’attendre <valeur du timer=”“>secondes/minutes/heures/anées/décénnies/siècles/millénaires avant d’exécuter une commande.”

                          PS: tout est possible en modding  :D</valeur>

                          Mes Sites(Mes Sites)
                          |
                          |    Site général : Game & play
                          |   Site de projets (en dev !) :Infinite's Ressources
                          J'ai et je suis content d'avoir 16,75 points d'ICRating

                          1 réponse Dernière réponse Répondre Citer 0
                          • Joelchasseu
                            Joelchasseu dernière édition par

                            Ca marche je me penche dessus alors ^^ Je passe le sujet en résolu, merci de votre aide ! 😉

                            1 réponse Dernière réponse Répondre Citer 0
                            • Infinite
                              Infinite dernière édition par

                              Derien  😄 !

                              Mes Sites(Mes Sites)
                              |
                              |    Site général : Game & play
                              |   Site de projets (en dev !) :Infinite's Ressources
                              J'ai et je suis content d'avoir 16,75 points d'ICRating

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

                                Timer que tu décrémenterais depuis la fonction Item#onUpdate au cas où tu hésiterais 😃

                                1 réponse Dernière réponse Répondre Citer 1
                                • Joelchasseu
                                  Joelchasseu dernière édition par

                                  Merci j’avoue que cela ne m’avais pas traversé l’esprit je suis encore qu’un novice 😉

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

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB