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.
    • Yanis_Y Hors-ligne
      Yanis_
      dernière édition par

      Merci beaucoup tu peux juste me dire ou il faux mettre le PacketCommande  et la class de la command ?

      1 réponse Dernière réponse Répondre Citer 0
      • 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
                                • 1 / 2
                                • Premier message
                                  Dernier message
                                Design by Woryk
                                ContactMentions Légales

                                MINECRAFT FORGE FRANCE © 2024

                                Powered by NodeBB