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.
    • 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