Erreur de création de Custom Main Menu



  • Bonjour, j'ai fais un custom main menu et quand je clique sur un bouton rien ne se passe, si vous voulez mon code dites le moi mais sinon je ne sais pas trop comment faire...



  • Si on a pas ton code on peut pas vraiment t'aider si c'est pour debug quelque chose



  • Je t'envois ça



  • public class GuiCustomMainMenu extends GuiScreen implements GuiYesNoCallback
    {
        private static final Logger logger = LogManager.getLogger();
    
        /** The RNG used by the Main Menu Screen. */
        private static final Random rand = new Random();
    
        /** Counts the number of screen updates. */
        private float updateCounter;
    
        /** The splash message. */
        private String splashText;
        private GuiButton buttonResetDemo;
    
        /** Timer used to rotate the panorama, increases every tick. */
        private int panoramaTimer;
    
        /**
         * Texture allocated for the current viewport of the main menu's panorama background.
         */
        private DynamicTexture viewportTexture;
        private final Object field_104025_t = new Object();
        private String field_92025_p;
        private String field_146972_A;
        private String field_104024_v;
        private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
        private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png");
    
        /** An array of all the paths to the panorama pictures. */
        private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation(Reference.MOD_ID + ":textures/gui/title/background/background.png")};
        public static final String field_96138_a = "Please click " + EnumChatFormatting.UNDERLINE + "here" + EnumChatFormatting.RESET + " for more information.";
        private int field_92024_r;
        private int field_92023_s;
        private int field_92022_t;
        private int field_92021_u;
        private int field_92020_v;
        private int field_92019_w;
        private ResourceLocation field_110351_G;
        private static final String __OBFID = "CL_00001154";
    
        private static final ResourceLocation logo = new ResourceLocation(Reference.MOD_ID + ":textures/gui/title/background/logo.png");
        private static final ResourceLocation background = new ResourceLocation(Reference.MOD_ID + ":textures/gui/title/background/background.png");
        private int textPosition = 440;
        private String text = "§cDeltanium, PvP Faction Moddé";
        
        public GuiCustomMainMenu()
        {
            this.field_146972_A = field_96138_a;
            this.splashText = "missingno";
            BufferedReader var1 = null;
    
            try
            {
                ArrayList var2 = new ArrayList();
                var1 = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
                String var3;
    
                while ((var3 = var1.readLine()) != null)
                {
                    var3 = var3.trim();
    
                    if (!var3.isEmpty())
                    {
                        var2.add(var3);
                    }
                }
    
                if (!var2.isEmpty())
                {
                    do
                    {
                        this.splashText = (String)var2.get(rand.nextInt(var2.size()));
                    }
                    while (this.splashText.hashCode() == 125780783);
                }
            }
            catch (IOException var12)
            {
                ;
            }
            finally
            {
                if (var1 != null)
                {
                    try
                    {
                        var1.close();
                    }
                    catch (IOException var11)
                    {
                        ;
                    }
                }
            }
    
            this.updateCounter = rand.nextFloat();
            this.field_92025_p = "";
    
            if (!GLContext.getCapabilities().OpenGL20 && !OpenGlHelper.func_153193_b())
            {
                this.field_92025_p = I18n.format("title.oldgl1", new Object[0]);
                this.field_146972_A = I18n.format("title.oldgl2", new Object[0]);
                this.field_104024_v = "https://help.mojang.com/customer/portal/articles/325948?ref=game";
            }
        }
    
        /**
         * Called from the main game loop to update the screen.
         */
        public void updateScreen()
        {
            ++this.panoramaTimer;
            
            if (textPosition < 0 - mc.fontRenderer.getStringWidth(text))
        	{
        	    textPosition = width / 2 + 200;
        	}
        	textPosition -= 3; 
        	
        }
    
        /**
         * Returns true if this GUI should pause the game when it is displayed in single-player
         */
        public boolean doesGuiPauseGame()
        {
            return false;
        }
    
        /**
         * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
         */
        protected void keyTyped(char p_73869_1_, int p_73869_2_) {}
    
        /**
         * Adds the buttons (and other controls) to the screen in question.
         */
        public void initGui()
        {
            this.viewportTexture = new DynamicTexture(256, 256);
            this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture);
            Calendar var1 = Calendar.getInstance();
            var1.setTime(new Date());
    
            boolean var2 = true;
            int var3 = this.height / 4 + 28;
    
            this.addSingleplayerMultiplayerButtons(var3, 24);
            
    
            this.buttonList.add(new GuiButton(0, this.width / 2 - 100, var3 + 72 + 12, 98, 20, I18n.format(EnumChatFormatting.RED + "Options")));
            this.buttonList.add(new GuiButton(4, this.width / 2 + 2, var3 + 72 + 12, 98, 20, I18n.format(EnumChatFormatting.RED + "Quitter")));
            
            //this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, var3 + 72 + 12));
            
            Object var4 = this.field_104025_t;
    
            synchronized (this.field_104025_t)
            {
                this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p);
                this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A);
                int var5 = Math.max(this.field_92023_s, this.field_92024_r);
                this.field_92022_t = (this.width - var5) / 2;
                this.field_92021_u = ((GuiButton)this.buttonList.get(0)).height - 24;
                this.field_92020_v = this.field_92022_t + var5;
                this.field_92019_w = this.field_92021_u + 24;
            }
        }
    
        /**
         * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game.
         */
        private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_)
        {
        	this.buttonList.add(new GuiButton(1, this.width / 2 -100 , p_73969_1_ + 60, 200, 20, I18n.format(EnumChatFormatting.RED + "Solo")));
            this.buttonList.add(new GuiButton(19, this.width / 2 - 100, p_73969_1_ + 35, 200, 20, I18n.format(EnumChatFormatting.RED + "Rejoindre Dektanium")));
        }
    
        /**
         * Adds Demo buttons on Main Menu for players who are playing Demo.
         */
        private void addDemoButtons(int p_73972_1_, int p_73972_2_)
        {
            this.buttonList.add(new GuiButton(11, this.width / 2 - 100, p_73972_1_, I18n.format("menu.playdemo", new Object[0])));
            this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, p_73972_1_ + p_73972_2_ * 1, I18n.format("menu.resetdemo", new Object[0])));
            ISaveFormat var3 = this.mc.getSaveLoader();
            WorldInfo var4 = var3.getWorldInfo("Demo_World");
    
            if (var4 == null)
            {
                this.buttonResetDemo.enabled = false;
            }
        }
    
        protected void actionPerformed(GuiButton p_146284_1_)
        {
            if (p_146284_1_.id == 0)
            {
                this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
            }
    
            if (p_146284_1_.id == 5)
            {
                this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager()));
            }
    
            if (p_146284_1_.id == 1)
            {
                this.mc.displayGuiScreen(new GuiSelectWorld(this));
            }
    
            if (p_146284_1_.id == 2)
            {
                this.mc.displayGuiScreen(new GuiMultiplayer(this));
            }
    
            if (p_146284_1_.id == 14)
            {
                this.func_140005_i();
            }
    
            if (p_146284_1_.id == 4)
            {
                this.mc.shutdown();
            }
            
            if (p_146284_1_.id == 19) {
                    this.mc.displayGuiScreen(new GuiLoadingScreen());
                  }
    
            if (p_146284_1_.id == 11)
            {
                this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
            }
    
            if (p_146284_1_.id == 12)
            {
                ISaveFormat var2 = this.mc.getSaveLoader();
                WorldInfo var3 = var2.getWorldInfo("Demo_World");
    
                if (var3 != null)
                {
                    GuiYesNo var4 = GuiSelectWorld.func_152129_a(this, var3.getWorldName(), 12);
                    this.mc.displayGuiScreen(var4);
                }
            }
        }
    
        private void func_140005_i()
        {
            RealmsBridge var1 = new RealmsBridge();
            var1.switchToRealms(this);
        }
    
        public void confirmClicked(boolean p_73878_1_, int p_73878_2_)
        {
            if (p_73878_1_ && p_73878_2_ == 12)
            {
                ISaveFormat var6 = this.mc.getSaveLoader();
                var6.flushCache();
                var6.deleteWorldDirectory("Demo_World");
                this.mc.displayGuiScreen(this);
            }
            else if (p_73878_2_ == 13)
            {
                if (p_73878_1_)
                {
                    try
                    {
                        Class var3 = Class.forName("java.awt.Desktop");
                        Object var4 = var3.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                        var3.getMethod("browse", new Class[] {URI.class}).invoke(var4, new Object[] {new URI(this.field_104024_v)});
                    }
                    catch (Throwable var5)
                    {
                        logger.error("Couldn\'t open link", var5);
                    }
                }
    
                this.mc.displayGuiScreen(this);
            }
        }
    
        
        public static String readFile(String url) 
        {
            String text = "0";
            try 
            {
                URL location = new URL(url); 
                BufferedReader in = new BufferedReader(new InputStreamReader(location.openStream()));
                text = in.readLine();
            }
            catch (Exception e)
            {
                System.out.println(e);
            }
            return text; 
        }
    
        public void drawTextureWithOptionalSize(int x, int y, int u, int v, int width, int height, int uSize, int vSize)
        {
        	float scaledX = (float)1/uSize;
        	float scaledY = (float)1/vSize;
        	Tessellator tessellator = Tessellator.instance;
        	tessellator.startDrawingQuads();
        	tessellator.addVertexWithUV((double)(x + 0), (double)(y + height), (double)this.zLevel, (double)((float)(u + 0) * scaledX), (double)((float)(v + height) * scaledY));
        	tessellator.addVertexWithUV((double)(x + width), (double)(y + height), (double)this.zLevel, (double)((float)(u + width) * scaledX), (double)((float)(v + height) * scaledY));
        	tessellator.addVertexWithUV((double)(x + width), (double)(y + 0), (double)this.zLevel, (double)((float)(u + width) * scaledX), (double)((float)(v + 0) * scaledY));
        	tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)this.zLevel, (double)((float)(u + 0) * scaledX), (double)((float)(v + 0) * scaledY));
        	tessellator.draw();
        }
        
        public void drawLogo()
        { 	
        	GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
            this.mc.getTextureManager().bindTexture(logo);
            this.drawTextureWithOptionalSize(width / 2 - 50, height / 4 - 50, 0, 0, 100, 100, 100, 100);
        }
    
        public void drawBackground()
        {
            GL11.glDisable(GL11.GL_LIGHTING);
            GL11.glDisable(GL11.GL_FOG);
            Tessellator var2 = Tessellator.instance;
            GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
            mc.getTextureManager().bindTexture(background);
            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
            var2.startDrawingQuads();
            var2.addVertexWithUV(0.0D, height, 0.0D, 0.0D, 1.0D);
            var2.addVertexWithUV(width, height, 0.0D, 1.0D, 1.0D);
            var2.addVertexWithUV(width, 0.0D, 0.0D, 1.0D, 0.0D);
            var2.addVertexWithUV(0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
            var2.draw();
        }
        
        	
    
        /**
         * Draws the screen and all the components in it.
         */
        public void drawScreen(int par1, int par2, float par3)
        {
        	
        	drawBackground();
            drawLogo();
            
            //this.drawGradientRect(0, 0, width, 15, 2130706433, 2130706433);
            //this.drawString(this.fontRendererObj, text, this.textPosition, 4, 0xB9121B);
            
            /*
            GL11.glPushMatrix();
            GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F);
            GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
            float var8 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
            var8 = var8 * 80.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
            GL11.glScalef(var8, var8, var8);
            this.drawCenteredString(this.fontRendererObj, "Allez viens ! On est bien !", - 10,  -15, -256);
            GL11.glPopMatrix();*/
            
            drawRect(0, 0, width, 12, 0x66000000);
            this.drawString(this.fontRendererObj, text, this.textPosition, 2, 0xFFFFFFFF);
            super.drawScreen(par1, par2, par3);
        }
        /**
         * Called when the mouse is clicked.
         */
        protected void mouseClicked(int p_73864_1_, int p_73864_2_, int p_73864_3_)
        {
            super.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_);
            Object var4 = this.field_104025_t;
    
            synchronized (this.field_104025_t)
            {
                if (this.field_92025_p.length() > 0 && p_73864_1_ >= this.field_92022_t && p_73864_1_ <= this.field_92020_v && p_73864_2_ >= this.field_92021_u && p_73864_2_ <= this.field_92019_w)
                {
                    GuiConfirmOpenLink var5 = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true);
                    var5.func_146358_g();
                    this.mc.displayGuiScreen(var5);
                }
            }
        }
    }
    
    public class GuiLoadingScreen
      extends GuiScreen
    {
      private final ResourceLocation backGround = new ResourceLocation(Reference.MOD_ID + ":textures/gui/title/background/background.png");
      private int updateCounter = 0;
      String chargementText = "§6Chargement du Serveur ...";
      String serverName = "§cDeltanium";
      String texteHaut = "§6Connexion au serveur ! ...";
      String bfsName = "§6Serveur: Faction";
      
      public void initGui()
      {
        this.buttonList.add(new GuiButton(9, this.width - 100, this.height - 30, 60, 20, "Annuler"));
      }
      
      public void updateScreen()
      {
        this.updateCounter += 1;
        if (this.updateCounter == 100) {
          this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, "deltanium.omgcraft.fr", 25565)); // Ip = L'ip du serveur ! Port = Port du serveur.
        }
        if (this.updateCounter >= 101) {
          this.mc.displayGuiScreen(new GuiMainMenu());
        }
      }
      
      public void drawBack()
      {
        GL11.glViewport(0, 0, 256, 256);
        this.mc.getTextureManager().bindTexture(this.backGround);
        GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
        Tessellator tessellator = Tessellator.instance;
        tessellator.startDrawingQuads();
        GL11.glTexParameteri(3553, 10241, 9729);
        GL11.glTexParameteri(3553, 10240, 9729);
        tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
        int k = this.width;
        int l = this.height;
        tessellator.addVertexWithUV(0.0D, 0.0D, this.zLevel, 0.0D, 0.0D);
        tessellator.addVertexWithUV(0.0D, l, this.zLevel, 0.0D, 1.0D);
        tessellator.addVertexWithUV(k, l, this.zLevel, 1.0D, 1.0D);
        tessellator.addVertexWithUV(k, 0.0D, this.zLevel, 1.0D, 0.0D);
        tessellator.draw();
      }
      
      public void drawScreen(int par1, int par2, float par3)
      {
        drawBack();
        
        drawHorizontalLine(0, this.width, this.height - 47, 1426063360);
        drawHorizontalLine(0, this.width, this.height - 46, 1426063360);
        drawRect(0, this.height - 45, this.width, this.height, 1426063360);
        
        drawRect(this.width / 2 - 101, this.height - 28, this.width / 2 + 101, this.height - 15, 489386);
        drawRect(this.width / 2 - 100, this.height - 27, this.width / 2 + 100, this.height - 16, 2013243904);
        
        drawRect(this.width / 2 - 100, this.height - 27, this.width / 2 - 100 + this.updateCounter * 2, this.height - 16, -1996510720);
        
        drawCenteredString(this.fontRendererObj, this.chargementText, this.width / 2, this.height - 40, 16777215);
        
        String percent = this.updateCounter + "§6%";
        drawCenteredString(this.fontRendererObj, percent, this.width / 2, this.height - 10, 16777215);
        
        drawCenteredString(this.fontRendererObj, this.texteHaut, this.width / 2, 1, -1);
        
        drawString(this.fontRendererObj, this.bfsName, 10, this.height - 30, -1);
        
        drawString(this.fontRendererObj, this.serverName, 10, this.height - 19, -1);
        
        super.drawScreen(par1, par2, par3);
      }
      
      public void actionPerformed(GuiButton button)
      {
        if (button.id == 9) {
          this.mc.displayGuiScreen(new GuiMainMenu());
        }
      }
    }
    


  • yo, ta check avec un println si ta fonction actionPerformed est appelé quand tu clic k sur un boutton ?



  • Oui ça envois un message



  • dans ce cas tes condition sont foireuse ou le code exec est eroné



  • Bah quelqu'un peut m'aider ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    C'est quand tu clics sur quel bouton qu'il ne se passe rien ?



  • tous sauf le "quitter"



  • C'est bon j'ai bougé deux lignes de code et ça marche ahah, donc je vous dis merci quand même. Je passe en résolu.



  • Juste je ne vois pas le bouton pour mettre en résolu c'est normal ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    Le post n'était plus marqué comme étant une demande d'aide, c'est pour cela que le bouton résolu n'était plus là.


Log in to reply