MFF

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

    Ouvrir un GUI quand un texte apparait dans le chat

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    11 Messages 3 Publieurs 1.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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      Salut, qu’est-ce qui ne va pas avec le code actuel ?

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

        Bha en fait sa n’ouvre pas le gui…
        Alors que sur mon serveur j’ai mon plugin qui envoi le message dans le chat. C’est justement pour sa que je ne comprend pas…

        Envoyé de mon ZTE BLADE V7 LITE en utilisant Tapatalk

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

          Peint dans ton Event le String donné par event.message.getFormattedText() afin de voir s’il commencé réellement par “/login”. De mémoire, je crois qu’il commencé d’abord par un crochet suivis du pseudo du sender.

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

            Comment je peut faire ça ?
            Je suis pas douer dans ce genre de chose…

            Envoyé de mon ZTE BLADE V7 LITE en utilisant Tapatalk

            Edit:
            J’ai réussi grace atoi, MERCI beaucoup ! ❤

            Editx2:

            J’ai un crash lorsque je clique sur le bouton qui exécute la commande /login ****** 😕
            Crash report:

            –-- Minecraft Crash Report ----
            // Surprise! Haha. Well, this is awkward.
            
            Time: 28/07/17 12:51
            Description: Unexpected error
            
            java.lang.StringIndexOutOfBoundsException: String index out of range: -5
            at java.lang.String.substring(Unknown Source)
            at fr.playflop.legitium.common.MainClass.onClientChatMessage(MainClass.java:273)
            at cpw.mods.fml.common.eventhandler.ASMEventHandler_35_MainClass_onClientChatMessage_ClientChatReceivedEvent.invoke(.dynamic)
            at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
            at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140)
            at net.minecraft.client.network.NetHandlerPlayClient.handleChat(NetHandlerPlayClient.java:793)
            at net.minecraft.network.play.server.S02PacketChat.processPacket(S02PacketChat.java:56)
            at net.minecraft.network.play.server.S02PacketChat.processPacket(S02PacketChat.java:83)
            at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
            at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:317)
            at net.minecraft.client.Minecraft.runTick(Minecraft.java:1694)
            at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1040)
            at net.minecraft.client.Minecraft.run(Minecraft.java:962)
            at net.minecraft.client.main.Main.main(Main.java:164)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
            at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
            at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
            at GradleStart.main(Unknown Source)
            
            A detailed walkthrough of the error, its code path and all known details is as follows:
            ---------------------------------------------------------------------------------------
            
            -- Head --
            Stacktrace:
            at java.lang.String.substring(Unknown Source)
            at fr.playflop.legitium.common.MainClass.onClientChatMessage(MainClass.java:273)
            at cpw.mods.fml.common.eventhandler.ASMEventHandler_35_MainClass_onClientChatMessage_ClientChatReceivedEvent.invoke(.dynamic)
            at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
            at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140)
            at net.minecraft.client.network.NetHandlerPlayClient.handleChat(NetHandlerPlayClient.java:793)
            at net.minecraft.network.play.server.S02PacketChat.processPacket(S02PacketChat.java:56)
            at net.minecraft.network.play.server.S02PacketChat.processPacket(S02PacketChat.java:83)
            at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
            at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:317)
            
            -- Affected level --
            Details:
            Level name: MpServer
            All players: 1 total; [EntityClientPlayerMP['PlayFlop'/366, l='MpServer', x=119,50, y=82,62, z=252,50]]
            Chunk stats: MultiplayerChunkCache: 441, 441
            Level seed: 0
            Level generator: ID 00 - default, ver 1\. Features enabled: false
            Level generator options: 
            Level spawn location: World: (112,64,256), Chunk: (at 0,4,0 in 7,16; contains blocks 112,0,256 to 127,255,271), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
            Level time: 5466227 game time, 39606228 day time
            Level dimension: 0
            Level storage version: 0x00000 - Unknown?
            Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
            Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false
            Forced entities: 15 total; [EntityClientPlayerMP['PlayFlop'/366, l='MpServer', x=119,50, y=82,62, z=252,50], EntitySpider['Spider'/130, l='MpServer', x=118,00, y=13,00, z=274,28], EntityZombie['Zombie'/108, l='MpServer', x=76,50, y=22,00, z=273,97], EntityChicken['Chicken'/142, l='MpServer', x=165,75, y=66,00, z=220,89], EntitySkeleton['Skeleton'/430, l='MpServer', x=90,50, y=50,00, z=280,50], EntitySkeleton['Skeleton'/432, l='MpServer', x=83,50, y=43,00, z=257,50], EntityCreeper['Creeper'/148, l='MpServer', x=166,00, y=10,00, z=232,50], EntitySkeleton['Skeleton'/118, l='MpServer', x=80,66, y=13,00, z=291,50], EntityZombie['Zombie'/217, l='MpServer', x=80,50, y=51,00, z=229,50], EntitySkeleton['Skeleton'/121, l='MpServer', x=86,50, y=35,00, z=288,50], EntityZombie['Zombie'/122, l='MpServer', x=85,50, y=35,00, z=288,50], EntitySkeleton['Skeleton'/285, l='MpServer', x=79,69, y=17,00, z=265,72], EntitySkeleton['Skeleton'/286, l='MpServer', x=85,50, y=18,00, z=270,50], EntityZombie['Zombie'/127, l='MpServer', x=111,47, y=15,00, z=273,97], EntityEnderman['Enderman'/415, l='MpServer', x=133,50, y=31,00, z=274,50]]
            Retry entities: 0 total; []
            Server brand: Spigot
            Server type: Non-integrated multiplayer server
            Stacktrace:
            at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
            at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2567)
            at net.minecraft.client.Minecraft.run(Minecraft.java:991)
            at net.minecraft.client.main.Main.main(Main.java:164)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
            at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
            at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
            at GradleStart.main(Unknown Source)
            
            – System Details --
            Details:
            Minecraft Version: 1.7.10
            Operating System: Windows 8.1 (amd64) version 6.3
            Java Version: 1.8.0_131, Oracle Corporation
            Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
            Memory: 856543456 bytes (816 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
            JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
            AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
            IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
            FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 7 mods loaded, 7 mods active
            States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
            UCHIJA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
            UCHIJA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) 
            UCHIJA Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar) 
            UCHIJA CodeChickenCore{1.0.7.47} [CodeChicken Core] (minecraft.jar) 
            UCHIJA EraKnight{1.0} [EraKnight] (bin) 
            UCHIJA craftguide{1.6.8.1} [CraftGuide] (c.zip) 
            UCHIJA reachdisplaymod{1.0} [Reach Display Mod] ([1.7.10]ReachDisplayMod-1.0.jar) 
            GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 381.65' Renderer: 'GeForce GT 740M/PCIe/SSE2'
            Launched Version: 1.7.10
            LWJGL: 2.9.1
            OpenGL: GeForce GT 740M/PCIe/SSE2 GL version 4.5.0 NVIDIA 381.65, NVIDIA Corporation
            GL Caps: Using GL 1.3 multitexturing.
            Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
            Anisotropic filtering is supported and maximum anisotropy is 16.
            Shaders are available because OpenGL 2.1 is supported.
            
            Is Modded: Definitely; Client brand changed to 'fml,forge'
            Type: Client (map_client.txt)
            Resource Packs: []
            Current Language: English (US)
            Profiler Position: N/A (disabled)
            Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
            Anisotropic Filtering: Off (1)
            

            Eclipse:

            Stacktrace:
            at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
            at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2567)
            at net.minecraft.client.Minecraft.run(Minecraft.java:991)
            at net.minecraft.client.main.Main.main(Main.java:164)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
            at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
            at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
            at GradleStart.main(Unknown Source)
            

            GuiLogin

            package fr.playflop.legitium.proxy;
            
            import java.util.Map.Entry;
            
            import net.minecraft.client.Minecraft;
            import net.minecraft.client.gui.FontRenderer;
            import net.minecraft.client.gui.GuiButton;
            import net.minecraft.client.gui.GuiScreen;
            import net.minecraft.client.gui.GuiTextField;
            import net.minecraft.client.resources.I18n;
            import net.minecraft.util.EnumChatFormatting;
            import net.minecraft.util.ResourceLocation;
            
            import org.lwjgl.input.Keyboard;
            import org.lwjgl.opengl.GL11;
            
            import cpw.mods.fml.client.config.GuiSlider;
            import fr.playflop.legitium.client.radio.RadioHandler;
            
            public class GuiLogin extends GuiScreen
            {
            private GuiTextField textfield;
            int guiWidth= 250; // Taille du gui (largeur)
            int guiHeight= 250;// Taille du gui (hauteur)
            public void initGui() {
            
            int posX = (this.width - guiWidth) / 2;
            int posY = (this.height - guiHeight) / 2;
            this.textfield = new GuiTextField(this.fontRendererObj, this.width / 2 - 78, this.height / 2 - 75, 150, 20);
                   this.buttonList.add(new GuiButton(10, this.width / 2 - 80, this.height / 2 - 45, 155, 20, I18n.format(EnumChatFormatting.GOLD + "Connection")));
            
            textfield.setMaxStringLength(16);
            textfield.setText("");
                   this.textfield.setFocused(false);
            
                }
            protected void actionPerformed(GuiButton button) {
                    switch (button.id) {
                        case 10:
                        String mdp = textfield.getText();
                        Minecraft.getMinecraft().thePlayer.sendChatMessage("/login " + mdp);
                            this.mc.displayGuiScreen((GuiScreen) null);
                            this.mc.setIngameFocus();
                            //System.out.println("/login " + mdp);
                            break;
            
                    }
                }
            @Override                                                               
            public void drawScreen(int x, int y, float ticks )
            {
            int guix =(width - guiWidth) /2 ;
            int guiy =(height - guiHeight) /2;
            
            GL11.glColor4f(1,1,1,1);
            drawDefaultBackground();
            
            mc.renderEngine.bindTexture(new ResourceLocation("eraknight:textures/gui/guilogin.png")); // Le chemin de ton GUI
            
            drawTexturedModalRect(guix, guiy, 0, 0, guiWidth, guiHeight);
            
            this.drawDefaultBackground();
            
            this.textfield.drawTextBox(); // On met ton textfield ici
            
            super.drawScreen(x, y, ticks);
            }
            @Override
            public boolean doesGuiPauseGame()
            {
            return false;
            }
            protected void keyTyped(char par1, int par2)
                {
                    super.keyTyped(par1, par2);
                    this.textfield.textboxKeyTyped(par1, par2);
                }
            
            public void updateScreen()
                {
                    super.updateScreen();
                }
            protected void mouseClicked(int x, int y, int btn) 
            {
                   super.mouseClicked(x, y, btn);
                   this.textfield.mouseClicked(x, y, btn);
            }
            
                //Minecraft.getMinecraft().displayGuiScreen(null);
            }
            
            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 problème est ici : at fr.playflop.legitium.common.MainClass.onClientChatMessage(MainClass.java:273)
              Il nous faudrait cette ligne

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

                @‘robin4002’:

                Le problème est ici : at fr.playflop.legitium.common.MainClass.onClientChatMessage(MainClass.java:273)
                Il nous faudrait cette ligne

                La voici:

                String message = event.message.getUnformattedText().substring(Minecraft.getMinecraft().getSession().getUsername().length() + 3, event.message.getUnformattedText().length());

                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

                  Tu essaies de coupe une partie de chaine plus grande que la chaine elle même.
                  Avant de faire ce code il faudrait la condition suivante :
                  if(message.length() > Minecraft.getMinecraft().getSession().getUsername().length() + 3)

                  pour éviter ce crash;

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

                    @‘robin4002’:

                    Tu essaies de coupe une partie de chaine plus grande que la chaine elle même.
                    Avant de faire ce code il faudrait la condition suivante :
                    if(message.length() > Minecraft.getMinecraft().getSession().getUsername().length() + 3)

                    pour éviter ce crash;

                    Le truc c’est que je veux pas diviser la ligne 😕

                    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

                      Hein ? Je ne comprends pas le problème.

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

                        J’ai réglé mon souci, merci ! 🙂

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB