• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Recherche affichage pour un broadcast

    Sans suite
    5
    37
    6271
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SkylleHD
      SkylleHD last edited by

      Bonjour,

      J’ai un problème, je n’arrive pas à ajouter ma commande :“/broadcast” dans mon mod d’affichage de texte central.
      j’ai suivi ce tutoriel ::::
      pour afficher les noms des factions quand on passe dans les claims mais je n’arrive pas à
      ajouter le “/broadcast”.

      Voici un exemple de ce que je voudrais faire :

      !
      :::
      ! Voici mon code (au cas où vous en auriez besoin) :

      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.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";
      >!        protected String msgPlaying = "";
      >!        protected int msgPlayingUpFor = 0;
      >!        @EventHandler
      >!        public void init(FMLInitializationEvent event)
      >!        {
      >!            FMLCommonHandler.instance().bus().register(this);
      >!            MinecraftForge.EVENT_BUS.register(this);
      >!        }
      >!        @SubscribeEvent
      >!        @SideOnly(Side.CLIENT)
      >!        public void onGuiIngameRender(RenderGameOverlayEvent.Text 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() - 50, Integer.MAX_VALUE);
      >!            }
      >!        }
      >! public void renderMsg(String message)
      >!        {
      >!          this.msgPlaying = message;
      >!          this.msgPlayingUpFor = 2250;
      >!        }
      >!        
      >!        @SubscribeEvent
      >!        @EventHandler
      >!        public void onClientChatMessage(ClientChatReceivedEvent event)
      >!        {
              if (event.message.getUnformattedText().startsWith(" ~"))
              {
              System.out.println("DEBUG");
      >!                this.renderMsg(event.message.getFormattedText());
      
      >!                event.setCanceled(true);
              }
      >!      }
      
      >!    }
      

      ! La version de mon mod et en 1.7.10.
      ! Merci pour vos réponses ! 
      Bonne Année à tous !  😛

      [/font…

      1 Reply Last reply Reply Quote 0
      • Deleted
        Deleted last edited by

        Déjà cette ligne est inutile
        FMLCommonHandler.instance().bus().register(this);

        Ensuite il faudrait peut-être regarder le message que je t’ai envoyé sur le premier topic où t’as posté. Voici le lien du tuto sur les commandes, t’aurai quand même pu faire une recherche
        http://www.minecraftforgefrance.fr/showthread.php?tid=299

        Après si tu souhaites passer par l’event ClientChatReceivedEvent , ce qui est une bonne idée aussi, il faudrait déjà que tu comprennes à quoi cette condition sert
        if (event.message.getUnformattedText().startsWith(" ~")
        Ou plutôt qu’est-ce que tu devrais mettre pour qu’elle t’aide à résoudre ton problème. Je n’ai pas de workspace sous la main, donc je ne pourrai t’aider que ce soir 😉

        1 Reply Last reply Reply Quote 0
        • SkylleHD
          SkylleHD last edited by

          [size=smallEnsuite il faudrait peut-être regarder le message que je t’ai envoyé sur le premier topic où t’as posté. Voici le lien du tuto sur les commandes, t’aurai quand même pu faire une recherche]

          [size=smallhttp://www.minecraftforgefrance.fr/showt…hp?tid=299]

          Je l’ai vu se matin, je les tester mais je n’est pas réussit a le faire . J’ai un problème avec : [font=monospaceChatMessageComponent je n’arrive pas à l’importer.]
          Et ensuite je juste de commencer à modder.(Je ne sais pas faire grand chose)
          Je ne sais pas se que veut dire cette condition : [size=smallif (event.message.getUnformattedText().startsWith(" ~")]

          [size=smallMerci de ta réponse !]

          [/font…

          1 Reply Last reply Reply Quote 0
          • Deleted
            Deleted last edited by

            Le tutoriel n’est plus à jour. Il faudrait que tu regardes plus attentivement en attendant ce soir.
            Mais pour une simple commande le plus simple serait de passer par l’event.
            Cette condition :
            if (event.message.getUnformattedText().startsWith(" ~")
            On peut la traduire comme : “SI un message non-formatté commence par " ~” " Donc ta condition, pour ce que tu souhaites faire, ne sert strictement à rien Il faudrait que tu voies si le message commence par “/broadcast” en virant ce que la console te dira juste avant, à savoir le pseudo du joueur et un tas d’autres chose. Encore une fois si tu débutes, je te conseille de revoir tes bases en java, et d’attendre une autre réponse si tu n’y arrives vraiment pas 😉

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

              Regarder que le message commencer par /broadcast ne fonctionnera pas car le client n’a aucune idée de la commande qui a été utilisé. Il reçoit juste le texte, donc dans le cas de l’image du premier message il recevra [Message] test

              1 Reply Last reply Reply Quote 0
              • SkylleHD
                SkylleHD last edited by

                Du coup on fait comment pour détecter un /broadcast ?

                [/font…

                1 Reply Last reply Reply Quote 0
                • Deleted
                  Deleted last edited by

                  J’imagine que c’est le serveur qui lancera la commande /broadcast, pas un joueur ?

                  EDIT = Si il s’agit d’un joueur, voici une piste pour débuter :

                  
                  String message = event.message.getUnformattedText().substring(Minecraft.getMinecraft().getSession().getUsername().length() + 3, event.message.getUnformattedText().length());
                  if(message.equals("broadcast"))
                  System.out.println("ton code");
                  
                  

                  J’ai un problème, c’est qu’ajouter un / tout devant n’est pas accepté par le système de commandes inclu dans MC. On aurait pu s’en douter 😕
                  Du coup soit on continue en cherchant une solution, soit tu te contentes de simplement ajouter /broadcast sans slash. A toi de voir 😃
                  Après je n’ai pas testé comment on aurait dû procéder si la commande avait été exécutée par la console directement, à la place d’un joueur. Mais au pire tu peux feinter en faisant dire au joueur, rentré dans son claim qu’il vient de dire /broadcast et le message s’affichera. Mais du coup ce qu’il n’a normalement pas dit s’affichera dans la console ! Ce qui n’est pas non plus la meilleure solution…

                  Le mieux resterait vraiment de se servir du tuto fait exprès 😉

                  1 Reply Last reply Reply Quote 0
                  • BrokenSwing
                    BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                    Faire une commande est simple pourtant, il faut enregistrer la commande comme dit dans le tuto (dans l’event FMLServerStartingEvent) et la commande est une classe extends CommandBase (comme dit dans le tuto) :

                    Exemple :

                    
                    public class CommandReloadConfig extends CommandBase {
                    
                    @Override
                    public String getCommandName() {
                    return "rsreload";
                    }
                    
                    @Override
                    public String getCommandUsage(ICommandSender sender) {
                    return null;
                    }
                    
                    @Override
                    public int getRequiredPermissionLevel()
                    {
                    return 1;
                    }
                    
                    @Override
                    public void processCommand(ICommandSender sender, String[] args) {
                    ConfigurationLoader.read(new File(ConfigurationLoader.configFilePath));
                    sender.addChatMessage(new ChatComponentText("Configuration file reloaded"));
                    }
                    
                    

                    Dans processCommand on envoie un packet au client qui display le message à son écran

                    1 Reply Last reply Reply Quote 0
                    • Deleted
                      Deleted last edited by

                      Pas besoin d’envoyer de packet, les commandes sont déjà côté client.

                      1 Reply Last reply Reply Quote 0
                      • BrokenSwing
                        BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                        Tu es sûr ? Si c’est le cas pas besoin de packet effectivement

                        1 Reply Last reply Reply Quote 0
                        • Deleted
                          Deleted last edited by

                          Tu me mets le doute x)
                          Faudra faire des tests aujourd’hui alors.

                          1 Reply Last reply Reply Quote 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                            Les commandes sont tous exécuté côté serveur. player.addChatMessage envoie un paquet au client.

                            @‘SkylleHD’:

                            Du coup on fait comment pour détecter un /broadcast ?

                            Je ne suis pas sûr qu’on puisse. Le mieux c’est de faire une commande custom qui envoie un paquet au client et à l’arrivé de ce paquet le client affiche le message.

                            1 Reply Last reply Reply Quote 0
                            • SkylleHD
                              SkylleHD last edited by

                              Ok merci a tous pour vos réponses je vais tester sa tout de suite ! Et je vous dit si sa fonctione.  😄

                              [/font…

                              1 Reply Last reply Reply Quote 0
                              • SkylleHD
                                SkylleHD last edited by

                                1. String message = event.message.getUnformattedText().substring(Minecraft.getMinecraft().getSession().getUsername().length() + 3, event.message.getUnformattedText().length());
                                2. if(message.equals(“broadcast”))
                                3. System.out.println(“ton code”);

                                Le “ton code” je mais quoi dedans ? pour que sa fonction.

                                1. public class CommandReloadConfig extends CommandBase {

                                2. @Override

                                3. public String getCommandName() {

                                4. return “rsreload”;

                                5. }

                                6. @Override

                                7. public String getCommandUsage(ICommandSender sender) {

                                8. return null;

                                9. }

                                10. @Override

                                11. public int getRequiredPermissionLevel()

                                12. {

                                13. return 1;

                                14. }

                                15. @Override

                                16. public void processCommand(ICommandSender sender, String[] args) {

                                17. ConfigurationLoader.read(new File(ConfigurationLoader.configFilePath));

                                18. sender.addChatMessage(new ChatComponentText(“Configuration file reloaded”));

                                19. }

                                J’ai un problème avec le “ConfigurationLoader” il ne le trouve pas sur eclipse.

                                [/font…

                                1 Reply Last reply Reply Quote 0
                                • BrokenSwing
                                  BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                                  C’était un exemple, ici c’est une commande pour reload le fichier de configuration d’un mod, c’est normal qu’il ne trouve pas ConfigurationLoader qui est une classe que j’ai créé, dans processCommand il faut que tu envoie un packet au client

                                  1 Reply Last reply Reply Quote 0
                                  • SkylleHD
                                    SkylleHD last edited by

                                    @‘BrokenSwing’:

                                    C’était un exemple, ici c’est une commande pour reload le fichier de configuration d’un mod, c’est normal qu’il ne trouve pas ConfigurationLoader qui est une classe que j’ai créé, dans processCommand il faut que tu envoie un packet au client

                                    Du coup je dois crée une class Broadcast ?

                                    [/font…

                                    1 Reply Last reply Reply Quote 0
                                    • BrokenSwing
                                      BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                                      Tu crée une classe qui s’appelle par exemple BroadcastCommand qui est extends CommandBase et dans getCommandName() tu met return “broadcast”;
                                      Dans processCommand tu envoie un packet au joueurs.

                                      Ensuite il faut que tu enregistre la commande avec l’event FMLServerStartingEvent en faisaint un truc comme event.registerServerCommand(new BroadcastCommand());

                                      1 Reply Last reply Reply Quote 0
                                      • SkylleHD
                                        SkylleHD last edited by

                                        Sa serai un truc comme sa ?

                                        package StrafeMod;
                                        
                                        import java.io.File;
                                        
                                        import net.minecraft.command.CommandBase;
                                        import net.minecraft.command.ICommandSender;
                                        
                                        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[] arguments){
                                        
                                        BroadcastCommand.read(new File(BroadcastCommand.configFilePath));
                                        
                                        sender.getCommandSenderName();
                                        }
                                        }
                                        

                                        avec sa :

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

                                        [/font…

                                        1 Reply Last reply Reply Quote 0
                                        • BrokenSwing
                                          BrokenSwing Moddeurs confirmés Rédacteurs last edited by

                                          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 Reply Last reply Reply Quote 0
                                          • SkylleHD
                                            SkylleHD last edited by

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

                                            [/font…

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB