MFF

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

    1.7.10 GuiScreen & Commande

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

      Il faut les créer ^^ comme tu as fait pour ta classe principale.

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

        Ah non c’est bon je suis c** ca marche ! merci beaucoup !!!

        Edit : Enfaite non ca marche pas quand je fais la commande ca m’ouvre rien

        Class principale :

               network = NetworkRegistry.INSTANCE.newSimpleChannel("narcotimod");
               network.registerMessage(PacketOpenGui.Handler.class, PacketOpenGui.class, 0, Side.SERVER);
           }
        
           @EventHandler
           public void serverStarting(FMLServerStartingEvent event)
           {
               event.registerServerCommand(new CommandTest());
           }
        

        Class du PacketGuiOpen:

        public class PacketOpenGui implements IMessage
        {
           public PacketOpenGui()
           {}
        
           @Override
           public void fromBytes(ByteBuf buf)
           {}
        
           @Override
           public void toBytes(ByteBuf buf)
           {}
        
           public static class Handler implements IMessageHandler <packetopengui, imessage="">{
           @SideOnly(Side.CLIENT)
               @Override
               public IMessage onMessage(PacketOpenGui message, MessageContext ctx)
               {
                   Minecraft.getMinecraft().displayGuiScreen(new GuiScreenTest());//On fait un packet car si on utilise la classe Minecraft côté serveur en multijoueur ça crash!
                   System.out.println("Ca marche le Gui !");
                   return null;
               }
           }
        }
        
        

        Class de la Command

        package fr.mrlebest.narcotimod.common;
        
        import java.util.List;
        
        import fr.mrlebest.narcotimod.common.network.PacketOpenGui;
        import net.minecraft.command.CommandBase;
        import net.minecraft.command.ICommandSender;
        import net.minecraft.command.WrongUsageException;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.entity.player.EntityPlayerMP;
        import net.minecraft.server.MinecraftServer;
        import net.minecraft.util.EnumChatFormatting;
        
        public class CommandTest extends CommandBase
        {
        
           @Override
           public String getCommandName()
           {
               return "test";
           }
        
           @Override
           public String getCommandUsage(ICommandSender p_71518_1_)
           {
               // TODO Auto-generated method stub
               return "Usage: /lenomdetacommande";
           }
        
           @Override
           public void processCommand(ICommandSender sender, String[] args)
           {
               if(sender instanceof EntityPlayer)
               {
                   EntityPlayerMP playermp = (EntityPlayerMP)sender;
                   // sendpacket
                   NarcotiMod.network.sendTo(new PacketOpenGui(), playermp);// Cette fois si enregistre ton packet côté CLIENT
                   System.out.println("Ca marche !");
               }
        
           }
        
        }
        
        

        Class du GuiScreen

        package fr.mrlebest.narcotimod.client.gui;
        
        import fr.mrlebest.narcotimod.common.NarcotiMod;
        import fr.mrlebest.narcotimod.common.network.PacketOpenGui;
        import net.minecraft.client.gui.GuiButton;
        import net.minecraft.client.gui.GuiScreen;
        import net.minecraft.util.ResourceLocation;
        
        public class GuiScreenTest extends GuiScreen
        {
        
           private ResourceLocation ressource = new ResourceLocation("TONMODID:textures/gui/LENOMDETATEXTURE.png");
        
           private int ButtonExemple;
        
           public GuiScreenTest()
           {
        
           }
        
           @Override
           public void initGui()
           {
        
               ButtonExemple = 0;
        
               this.buttonList.add(new GuiButton(ButtonExemple, width / 2 - 123, 230, 40, 20, "Bouton Exemple"));
        
               super.initGui();
           }
        
           @Override
           protected void keyTyped(char typedChar, int keyCode)
           {
               super.keyTyped(typedChar, keyCode);
           }
        
           @Override
           protected void actionPerformed(GuiButton button)
           {
        
               switch(button.id)
               {
                   case 0:
                       // Envoie du packet ici
                       NarcotiMod.network.sendToServer(new PacketOpenGui());
                       break;
        
                   default:
                       break;
               }
        
               super.actionPerformed(button);
           }
        
           @Override
           public void updateScreen()
           {
               super.updateScreen();
           }
        
           public void drawScreen(int mouseX, int mouseY, float partialTick)
           {
        
               mc.getTextureManager().bindTexture(ressource);
        
               this.drawTexturedModalRect(this.width / 2 - 135, this.height / 2 - 125, 0, 0, 256, 250);
        
               super.drawScreen(mouseX, mouseY, partialTick);
           }
        
        }
        
        ```</packetopengui,>
        1 réponse Dernière réponse Répondre Citer 0
        • GabsG Hors-ligne
          Gabs
          dernière édition par

          De rien si c’est résolu met le sujet comme Résolu

          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

            Le message “Ca marche le Gui !” s’affiche t-il dans la console ?

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

              Non mais le ça marche il s’affiche

              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

                Donc ton paquet ne fonctionne pas correctement.
                Et je crois avoir trouvé le problème.
                network.registerMessage(PacketOpenGui.Handler.class, PacketOpenGui.class, 0, Side.SERVER);
                Devrait être :
                network.registerMessage(PacketOpenGui.Handler.class, PacketOpenGui.class, 0, Side.CLIENT);

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

                  Tu es sur pareque dans le tuto de RedPlay c’est écrit Server

                  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

                    Il faut mettre celui qui reçoit le paquet. Dans ton cas c’est le client.

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

                      Et si je met le mod sur un serveur avec le solde.Client ça va marcher ?

                      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 ça marchera

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

                          Ok merci beaucoup juste dernière question c’est ou pour modifier les dimensions du GuiScreen ? Je sais que c’est la :

                              public void drawScreen(int mouseX, int mouseY, float partialTick)
                              {
                          
                                  mc.getTextureManager().bindTexture(ressource);
                          
                                  this.drawTexturedModalRect(this.width / 2 - 135, this.height / 2 - 200, 0, 0, 256, 250);
                          
                                  super.drawScreen(mouseX, mouseY, partialTick);
                              }
                          

                          mais il faut modifier quoi exactement ?

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

                            this.drawTexturedModalRect(this.width / 2 - 135, this.height / 2 - 200, 0, 0, 256, 250);  ->          256 / 250 (a la fin) il me semble

                            Et pour l’enregistrement du packet je t’avais dis côté server c’est ma faute!

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

                              Pas grave 🙂 Merci beaucoup ca marche a la perfection !!! je met en resolu

                              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