MFF

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

    Recherche affichage pour un broadcast

    Planifier Épinglé Verrouillé Déplacé Sans suite
    37 Messages 5 Publieurs 7.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.
    • BrokenSwingB Hors-ligne
      BrokenSwing Moddeurs confirmés Rédacteurs
      dernière édition par

      Mouai … non

      
      public class CommandTutoriel extends CommandBase
      {
      @Override
      public String getCommandName()
      {
      return "broadcast";
      }
      
      @Override
      public String getCommandUsage(ICommandSender sender)
      {
      return "broadcast <text>";
      }
      
      @Override
      public void processCommand(ICommandSender sender, String[] arg){
      if(arg.length > 0) ClassePrincipale.network.sendToAll(new TonPacket(arg));
      }
      }
      
      ```</text>
      1 réponse Dernière réponse Répondre Citer 0
      • SkylleHDS Hors-ligne
        SkylleHD
        dernière édition par

        Sa ne fonctionne toujours pas  😐 
        Je n’arrive pas à le faire fonctionner

        [/font…

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

          Tu en est où pour le moment ?
          Envoie : La classe de ta commande, ta classe principale, ton packet

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

            La class Principal :

            package StrafeMod;
            
            import java.awt.Color;
            import org.lwjgl.opengl.GL11;
            import net.minecraft.client.Minecraft;
            import net.minecraft.client.gui.FontRenderer;
            import net.minecraft.client.gui.GuiIngame;
            import net.minecraft.client.gui.GuiIngameMenu;
            import net.minecraft.client.gui.GuiMainMenu;
            import net.minecraft.client.gui.GuiScreen;
            import net.minecraft.client.renderer.OpenGlHelper;
            import net.minecraft.init.Blocks;
            import net.minecraftforge.client.GuiIngameForge;
            import net.minecraftforge.client.event.ClientChatReceivedEvent;
            import net.minecraftforge.client.event.RenderGameOverlayEvent;
            import net.minecraftforge.common.MinecraftForge;
            import cpw.mods.fml.common.FMLCommonHandler;
            import cpw.mods.fml.common.Mod;
            import cpw.mods.fml.common.Mod.EventHandler;
            import cpw.mods.fml.common.event.FMLInitializationEvent;
            import cpw.mods.fml.common.event.FMLPostInitializationEvent;
            import cpw.mods.fml.common.event.FMLServerStartingEvent;
            import cpw.mods.fml.common.eventhandler.SubscribeEvent;
            import cpw.mods.fml.common.gameevent.TickEvent;
            import cpw.mods.fml.common.gameevent.TickEvent.Phase;
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            
               @Mod(modid = ModStrafe.MODID, version = ModStrafe.VERSION)
            
               public class ModStrafe
            
               {
            
                   public static final String MODID = "GuiInGame";
            
                   public static final String VERSION = "1.0";
            
            public static final String network = null;
            
                   protected String msgPlaying = "";
            
                   protected int msgPlayingUpFor = 0;
            
                   @EventHandler
            
                   public void init(FMLInitializationEvent event)
            
                   {
            
                       MinecraftForge.EVENT_BUS.register(this);
            
                   }
            
                   @EventHandler
                   public void serverStarting(FMLServerStartingEvent event)
                   {
            
                           event.registerServerCommand(new CommandTutoriel());
                   }
            
                   @SubscribeEvent
            
                   @SideOnly(Side.CLIENT)
            
                   public void onGuiIngameRender(RenderGameOverlayEvent.Post event)
            
                   {
            
                       if (this.msgPlayingUpFor > 0)
            
                       {
            
                           this.msgPlayingUpFor–;
            
                           String str = "" + this.msgPlaying;
            
                           Minecraft.getMinecraft().fontRenderer.drawString(str, (event.resolution.getScaledWidth() / 2) - (Minecraft.getMinecraft().fontRenderer.getStringWidth(str) / 2), event.resolution.getScaledHeight() - 75, Integer.MAX_VALUE);
            
                       }
            
                   }
            
            public void renderMsg(String message)
            
                   {
            
                     this.msgPlaying = message;
            
                     this.msgPlayingUpFor = 2000;
            
                   }
            
                   @SubscribeEvent
            
                   @EventHandler
            
                   public void onClientChatMessage(ClientChatReceivedEvent event)
            
                   {
                    if (event.message.getUnformattedText().startsWith(" ~") || event.message.getUnformattedText().startsWith("broadcast"))
                    {
                    System.out.println("DEBUG");
            
                           this.renderMsg(event.message.getFormattedText());
            
                           event.setCanceled(true);
            
                    }
            
                 }
            
               }
            

            La class commande :

            package StrafeMod;
            
            import java.io.File;
            
            import net.minecraft.command.CommandBase;
            import net.minecraft.command.ICommandSender;
            import sun.security.krb5.internal.Ticket;
            
            public class CommandTutoriel extends CommandBase
            {
            
               @Override
               public String getCommandName()
               {
                   return "broadcast";
               }
            
               @Override
               public String getCommandUsage(ICommandSender sender)
               {
                   return "broadcast <text>";
               }
            
               @Override
               public void processCommand(ICommandSender sender, String[] arg){
                   if(arg.length > 0)  ModStrafe.network.notifyAll();
               }        
            }
            
            

            Mon packet

            package StrafeMod;
            
            import java.io.File;
            
            public class BroadcastCommand extends CommandTutoriel {
            
            public static String configFilePath;
            
            public BroadcastCommand(String[] arg) {
            // TODO Auto-generated constructor stub
            }
            
            public static void read(File file) {
            
            }
            
            public static Object createFromTranslationKey(String string) {
            // TODO Auto-generated method stub
            return null;
            }
            
            }
            ```</text>

            [/font…

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

              Mets des balises java, parce que là …
              Ta classe de la commande est presque bonne, ensuite ton network (c’est un String wtf !) il faut que ce soit un SimpleNetworkWrapper que tu initialise ensuite dans la fonction init en faisant comme ça :

              
              network = NetworkRegistry.INSTANCE.newSimpleChannel(MODID);
              
              

              A la suite faut que enregistre ton packet :

              
              network.registerMessage(ClasseDuPacket.Handler.class, ClasseDuPacket.class, 0, Side.CLIENT);
              
              

              Et la classe du packet je vais pas te la faire, mais je t’invite à regarder ici : ~~http://www.minecraftforgefrance.fr/showthread.php?tid=1118#enregistrerPacket~~

              Et puis lit depuis le début, ça ne fera pas de mal http://www.minecraftforgefrance.fr/showthread.php?tid=1118#intro

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

                Sa nous ferai sa ? :

                @EventHandler
                       public void preInit(FMLPreInitializationEvent event)
                       {
                    NetworkRegistry.INSTANCE.newSimpleChannel("ModStrafe");
                    registerMessage(BroadcastCommand.class, CommandTutoriel.class, 0, Side.SERVER);
                       }
                       private void registerMessage(Class <broadcastcommand>class1, Class <commandtutoriel>class2, int i,
                Side server) {
                }
                
                
                public class CommandTutoriel extends CommandBase
                {
                
                   protected static Object network;
                
                @Override
                   public String getCommandName()
                   {
                       return "broadcast";
                   }
                
                   @Override
                   public String getCommandUsage(ICommandSender sender)
                   {
                       return "broadcast <text>";
                   }
                
                   @Override
                   public void processCommand(ICommandSender sender, String[] arg){
                    if(arg.length > 0)  ((SimpleNetworkWrapper) BroadcastCommand.network).sendToAll((IMessage) new BroadcastCommand(arg));
                       network = NetworkRegistry.INSTANCE.newSimpleChannel(ModStrafe.MODID);
                   }
                
                package StrafeMod;
                
                import java.io.File;
                
                import cpw.mods.fml.common.network.NetworkRegistry;
                import cpw.mods.fml.relauncher.Side;
                
                public class BroadcastCommand extends CommandTutoriel {
                
                public static String configFilePath;
                
                public BroadcastCommand(String[] arg) {
                }
                
                public static void read(File file)
                {
                
                }
                
                public static Object createFromTranslationKey(String string) {
                return null;
                }
                
                ```</text></commandtutoriel></broadcastcommand>

                [/font…

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

                  T’as juste au moins regardé le tutoriel que je t’ai envoyé et lu ce que j’ai écrit ?

                  EDIT : Non ça fait pas du tout un truc comme ça

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

                    J’ai essayé de suivre le tutoriel que tu ma envoyer.

                    [/font…

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

                      @‘BrokenSwing’:

                      Mets des balises java, parce que là …
                      Ta classe de la commande est presque bonne, ensuite ton network (c’est un String wtf !) il faut que ce soit un SimpleNetworkWrapper que tu initialise ensuite dans la fonction init en faisant comme ça :

                      
                      network = NetworkRegistry.INSTANCE.newSimpleChannel(MODID);
                      
                      

                      A la suite faut que enregistre ton packet :

                      
                      network.registerMessage(ClasseDuPacket.Handler.class, ClasseDuPacket.class, 0, Side.CLIENT);
                      
                      

                      La classe du packet on verra après fait déjà ce que j’avais dit

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

                        Déjà j’ai ajouter sa dans ma class principal:

                           @EventHandler
                           public void preInit(FMLPreInitializationEvent event) {
                              network.registerMessage(CommandTutoriel.Handler.class, CommandTutoriel.class, 0, Side.CLIENT);}
                        
                        

                        et ensuite dans mon packet :

                        public static void read(File file)
                        {
                        network = NetworkRegistry.INSTANCE.newSimpleChannel(ModStrafe.MODID);
                        }
                        

                        [/font…

                        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

                          network = NetworkRegistry.INSTANCE.newSimpleChannel(ModStrafe.MODID);
                          doit être dans la classe principale avant network.registerMessage sinon tu vas te manger un npe.
                          et tu ne devrais pas avoir de fonction nommé read …

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

                            @‘robin4002’:

                            network = NetworkRegistry.INSTANCE.newSimpleChannel(ModStrafe.MODID);
                            doit être dans la classe principale avant network.registerMessage sinon tu vas te manger un npe.
                            et tu ne devrais pas avoir de fonction nommé read …

                            Merci je viens de corriger mon erreur.

                            EDIT : Du coup maintenant je rajoute quoi ?

                            [/font…

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

                              Tu crée la classe de ton packet, c’est une classe nommée BroadcastPacket (par exemple) et qui implémente l’interface IMessage. Elle a aussi une classe interne qui est public et static, tu l’appelle Handler (c’est un nom clair) et tu lui implémente l’interface IMessageHandler<broadcastpacket, imessage=“”>, ensuite il faut que tu remplisse chaque fonction, tu aura dans la classe BroadcastPaacket un String privé appelé text qui sera le message à broadcast, tu crée un constructeur sans argument qui ne fait rien, et tu en crée un second qui prend un tableau de String en argument et dans le constructeur tu fait une boucle qui ajoute chaque String du tableau à ton champ text avec un espace entre chaque, dans la fonction toBytes(ByteBuf buf) tu enregistre ton champ text dans buf à l’aide de ByteBufUtils.writeUTF8String(buf, text), il faut implémenter cpw.mods.fml.common.network.ByteBufUtils, il faut que tu lise ton texte dans fromBytes et que tu l’assigne à ton champ text à l’aide de this.text = ByteBufUtils.readUTF8String(buf), ensuite faudra remplir la fonction onMessage</broadcastpacket,>

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

                                Bon merci de ta réponse fait que je revoie mon java pour pouvoir le faire !

                                [/font…

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

                                  Et l’event RenderGameOverlay, il est où là-dedans^^ ? Comment le message va-t-il être affiché au milieu de l’écran sans l’event ??

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

                                    C’est avec ça je crois Minecraft.getMinecraft().fontRenderer.drawString()

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

                                      Ah oui……C’est vrai, à voir, sa peut sûrement marcher 🙂

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

                                        Bah au pire, pour éviter un packet un peu useless pour ça

                                        au pire tu utilise le /title vanilla de MC, tu bidouille ta commande /broadcast pour passer par exemple de:

                                        /title @p title {text:“ceci est un texte de couleur bleue”,color:blue,bold:false,underlined:false,italic:false,strikethrough:false,obfuscated:false}

                                        à

                                        /broadcast &9ceci est un texte de couleur bleue

                                        et pour ce faire tu run ta commande qui en fait lancera le /title, c’est un raccourci certes, mais pour ce que tu veux faire ça suffis je pense ^^

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

                                          @‘ZeAmateis’:

                                          Bah au pire, pour éviter un packet un peu useless pour ça

                                          au pire tu utilise le /title vanilla de MC, tu bidouille ta commande /broadcast pour passer par exemple de:

                                          /title @p title {text:“ceci est un texte de couleur bleue”,color:blue,bold:false,underlined:false,italic:false,strikethrough:false,obfuscated:false}

                                          à

                                          /broadcast &9ceci est un texte de couleur bleue

                                          et pour ce faire tu run ta commande qui en fait lancera le /title, c’est un raccourci certes, mais pour ce que tu veux faire ça suffis je pense ^^

                                          Le /title de ne se fais que en 1.8 normalement !

                                          [/font…

                                          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