MFF

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

    Commande pour modifier l'item qui est dans la Main

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    20 Messages 4 Publieurs 1.5k Vues 2 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Ta fonction getAliases renvoies null, ce qui cause un npe.
      Il faut renvoyer une liste valide.

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

        merci ça marche maintenant ! 😀
        Mais je n’arrive pas a trouver comment modifier le nom de l’item qui est dans la main,
        j’ai essayer ça mais ça ne marche pas :

        	public void execute(MinecraftServer server, ICommandSender sender, String[] strings) throws CommandException
        	{
        		if(sender instanceof EntityPlayer)
        		{
        			EntityPlayer player = (EntityPlayer) sender;
        			String name = player.getActiveHand().MAIN_HAND.name();
        			player.inventory.getDisplayName().equals(name);
        		}
        
        	}
        

        mais j’aimerais aussi pouvoir mettre le nom de couleur dans laquelle on veut le nom,
        par exemple : /rename NomDelItem Couleur EnGras(true ou false)
        Est ce que l’on peut le faire ?

        Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

        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 robin4002

          player.inventory.getDisplayName() retourne le nom de l’inventaire et .equals c’est une méthode qui permet de comparer deux objets.

          Donc là forcement oui, ton code ne va rien faire.

          Il faut plutôt quelque chose comme ceci :

          ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND); // obtient l'item dans la main principale
          stack.setStackDisplayName(displayName); // change le nom affiché
          

          Pour récupérer les arguments tapés, c’est ta variable strings qui les contient.
          strings[0] -> le premier argument (NomDelItem dans l’exemple que tu as donné)
          strings[1] -> le deuxièmeargument (Couleur dans l’exemple que tu as donné)
          etc…
          Et il faut bien sur vérifier que strings.length ait la bonne valeur avant d’utiliser le string à l’index voulu (sinon ça va déclencher une ArrayOutOfBoundException

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

            yes merci ça marche ☺
            mais je n’arrive pas a ajouter la couleur :

            public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
            	{
            		if(sender instanceof EntityPlayer)
            		{
            			EntityPlayer player = (EntityPlayer) sender;
            			ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND); // obtient l'item dans la main principale
            			TextFormatting color = TextFormatting.valueOf(args[1]);
            			TextFormatting effect = TextFormatting.valueOf(args[2]);
            			stack.setStackDisplayName(args[0]); // change le nom affiché
            
            		}
            
            	}
            

            J’ai essayer avec le text formatting mais sans succès (ou alors je l’ai mal fait 😆)
            une idée ?

            Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

            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 robin4002

              Le couleur tu veux que l’utilisateur l’écrit avec quel format ? §1 §2 etc. ? ou RED, BLUE, etc. ?

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

                plutot en red, blue, bold,obfuscated
                j’aurais voulu additionner comme ça :
                /rename [NomDel’Item] blue bold underline

                Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

                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

                  Pour ça va falloir faire une boucle qui pour chaque args vérifie s’il existe dans les EnumFormatting, et si oui retourner le texte de formatage qui va avec.

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

                    et je pourrais faire ça comment par exemple ?

                    Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

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

                      Salut, c’est une opération assez simple :

                      def : style
                      Pour i allant de 1 à (taille(args) - 1):
                          Si args[i] dans valeurs(EnumFormatting) :
                               def : format = récupérerEnumFormattingDepuisNom(args[i])
                               style.ajouterFormat(format)
                      

                      Voilà, plus qu’à traduire cette logique en Java.

                      1 réponse Dernière réponse Répondre Citer 1
                      • En0ri4nE Hors-ligne
                        En0ri4n
                        dernière édition par

                        le truc c’est que je suis en train d’apprendre le java et donc je comprends pas trop ou plutot je ne sais pas comment le traduire en java 😓
                        tu pourrais m’expliquer ?

                        Le java c'est comme une boîte de chocolat, on sait jamais sur quoi on va tomber !

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

                          yo sinon tu utilise comme dans tout les plugins le caractere & dans le message ensuite tu le remplace par un § et minecraft fait le formatage tout seul x)

                          player.getHeldItemMainhand().setStackDisplayName(name.replace('&', '§'));
                          

                          si tu comprends toujours pas comment faire passe sur le discord et je peux vocal pour plus d’explications x)

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

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB