• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Codage d'un item dés

    1.7.x
    1.7.10
    4
    15
    1650
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Joelchasseu
      Joelchasseu last edited by

      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 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        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 Reply Last reply Reply Quote 0
        • Joelchasseu
          Joelchasseu last edited by

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

          1 Reply Last reply Reply Quote 0
          • Infinite
            Infinite last edited by

            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 Reply Last reply Reply Quote 0
            • Joelchasseu
              Joelchasseu last edited by

              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 Reply Last reply Reply Quote 0
              • Infinite
                Infinite last edited by

                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 Reply Last reply Reply Quote 0
                • Joelchasseu
                  Joelchasseu last edited by

                  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 Reply Last reply Reply Quote 0
                  • Deleted
                    Deleted last edited by

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

                    1 Reply Last reply Reply Quote 1
                    • Infinite
                      Infinite last edited by

                      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 Reply Last reply Reply Quote 1
                      • Joelchasseu
                        Joelchasseu last edited by

                        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 Reply Last reply Reply Quote 0
                        • Infinite
                          Infinite last edited by

                          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 Reply Last reply Reply Quote 0
                          • Joelchasseu
                            Joelchasseu last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • Infinite
                              Infinite last edited by

                              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 Reply Last reply Reply Quote 0
                              • Deleted
                                Deleted last edited by

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

                                1 Reply Last reply Reply Quote 1
                                • Joelchasseu
                                  Joelchasseu last edited by

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

                                  1 Reply Last reply Reply Quote 0
                                  • 1 / 1
                                  • First post
                                    Last post
                                  Design by Woryk
                                  Contact / Mentions Légales

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB