MFF

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

    GuiTextField password et exécutant une commande

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    21 Messages 2 Publieurs 3.0k Vues 1 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.
    • DeletedD Hors-ligne
      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 Hors-ligne
        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
        • DeletedD Hors-ligne
          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 Hors-ligne
            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
            • DeletedD Hors-ligne
              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 Hors-ligne
                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
                • DeletedD Hors-ligne
                  Deleted
                  dernière édition par

                  En éditant ton poste initial

                  1 réponse Dernière réponse Répondre Citer 0
                  • P Hors-ligne
                    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
                    • DeletedD Hors-ligne
                      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 Hors-ligne
                        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
                        • DeletedD Hors-ligne
                          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 Hors-ligne
                            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
                            • DeletedD Hors-ligne
                              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 Hors-ligne
                                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 Hors-ligne
                                  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
                                  • DeletedD Hors-ligne
                                    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 Hors-ligne
                                      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
                                      • DeletedD Hors-ligne
                                        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 Hors-ligne
                                          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
                                          • DeletedD Hors-ligne
                                            Deleted
                                            dernière édition par

                                            Pour détecter l’input d’une touche dans un gui, tu dois te placer dans la fonction keyTyped et te servir du second paramètre de type ont représentant le keyCode de la touché pressée.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB