MFF

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

    Erreur - Serveur Forge à cause de commandes.

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    47 Messages 6 Publieurs 8.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.
    • R Hors-ligne
      Rremis
      dernière édition par

      @‘BrokenSwing’:

      Fais voir comment tu enregistre la commande depuis la classe principale

      Je l’enregistre dans l’event PreLoad

      @EventHandler
          public void PreLoad(FMLPreInitializationEvent event){
          proxy.registerRenderInfo();
      
          MCreativeTab.initializeTabs();
          BlockList.mainRegistry();
          ItemsList.mainRegistry();
      
          }
      

      Et tiens la fonction registerRenderInfo(le nom est confus mais je met tout dedans ^^) :

      public void registerRenderInfo(){
      
      MinecraftForge.EVENT_BUS.register(new GuiInGame());
      MinecraftForge.EVENT_BUS.register(new GuiMenuPrincipal());
      MinecraftForge.EVENT_BUS.register(new GuiDebugMenu());
      FMLCommonHandler.instance().bus().register(new KeyInput());
      KeyBindings.mainRegistry();
      
      ClientCommandHandler.instance.registerCommand(new CommandLois());
      ClientCommandHandler.instance.registerCommand(new CommandEditLois());
      }
      

      EDIT : Après, la commande marche, car j’ai un message qui apparait ^^

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

        Fais un print de Minecraft.getMinecraft().currentScreen dans ta commande après avoir ouvert le gui.

        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
        • R Hors-ligne
          Rremis
          dernière édition par

          @‘AymericRed’:

          Fais un print de Minecraft.getMinecraft().currentScreen dans ta commande après avoir ouvert le gui.

          J’ai ça : fr.rremis.instantrp.gui.GuiAfficheLois@feab02

          mais c’est bizarre que rien s’affiche, surtout que ça marchait très bien avant ^^

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

            Selon moi du ClientCommonHandler n’a rien à faire dans une classe uniquement appelée côté serveur tel que le CommonProxy, comme le laisserait suggérer cet apel proxy.registerRenderInfo ().
            Déplace ce code dans ton ClientProxy ou alors dans ta méthode preLoad, dans une conditon du genre if (event.getSide == Side.CLIENT)

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

              @‘Plaigon’:

              Selon moi du ClientCommonHandler n’a rien à faire dans une classe uniquement appelée côté serveur tel que le CommonProxy, comme le laisserait suggérer cet apel proxy.registerRenderInfo ().
              Déplace ce code dans ton ClientProxy ou alors dans ta méthode preLoad, dans une conditon du genre if (event.getSide == Side.CLIENT)

              Je l’ai mis dans le preLoad avec la condition mais rien ne change (bien sur, le message apparait toujours). Mais de base, il etait dans le clientProxy ^^

              public class ClientProxy extends ServerProxy{
              
              public void registerRenderInfo(){
              
              MinecraftForge.EVENT_BUS.register(new GuiInGame());
              MinecraftForge.EVENT_BUS.register(new GuiMenuPrincipal());
              MinecraftForge.EVENT_BUS.register(new GuiDebugMenu());
              FMLCommonHandler.instance().bus().register(new KeyInput());
              KeyBindings.mainRegistry();
              
              ClientCommandHandler.instance.registerCommand(new CommandLois());
              ClientCommandHandler.instance.registerCommand(new CommandEditLois());
              }
              }
              
              
              1 réponse Dernière réponse Répondre Citer 0
              • AymericRedA Hors-ligne
                AymericRed
                dernière édition par

                Bizarre, car selon mc ton gui est affiché, est-ce que après l’avoir ouvert, tu peux de déplacer ?

                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
                • R Hors-ligne
                  Rremis
                  dernière édition par

                  @‘AymericRed’:

                  Bizarre, car selon mc ton gui est affiché, est-ce que après l’avoir ouvert, tu peux de déplacer ?

                  Oui ^^

                  Je vois plus trop d’où viens le problème

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

                    C’est bizarre, essayes d’utiliser le GuiHandler sinon… Et par contre ceci ```java
                    this.buttonList.add(new GuiButton(30, guiX+200, guiY+5, 40, 20, “Edit”){
                    @Override
                    public void mouseReleased(int x, int y) {
                    Minecraft.getMinecraft().thePlayer.sendChatMessage(“/setlois”);
                    }
                    });

                    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
                    • R Hors-ligne
                      Rremis
                      dernière édition par

                      @‘AymericRed’:

                      C’est bizarre, essayes d’utiliser le GuiHandler sinon… Et par contre ceci ```java
                      this.buttonList.add(new GuiButton(30, guiX+200, guiY+5, 40, 20, “Edit”){
                      @Override
                      public void mouseReleased(int x, int y) {
                      Minecraft.getMinecraft().thePlayer.sendChatMessage(“/setlois”);
                      }
                      });

                      Toujours rien 😕

                      J’essaye le GuiHandler, j’ai remis dans la class du Gui :

                             @Override
                      public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
                      return null;
                      }
                      
                      @Override
                      public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
                      if(ID == 1){
                      
                      }
                      return null;
                      }
                      

                      Mais je ne sais pas comment faire pour lancer le gui. (après la condition, je fais quoi ? ^^)
                      Apres, dans la class Server Proxy, j’ai :

                      public void registerNetworkStuff(){
                      
                           NetworkRegistry.INSTANCE.registerGuiHandler(References.MOD_ID, new GuiAfficheLois());
                      }
                      

                      Et j’ai rajouté “proxy.registerNetworkStuff();” dans la fonction PreLoad (dans la classe principale)

                      J’ai enlever les ClientCommandHandler du ClientProxy et j’ai remis l’event :

                         @EventHandler
                         public void serverLoad(FMLServerStartingEvent event){
                          event.registerServerCommand(new CommandLois());
                             event.registerServerCommand(new CommandEditLois());
                         }
                      

                      Après test, le texte s’affiche mais comme je ne sais pas quoi mettre apres la condition (id == 1), cela ne marche pas

                      EDIT : Il faut mettre return new GuiAfficheLois();, non ?

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

                        Oui voilà dans la condition il faut mettre le return, et il faut bien que l’id que tu as mis dans openGui soit le même que l’id utilisé pour la condition

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

                          @‘BrokenSwing’:

                          Oui voilà dans la condition il faut mettre le return, et il faut bien que l’id que tu as mis dans openGui soit le même que l’id utilisé pour la condition

                          Cela ne marche toujours pas :/, le gui ne s’affiche pas.

                          Dans le print du currentScreen après openGUI est maintenant null.

                          Je penses que j’ai fais erreur débile à un endroit, mais bon, faut la trouver

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

                            Envoie la ligne du openGui, et vérifie qu’elle soit bien appelée

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

                              Tiens, je t’envoie toute la fonction :

                              @Override
                              public void processCommand(ICommandSender sender, String[] arguments){
                              sender.addChatMessage(new ChatComponentTranslation(EnumChatFormatting.GRAY+"["+EnumChatFormatting.DARK_GREEN+"InstantRP"+EnumChatFormatting.GRAY+"] "+EnumChatFormatting.YELLOW+"Ouverture du tableau des lois"));
                              ((EntityPlayer)sender).openGui(References.MOD_ID, 1, null, 0, 0, 0);
                              System.out.println(Minecraft.getMinecraft().currentScreen);
                              }
                              
                              1 réponse Dernière réponse Répondre Citer 0
                              • BrokenSwingB Hors-ligne
                                BrokenSwing Moddeurs confirmés Rédacteurs
                                dernière édition par

                                Et du coup openGui est appelé ?

                                
                                @Override
                                public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
                                if(ID == 1){
                                return new GuiAfficheLois(); //Test si c'est exécuté
                                }
                                return null;
                                }
                                
                                
                                1 réponse Dernière réponse Répondre Citer 0
                                • R Hors-ligne
                                  Rremis
                                  dernière édition par

                                  C’est à dire ? J’ai mis un print avant le return new GuiAfficheLois(); et il ne s’affiche pas.

                                  Je penses donc que la fonction ne marche pas (j’ai aussi mis un print avec la condition et il ne s’affiche pas), l’erreur peut se trouver où ? dans le register du guihandler ?

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

                                    Et openGui est bien appelé ? Essai de mettre les bon arguments quand tu appelle openGui (le monde, la position du joueur), je ne sais ps trop, est-ce que tu a des erreurs loggés dans la console (pas forcément un crash)

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

                                      Ton getServerGuiElement, il retourne toujours null ? Si oui, getClientGuiElement ne sera jamais appelé, du coup repasse par la commande client mais avec toujours le GuiHandler, si ça marche toujours pas mets un print dans la fonction draw du gui.

                                      Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                                      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 1
                                      • R Hors-ligne
                                        Rremis
                                        dernière édition par

                                        Broken, j’ai mis les coordonnées du joueur et son monde où il est (en faisant des get) :

                                        ((EntityPlayer)sender).openGui(References.MOD_ID, 1, sender.getEntityWorld(), sender.getPlayerCoordinates().posX, sender.getPlayerCoordinates().posY, sender.getPlayerCoordinates().posZ);
                                        

                                        J’ai aucune erreur, et ça ne marche pas.

                                        Aymeric, en effet, mon getServerGuiElement est toujours null car mon gui affiche juste une image avec du texte dessus et ne possède donc pas d’inventaire.

                                        Je vais remettre les commands clients.

                                        Ok, on avance  🙂 J’ai mis deux prints avant et après la condition de l’id qui ont marché (“TEST ID” ET “BON ID”)
                                        J’ai mis un print dans initGUI (qui a marché) et dans drawScreen(qui n’a pas marché)

                                        Et le print qui est après le openGUI (qui donne le currentScreen) m’a donné mon gui.

                                        DONC, le problème viens du drawScreen, mais j’en ai aucune idée d’où ça peut venir 😕

                                        Je vous montre le code :

                                        
                                        @Override
                                        public void drawScreen(int x, int y, float ticks){
                                                System.out.println("DRAW SCREEN");
                                                int guiX = (width - guiWidth) / 2;
                                                int guiY = (height - guiHeight) / 2;
                                        
                                                GL11.glColor4f(1, 1, 1, 1);
                                                drawDefaultBackground();
                                                mc.renderEngine.bindTexture(new ResourceLocation(References.MOD_ID, "textures/gui/backgroundlois.png"));
                                                drawTexturedModalRect(guiX, guiY, 0, 0, guiWidth, guiHeight);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.UNDERLINE+"Tableau des lois", guiX+85, guiY+11, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"1\. "+loi1, guiX+10, guiY+35, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"2\. "+loi2, guiX+10, guiY+50, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"3\. "+loi3, guiX+10, guiY+65, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"4\. "+loi4, guiX+10, guiY+80, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"5\. "+loi5, guiX+10, guiY+95, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"6\. "+loi6, guiX+10, guiY+110, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"7\. "+loi7, guiX+10, guiY+125, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"8\. "+loi8, guiX+10, guiY+140, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"9\. "+loi9, guiX+10, guiY+155, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"10\. "+loi10, guiX+10, guiY+170, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"11\. "+loi11, guiX+10, guiY+185, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"12\. "+loi12, guiX+10, guiY+200, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"13\. "+loi13, guiX+10, guiY+215, 0x00000);
                                        
                                                fontRendererObj.drawString(EnumChatFormatting.WHITE+"14\. "+loi14, guiX+10, guiY+230, 0x00000);
                                        
                                                super.drawScreen(x, y, ticks);
                                        }
                                        
                                        

                                        EDIT : si ça peut aider, je met aussi mon initGUI :

                                        
                                        public void initGui(){
                                           System.out.println("INIT GUI");
                                           int guiX = (width - guiWidth) / 2;
                                           int guiY = (height - guiHeight) / 2;
                                           this.buttonList.add(new GuiButton(30, guiX+200, guiY+5, 40, 20, "Edit"){
                                               @Override
                                                public void mouseReleased(int x, int y) {
                                                       Minecraft.getMinecraft().thePlayer.sendChatMessage("/setlois");
                                                }
                                           });
                                        }
                                        
                                        
                                        1 réponse Dernière réponse Répondre Citer 0
                                        • BrokenSwingB Hors-ligne
                                          BrokenSwing Moddeurs confirmés Rédacteurs
                                          dernière édition par

                                          Ton gui est extends GuiScreen ?

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

                                            @‘BrokenSwing’:

                                            Ton gui est extends GuiScreen ?

                                            Yep, il ne faut pas ?

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB