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

    Résolu GuiTextField password et exécutant une commande

    1.7.x
    1.7.10
    2
    21
    2806
    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.
    • P
      PlayFlop_ dernière édition par

      Bonjour, c’est encore moi.
      J’aurais quelques requètes.

      Premièrement j’ai implanté une commande dans mon mod.
      Le souci c’est que je voudrais faire un menu GUI (Que j’ai fait d’allieur) qui exécute cette commande suivie de l’argument dans le GuiTextField.
      Mais mon problème est que ça ne fonctionne pas (Alors que dans mon debug sa éxécute ma commande mais en jeux sa ne fonctionne pas, alors que si je fait la commande moi même sa fonctionne sans le GuiTextField).

      Ensuite j’aimerais aussi remplacer le texte d’un GuiTextField par des étoiles!
      Et je ne sais pas du tout comment faire. (Pour un Login).

      Merci de votre aide.

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

        Salut, c’est encore moi,
        Alors pour ton premier problème, pourrions nous profiter de ta classe du Gui afin de mieux visualiser tes possibles bloquages, merci 😉

        Deuxièmement, pour ton menu login, peut-être en isolant chaque caractère écrit dans un String puis en les remplaçant après par des étoiles, non ?

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

          @‘Plaigon’:

          Salut, c’est encore moi,
          Alors pour ton premier problème, pourrions nous profiter de ta classe du Gui afin de mieux visualiser tes possibles bloquages, merci 😉

          Deuxièmement, pour ton menu login, peut-être en isolant chaque caractère écrit dans un String puis en les remplaçant après par des étoiles, non ?

          Aha merci a toi de me répondre ! 🙂

          Voila la classe du GUI de ma commande:

          package fr.playflop.extania.client.menu;
          
          import java.util.Map.Entry;
          
          import net.minecraft.client.Minecraft;
          import net.minecraft.client.gui.FontRenderer;
          import net.minecraft.client.gui.GuiButton;
          import net.minecraft.client.gui.GuiScreen;
          import net.minecraft.client.gui.GuiTextField;
          import net.minecraft.client.resources.I18n;
          import net.minecraft.util.EnumChatFormatting;
          import net.minecraft.util.ResourceLocation;
          import org.lwjgl.input.Keyboard;
          import org.lwjgl.opengl.GL11;
          import cpw.mods.fml.client.config.GuiSlider;
          
          public class GuiParticules extends GuiScreen
          {
          private GuiTextField textfield;
          int guiWidth= 250; // Taille du gui (largeur)
          int guiHeight= 250;// Taille du gui (hauteur)
          public void initGui() {
          
          int posX = (this.width - guiWidth) / 2;
          int posY = (this.height - guiHeight) / 2;
          this.textfield = new GuiTextField(this.fontRendererObj, this.width / 2 - 78, this.height / 2 - 75, 150, 20);
                 this.buttonList.add(new GuiButton(10, this.width / 2 - 80, this.height / 2 - 45, 155, 20, I18n.format(EnumChatFormatting.GOLD + "Valider")));
          
          textfield.setMaxStringLength(25);
          textfield.setText("");
                 this.textfield.setFocused(false);
          
              }
          
          protected void actionPerformed(GuiButton button) {
                  switch (button.id) {
                      case 10:
                      String mdp = textfield.getText();
                      //Minecraft.getMinecraft().thePlayer.sendChatMessage("/particlemod " + mdp);
                          this.mc.displayGuiScreen((GuiScreen) null);
                          this.mc.setIngameFocus();
                          break;
          
                  }
              }
          @Override                                                               
          public void drawScreen(int x, int y, float ticks )
          {
          int guix =(width - guiWidth) /2 ;
          int guiy =(height - guiHeight) /2;
          
          GL11.glColor4f(1,1,1,1);
          //drawDefaultBackground();
          
          mc.renderEngine.bindTexture(new ResourceLocation("extania:textures/gui/guiparticules.png")); // Le chemin de ton GUI
          
          drawTexturedModalRect(guix, guiy, 0, 0, guiWidth, guiHeight);
          
          //this.drawDefaultBackground();
          
          this.textfield.drawTextBox(); // On met ton textfield ici
          
          super.drawScreen(x, y, ticks);
          }
          @Override
          public boolean doesGuiPauseGame()
          {
          return false;
          }
          protected void keyTyped(char par1, int par2)
              {
                  super.keyTyped(par1, par2);
                  this.textfield.textboxKeyTyped(par1, par2);
              }
          
          public void updateScreen()
              {
                  super.updateScreen();
              }
          protected void mouseClicked(int x, int y, int btn) 
          {
                 super.mouseClicked(x, y, btn);
                 this.textfield.mouseClicked(x, y, btn);
          }
          
              //Minecraft.getMinecraft().displayGuiScreen(null);
          }
          

          et pour les étoiles j’ai trouvé un code mais je n’arrive pas a l’adapter…

          public void drawTextBox() {
          if (this.getVisible()) {
          if (this.getEnableBackgroundDrawing()) {
          drawRect(this.xPosition - 1, this.yPosition - 1, this.xPosition + this.width + 1, this.yPosition + this.height + 1, -6250336);
          drawRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, -16777216);
          }
          
          int i = this.isEnabled ? this.enabledColor : this.disabledColor;
          int j = this.cursorPosition - this.lineScrollOffset;
          int k = this.selectionEnd - this.lineScrollOffset;
          String s = this.fontRendererInstance.trimStringToWidth(this.text.substring(this.lineScrollOffset), this.getWidth());
          boolean flag = j >= 0 && j <= s.length();
          boolean flag1 = this.isFocused && this.cursorCounter / 6 % 2 == 0 && flag;
          int l = this.enableBackgroundDrawing ? this.xPosition + 4 : this.xPosition;
          int i1 = this.enableBackgroundDrawing ? this.yPosition + (this.height - 8) / 2 : this.yPosition;
          int j1 = l;
          
          if (k > s.length()) {
          k = s.length();
          }
          
          if (s.length() > 0) {
          String s1 = flag ? s.substring(0, j) : s;
          if (s1.matches(".*[a-z].*") || s1.matches(".*[A-Z].*") || s1.matches(".*[0-9].*") || s1.matches(".*[^a-zA-Z0-9].*")) {
          j1 = this.fontRendererInstance.drawStringWithShadow(s1.replaceAll(".", "*"), (float) l, (float) i1, i);
          }
          }
          
          boolean flag2 = this.cursorPosition < this.text.length() || this.text.length() >= this.getMaxStringLength();
          int k1 = j1;
          
          if (!flag) {
          k1 = j > 0 ? l + this.width : l;
          } else if (flag2) {
          k1 = j1 - 1;
          –j1;
          }
          
          if (s.length() > 0 && flag && j < s.length()) {
          if (s.matches(".*[a-z].*") || s.matches(".*[A-Z].*") || s.matches(".*[0-9].*") || s.matches(".*[^a-zA-Z0-9].*")) {
          j1 = this.fontRendererInstance.drawStringWithShadow(s.substring(j).replaceAll(".", "*"), (float) j1, (float) i1, i);
          }
          }
          
          if (flag1) {
          if (flag2) {
          Gui.drawRect(k1, i1 - 1, k1 + 1, i1 + 1 + this.fontRendererInstance.FONT_HEIGHT, -3092272);
          } else {
          this.fontRendererInstance.drawStringWithShadow("_", (float) k1, (float) i1, i);
          }
          }
          
          if (k != j) {
          int l1 = l + this.fontRendererInstance.getStringWidth(s.substring(0, k));
          this.drawCursorVertical(k1, i1 - 1, l1 - 1, i1 + 1 + this.fontRendererInstance.FONT_HEIGHT);
          }
          }
          }
          
          1 réponse Dernière réponse Répondre Citer 0
          • Deleted
            Deleted dernière édition par

            Pourquoi ta commande ne marche pas, ta ligne 45 semblait bon. La console indique-t-elle quelque chose ?
            Et pour ton second problème, tu peux essayer de créer un GuiTextField custom et d’y override cette fonction que tu nous as montrée.

            PS: Pense aussi à renommer le titre de ce topic car pour le moment, c’est trop implicite. Tu pourrais par exemple mettre: “GuiTextField password et exécutant une commande” 😃

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

              @‘Plaigon’:

              Pourquoi ta commande ne marche pas, ta ligne 45 semblait bon. La console indique-t-elle quelque chose ?
              Et pour ton second problème, tu peux essayer de créer un GuiTextField custom et d’y override cette fonction que tu nous as montrée.

              PS: Pense aussi à renommer le titre de ce topic car pour le moment, c’est trop implicite. Tu pourrais par exemple mettre: “GuiTextField password et exécutant une commande” 😃

              Le debut fonctionne, sa éxécute bien ma commande 😕
              mais en jeu sa dit invalid command fin le texte de minecraft de base alors que la commande fonctionne, c’est pour sa que je comprend pas

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

                Essaie de print ta variable mdp, aucune raison qu’une commande envoyée manuellement par ton chat, ne soit également pas envoyable par sendChatMessage.

                PS: Pense aussi à renommer le titre de ce topic car pour le moment, c’est trop implicite. Tu pourrais par exemple mettre: “GuiTextField password et exécutant une commande”.

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

                  @‘Plaigon’:

                  Essaie de print ta variable mdp, aucune raison qu’une commande envoyée manuellement par ton chat, ne soit également pas envoyable par sendChatMessage.

                  PS: Pense aussi à renommer le titre de ce topic car pour le moment, c’est trop implicite. Tu pourrais par exemple mettre: “GuiTextField password et exécutant une commande”.

                  Comment je fais pour modifier le titre ?

                  et print comment sa ?
                  Quand je print en débug sa fonctionne

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

                    En éditant ton poste initial

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

                      @‘Plaigon’:

                      En éditant ton poste initial

                      merci et voila je sais pas comment faire du coup pour ma commande 😕

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

                        Envoie la en brute sans variable mdp dans le sendChatMessage. Si elle fonctionne, alors le problème doit venir de ta variable mdp.

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

                          @‘Plaigon’:

                          Envoie la en brute sans variable mdp dans le sendChatMessage. Si elle fonctionne, alors le problème doit venir de ta variable mdp.

                          Voila, sa ne marche pas et sa marque Unknown command. Try /help for a list of commands
                          Alors que ma commande existe bien

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

                            Peut-être que les commandes customs ne marchent pas par sendChatMessage, ça m’étonnerait mais bon. Essaie sinon d’envoyer un packet au serveur afin qu’il s’en charge seul.

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

                              @‘Plaigon’:

                              Peut-être que les commandes customs ne marchent pas par sendChatMessage, ça m’étonnerait mais bon. Essaie sinon d’envoyer un packet au serveur afin qu’il s’en charge seul.

                              Mais ça a rien avoir coté serveur enfait…

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

                                Tu n’as pas l’air de comprendre. Remonte la fonction sendChatMessage tout seul pour voir d’où vient l’erreur.

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

                                  @‘Plaigon’:

                                  Tu n’as pas l’air de comprendre. Remonte la fonction sendChatMessage tout seul pour voir d’où vient l’erreur.

                                  Mais je ne sais pas comment faire ça moi ^^

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

                                    Quelqu’un pourrais m’aider pour les étoiles dans mon GuiLogin
                                    et faire un KeyPress qui a la meme fonction que mon bouton mais que dans le GUI

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

                                      Tu as la fonction keyPressed
                                      Pour les étoiles, je t’ai déjà indiqué comment faire. Un peu d’initiative ne serait pas de refus, tu donnes l’impression de mendier du code 😕

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

                                        @‘Plaigon’:

                                        Tu as la fonction keyPressed
                                        Pour les étoiles, je t’ai déjà indiqué comment faire. Un peu d’initiative ne serait pas de refus, tu donnes l’impression de mendier du code 😕

                                        if(Keyboard.isKeyDown(KeyEvent.VK_ENTER))
                                                {
                                                String mdp = textfield.getText();
                                                Minecraft.getMinecraft().thePlayer.sendChatMessage("/login " + mdp);
                                                    this.mc.displayGuiScreen((GuiScreen) null);
                                                    this.mc.setIngameFocus();
                                                }
                                        

                                        j’ai fait ça mais sa ne fonctionne pas

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

                                          Qu’est-ce qui ne fonctionne pas, faut détailler.
                                          Par ailleurs où as-tu mis ce code ? Et on avait déjà conclu au bout d’une quinzaine de messages que sendChatMessage avait du mal avec ta commande, pourquoi le remettre alors?

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

                                            @‘Plaigon’:

                                            Qu’est-ce qui ne fonctionne pas, faut détailler.
                                            Par ailleurs où as-tu mis ce code ? Et on avait déjà conclu au bout d’une quinzaine de messages que sendChatMessage avait du mal avec ta commande, pourquoi le remettre alors?

                                            Ce qui ne fonctionne pas c’est que j’ai l’impression que sa ne détecte pas quand j’appuye sur la touche enter, j’ai mit ce code dans la classe du guilogin c’est un autre gui, la je parle pas du sendChatMessage

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB