MFF

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

    Problème GuiTextField dans un inventaire custom.

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    33 Messages 6 Publieurs 5.7k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Il y a un npe sur une des classes de Minecraft. Ce qui est assez étrange comme il n’y a aucune référence à ton code.
      Tu as modifié quelque chose dans le code de mc ?

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

        Je ne comprend pas pourquoi ce crash, mais pourquoi as tu laissé tout les trucs en rapport avec le texte field dans la méthode draw (il faut le définir UNE fois dans le méthode initGui et c’est bon).
        “MinecraftServer mc1 = FMLServerHandler.instance().getServer();” Essayé ça sur un serveur, le jeu crashera parce que le gui n’est que sur le client

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

          Peut-être que son crash est causé par l’installation de mod incompatible.

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

            @‘robin4002’:

            Il y a un npe sur une des classes de Minecraft. Ce qui est assez étrange comme il n’y a aucune référence à ton code.
            Tu as modifié quelque chose dans le code de mc ?

            Non, je n’ai pas modifié le code de mc 😕
            @‘AymericRed’:

            Je ne comprend pas pourquoi ce crash, mais pourquoi as tu laissé tout les trucs en rapport avec le texte field dans la méthode draw (il faut le définir UNE fois dans le méthode initGui et c’est bon).
            “MinecraftServer mc1 = FMLServerHandler.instance().getServer();” Essayé ça sur un serveur, le jeu crashera parce que le gui n’est que sur le client

            Effectivement, mais je le test bien sur un serveur et le serveur ne crash pas mais que le jeux, et j’enléve le text field da,s la méthoe draw
            @‘Plaigon’:

            Peut-être que son crash est causé par l’installation de mod incompatible.

            Hum bizzare car avant ce ne crashé pas 😕 En tout cas merci de vos réponse, je continue a cherché mais cane marche toujours pas.

            Cordialement, le membre ayant le pseudo "ph1823"

            Ma chaîne YouTube: https://www.youtube.com/c/ph1823
            Mon Twitter : https://twitter.com/ph1823
            Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

              Bah pour être sûr, enlève les tous et remets les. Sa ne te coûte rien…

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

                D’accord, merci mais ceci ne resoue pas le problème que quand on click sur validé , cela ne produit rien et aussi qu’on ne peux pas changé le text dans le Gui 😕

                Cordialement, le membre ayant le pseudo "ph1823"

                Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                Mon Twitter : https://twitter.com/ph1823
                Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                  Pour le bouton, normal, tu lui as donné 32 comme id et dans la fonction onActionPerformed, tu vérifies si l’id est 0…

                  Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                  AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                  Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                    Ben justement, je n’ai mis aucun if, donc ca ne risque pas d’être causer pas ca.

                    Cordialement, le membre ayant le pseudo "ph1823"

                    Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                    Mon Twitter : https://twitter.com/ph1823
                    Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                      Ah oui autan pour moi

                      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                        Je me permet d’up le message car j’ai regardé dans la class GuiRepair, sauf que maintenant il n’y a plus le GuiTextField, et le button valide est en double, voici mon code :

                        [font=Courier Newpackage ]fr.ph1823.MyLife.Gui.Amandes%(#cc7832)[;
                        ]
                        %(#629755)[*/**
                        *]%(#629755)[* * Created by ph1823 - Minecraft on 29/02/2016.
                        *]%(#629755)[* */
                        *]
                        import com.mojang.authlib.GameProfile%(#cc7832)[;
                        ]import cpw.mods.fml.client.FMLClientHandler%(#cc7832)[;
                        ]import cpw.mods.fml.server.FMLServerHandler%(#cc7832)[;
                        ]import fr.ph1823.MyLife.GloryRP%(#cc7832)[;
                        ]import fr.ph1823.MyLife.Gui.Amandes.inv.InventoryBackPack%(#cc7832)[;
                        ]import fr.ph1823.MyLife.Item.Search%(#cc7832)[;
                        ]import net.minecraft.client.gui.*%(#cc7832)[;
                        ]import net.minecraft.client.gui.inventory.GuiContainer%(#cc7832)[;
                        ]import net.minecraft.client.resources.I18n%(#cc7832)[;
                        ]import net.minecraft.entity.player.EntityPlayer%(#cc7832)[;
                        ]import net.minecraft.entity.player.InventoryPlayer%(#cc7832)[;
                        ]import net.minecraft.item.ItemStack%(#cc7832)[;
                        ]import net.minecraft.nbt.NBTBase%(#cc7832)[;
                        ]import net.minecraft.server.MinecraftServer%(#cc7832)[;
                        ]import net.minecraft.util.IChatComponent%(#cc7832)[;
                        ]import net.minecraft.util.ResourceLocation%(#cc7832)[;
                        ]
                        import org.lwjgl.input.Keyboard%(#cc7832)[;
                        ]import org.lwjgl.opengl.GL11%(#cc7832)[;
                        ]import fr.ph1823.MyLife.Gui.Amandes.inv.container.*%(#cc7832)[;
                        ]
                        import java.awt.*%(#cc7832)[;
                        ]import java.io.IOException%(#cc7832)[;
                        ]import java.net.URI%(#cc7832)[;
                        ]import java.util.ArrayList%(#cc7832)[;
                        ]import java.util.List%(#cc7832)[;
                        ]
                        public class Amendes
                        
                        extends GuiContainer {
                          private GuiTextField g%(#cc7832)[;
                        ]
                                public static final ResourceLocation *texture *= new ResourceLocation("guicustom","textures/a.png")%(#cc7832)[;
                        ]        protected InventoryBackPack inv%(#cc7832)[;
                        ]        protected InventoryPlayer playerInv%(#cc7832)[;
                        ]        public int rows%(#cc7832)[;
                        ]
                                public Amendes(InventoryPlayer playerInv, InventoryBackPack inv) {
                                   super(new ContainerBackPack(playerInv, inv))%(#cc7832)[;
                        ]            this.playerInv = playerInv%(#cc7832)[;
                        ]            this.inv = inv%(#cc7832)[;
                        ]            this.allowUserInput = %(#cc7832)[false;
                        ]            %(#808080)[// Calculate the number of rows
                        ]            this.rows = inv.getSizeInventory() / 9%(#cc7832)[;
                        ]            %(#808080)[// Height of the GUI using the number of rows
                        ]            this.ySize = 114 + this.rows * 18%(#cc7832)[;
                        ]
                               }
                           protected List buttonList = new ArrayList()%(#cc7832)[;
                        ]    %(#bbb529)[@Override
                        ]    public void initGui() {
                               super.initGui()%(#cc7832)[;
                        ]        Keyboard.*enableRepeatEvents*(true)%(#cc7832)[;
                        ]
                               FontRenderer f = this.mc.fontRenderer%(#cc7832)[;
                        ]        int i = (this.width - this.xSize) / 2%(#cc7832)[;
                        ]        int j = (this.height - this.ySize) / 2%(#cc7832)[;
                        ]
                        
                               g = new GuiTextField(f, 55,230, 100,100)%(#cc7832)[;
                        ]        this.g = new GuiTextField(this.fontRendererObj, i + 62, j + 24, 103, 12)%(#cc7832)[;
                        ]        this.g.setTextColor(-1)%(#cc7832)[;
                        ]        this.g.setDisabledTextColour(-1)%(#cc7832)[;
                        ]        this.g.setEnableBackgroundDrawing(false)%(#cc7832)[;
                        ]        this.g.setMaxStringLength(40)%(#cc7832)[;
                        ]
                        
                               %(#808080)[//   g.drawTextBox();
                        ]%(#808080)[        // this.buttonList.add(g);
                        ]        this.buttonList.add(new GuiButton(32, this.width / 2 - 100, i+ 24, 200, 20, "Valide") {
                                   %(#bbb529)[@Override
                        ]            public void mouseReleased(int x, int y) {
                                       mc.currentScreen.confirmClicked(true, 1)%(#cc7832)[;
                        ]                playerInv.closeInventory()%(#cc7832)[;
                        ]                EntityPlayer p1 = playerInv.player%(#cc7832)[;
                        ]                MinecraftServer mc1 = FMLServerHandler.*instance*().getServer()%(#cc7832)[;
                        ]                for(GameProfile g1 : mc1.func_152357_F()) {
                                           if(g.getText().equals(g1.getName())) {
                                               EntityPlayer p = mc1.getEntityWorld().func_152378_a(g1.getId())%(#cc7832)[;
                        ]                        p.inventory.addItemStackToInventory(new ItemStack(GloryRP.*MenotesItem*,1))%(#cc7832)[;
                        ]                    } else {
                                               IChatComponent msg = IChatComponent.Serializer.*func_150699_a*("§4Erreur : la personne demandé n'existe pas.")%(#cc7832)[;
                        ]
                        
                                               p1.addChatMessage(msg)%(#cc7832)[;
                        ]                    }
                                       }
                        
                                   }
                               })%(#cc7832)[;
                        ]
                        
                           }
                           %(#bbb529)[@Override
                        ]    public void onGuiClosed()
                           {
                               super.onGuiClosed()%(#cc7832)[;
                        ]        Keyboard.*enableRepeatEvents*(false)%(#cc7832)[;
                        ]    }
                           %(#bbb529)[@Override
                        ]    protected void drawGuiContainerForegroundLayer(int x, int y) {
                           %(#808080)[//super.drawGuiContainerForegroundLayer(x, y);
                        ]
                               GL11.*glEnable*(GL11.*GL_LIGHTING*)%(#cc7832)[;
                        ]
                        
                               int k%(#cc7832)[;
                        ]        for (k = 0; k < this.buttonList.size(); ++k) {
                                   ((GuiButton) this.buttonList.get(k)).drawButton(this.mc, x, y)%(#cc7832)[;
                        ]        }
                           }
                              %(#808080)[/* @Override
                        ]%(#808080)[        protected void drawGuiContainerForegroundLayer(int x, int y) {
                        ]%(#808080)[            Keyboard.enableRepeatEvents(true);
                        ]          //  this.fontRendererObj.drawString(I18n.format(this.inv.getInventoryName(), new Object[0), 8, 6, 4210752);
                        ]
                        %(#808080)[            int k;
                        ]
                        %(#808080)[            for (k = 0; k < this.buttonList.size(); ++k)
                        ]%(#808080)[            {
                        ]%(#808080)[                ((GuiButton)this.buttonList.get(k)).drawButton(this.mc, x, y);
                        ]%(#808080)[            }
                        ]
                                    // this.fontRendererObj.drawString(this.playerInv.hasCustomInventoryName() ? this.playerInv.getInventoryName() : I18n.format(this.playerInv.getInventoryName(), new Object[0), 8, this.ySize - 96 + 2, 4210752);
                        ]%(#808080)[        }*/
                        ]    %(#bbb529)[@Override
                        ]    protected void actionPerformed(GuiButton button)
                           {
                        
                                   this.mc.currentScreen.confirmClicked(true, 1)%(#cc7832)[;
                        ]            playerInv.closeInventory()%(#cc7832)[;
                        ]            EntityPlayer p1 = playerInv.player%(#cc7832)[;
                        ]        p1.closeScreen()%(#cc7832)[;
                        ]        IChatComponent msg1 = IChatComponent.Serializer.*func_150699_a*("§4Erreur : la personne demandé n'existe pas. id : " + button.id)%(#cc7832)[;
                        ]
                        
                               p1.addChatMessage(msg1)%(#cc7832)[;
                        ]            MinecraftServer mc1 = FMLServerHandler.*instance*().getServer()%(#cc7832)[;
                        ]            for (GameProfile g1 : mc1.func_152357_F()) {
                                       if (g.getText().equals(g1.getName())) {
                                           EntityPlayer p = mc1.getEntityWorld().func_152378_a(g1.getId())%(#cc7832)[;
                        ]                    p.inventory.addItemStackToInventory(new ItemStack(GloryRP.*MenotesItem*, 1))%(#cc7832)[;
                        ]                } else {
                                           IChatComponent msg = IChatComponent.Serializer.*func_150699_a*("§4Erreur : la personne demandé n'existe pas.")%(#cc7832)[;
                        ]
                        
                                           p1.addChatMessage(msg)%(#cc7832)[;
                        ]                }
                                   }
                        
                           }
                           %(#629755)[*/**
                        *]%(#629755)[*     * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
                        *]%(#629755)[*     */
                        *]    %(#bbb529)[@Override
                        ]    protected void keyTyped(char p_73869_1_, int p_73869_2_) {
                               super.keyTyped(p_73869_1_, p_73869_2_
                        
                               )%(#cc7832)[;
                        ]        if(this.g.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
                                   this.g.setFocused(!this.g.isFocused())%(#cc7832)[;
                        ]        }
                        
                                %(#808080)[//   this.field_146308_f.setFocused(!this.field_146308_f.isFocused());
                        ]
                           }
                               %(#bbb529)[@Override
                        ]        protected void drawGuiContainerBackgroundLayer(float prt, int x, int y) {
                                  %(#808080)[// super.drawGuiContainerBackgroundLayer();
                        ]            GL11.*glColor4f*(1.0F, 1.0F, 1.0F, 1.0F)%(#cc7832)[;
                        ]            this.mc.getTextureManager().bindTexture(*texture*)%(#cc7832)[;
                        ]
                                   %(#808080)[// Centering GUI
                        ]            int k = (this.width - this.xSize) / 2%(#cc7832)[;
                        ]            int l = (this.height - this.ySize) / 2%(#cc7832)[;
                        ]
                                   %(#808080)[// Drawing the first part of the GUI (slots of the backpack)
                        ]            this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.rows * 18 + 17)%(#cc7832)[;
                        ]            %(#808080)[// And after the slots from the player's inventory
                        ]            this.drawTexturedModalRect(k, l + this.rows * 18 + 17, 0, 126, this.xSize, 96)%(#cc7832)[;
                        ]        }
                        
                           %(#bbb529)[@Override
                        ]    public void updateScreen()
                           {
                               super.updateScreen()%(#cc7832)[;
                        ]        g.updateCursorCounter()%(#cc7832)[;
                        ]    }
                        
                           %(#bbb529)[@Override
                        ]    protected void mouseClicked(int mouseX, int mouseY, int mouseButton)
                           {
                               super.mouseClicked(mouseX, mouseY, mouseButton)%(#cc7832)[;
                        ]        this.g.mouseClicked(mouseX, mouseY, mouseButton)%(#cc7832)[;
                        ]
                           }
                        
                           %(#bbb529)[@Override
                        ]    public void drawScreen(int i, int j, float f)
                           {
                               super.drawScreen(i, j, f)%(#cc7832)[;
                        ]        GL11.*glDisable*(GL11.*GL_LIGHTING*)%(#cc7832)[;
                        ]        GL11.*glDisable*(GL11.*GL_BLEND*)%(#cc7832)[;
                        ]        g.drawTextBox()%(#cc7832)[;
                        ]
                        
                           }
                        
                        }
                        

                        Cordialement, le membre ayant le pseudo "ph1823"

                        Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                        Mon Twitter : https://twitter.com/ph1823
                        Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                          g = new GuiTextField(f, 55,230, 100,100);
                          this.g = new GuiTextField(this.fontRendererObj, i + 62, j + 24, 103, 12);
                          

                          -> pourquoi le mettre 2 fois avec des valeurs différentes ?

                          
                          this.g.setTextColor(-1);
                          this.g.setDisabledTextColour(-1);
                          this.g.setEnableBackgroundDrawing(false);
                          

                          -> Pourquoi tout ça ?

                          @Override
                          protected void keyTyped(char p_73869_1_, int p_73869_2_) {
                          super.keyTyped(p_73869_1_, p_73869_2_
                          
                          );
                          if(this.g.textboxKeyTyped(p_73869_1_, p_73869_2_)) {
                          this.g.setFocused(!this.g.isFocused());
                          }
                          
                          // this.field_146308_f.setFocused(!this.field_146308_f.isFocused());
                          
                          }
                          

                          -> Tu as juste à mettre this.g.textboxKeyTyped(p_73869_1_, p_73869_2_)

                          this.buttonList.add(new GuiButton(32, this.width / 2 - 100, i+ 24, 200, 20, "Valide") {
                          @Override
                          public void mouseReleased(int x, int y) {
                          mc.currentScreen.confirmClicked(true, 1);
                          playerInv.closeInventory();
                          EntityPlayer p1 = playerInv.player;
                          MinecraftServer mc1 = FMLServerHandler.instance().getServer();
                          for(GameProfile g1 : mc1.func_152357_F()) {
                          if(g.getText().equals(g1.getName())) {
                          EntityPlayer p = mc1.getEntityWorld().func_152378_a(g1.getId());
                          p.inventory.addItemStackToInventory(new ItemStack(GloryRP.MenotesItem,1));
                          } else {
                          IChatComponent msg = IChatComponent.Serializer.func_150699_a("§4Erreur : la personne demandé n'existe pas.");
                          
                          p1.addChatMessage(msg);
                          }
                          }
                          
                          }
                          });
                          
                          @Override
                          protected void actionPerformed(GuiButton button)
                          {
                          
                          this.mc.currentScreen.confirmClicked(true, 1);
                          playerInv.closeInventory();
                          EntityPlayer p1 = playerInv.player;
                          p1.closeScreen();
                          IChatComponent msg1 = IChatComponent.Serializer.func_150699_a("§4Erreur : la personne demandé n'existe pas. id : " + button.id);
                          
                          p1.addChatMessage(msg1);
                          MinecraftServer mc1 = FMLServerHandler.instance().getServer();
                          for (GameProfile g1 : mc1.func_152357_F()) {
                          if (g.getText().equals(g1.getName())) {
                          EntityPlayer p = mc1.getEntityWorld().func_152378_a(g1.getId());
                          p.inventory.addItemStackToInventory(new ItemStack(GloryRP.MenotesItem, 1));
                          } else {
                          IChatComponent msg = IChatComponent.Serializer.func_150699_a("§4Erreur : la personne demandé n'existe pas.");
                          
                          p1.addChatMessage(msg);
                          }
                          }
                          
                          }
                          

                          -> Tu as 2 fonctions qui sont appelées lorsque tu cliques
                          -> “this.mc.currentScreen.confirmClicked(true, 1);” -> pourquoi ?
                          -> “MinecraftServer mc1 = FMLServerHandler.instance().getServer();” -> tu essaies s’accéder au serveur côté client
                          -> “p.inventory.addItemStackToInventory(new ItemStack(GloryRP.MenotesItem, 1));” -> tu essaies d’ajouter un item côté client ce qui risque de créer un item fantôme
                          -> “} else {
                          IChatComponent msg = IChatComponent.Serializer.func_150699_a(”§4Erreur : la personne demandé n’existe pas.");

                          p1.addChatMessage(msg);
                          }" -> je pense que ceci devrait être appelé à la fin de la boucle sinon tu risques de spamer un peu

                          GL11.glDisable(GL11.GL_LIGHTING);
                          GL11.glDisable(GL11.GL_BLEND);
                          

                          -> pourquoi ?

                          PS : pense à faire du nettoyage car tu as beaucoup de commentaires

                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                          Pas de demandes de support par MP ni par skype SVP.
                          Je n'accepte sur skype que l…

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

                            Bon déjà il manque

                            g.drawTextBox(); dans ta classe et dans la fonction drawSreen(), juste avant le super.drawScreen(); comme ça t’es sur qu’il sera au premier plan, pas après.

                            et on appelle pas une méthode g ça veux rien dire, m’enfin tu fais comme tu veux

                            Si je t'ai filé un coup de main n'oublie pas le + / -
                            Par contre évite les demandes d'aides en MP, tu sera sympa'

                            La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                            Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB