• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Interface minecraft

1.7.x
1.7.10
6
47
5.7k
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.
  • Z
    Zokyt dernière édition par 12 juin 2017, 23:16

    package com.mod.exonia.gui;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.URI;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Random;
    import org.apache.commons.io.Charsets;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.opengl.GLContext;
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.client.GuiModList;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiButton;
    import net.minecraft.client.gui.GuiConfirmOpenLink;
    import net.minecraft.client.gui.GuiLanguage;
    import net.minecraft.client.gui.GuiMultiplayer;
    import net.minecraft.client.gui.GuiOptions;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.client.gui.GuiSelectWorld;
    import net.minecraft.client.gui.GuiYesNo;
    import net.minecraft.client.gui.GuiYesNoCallback;
    import net.minecraft.client.renderer.OpenGlHelper;
    import net.minecraft.client.renderer.Tessellator;
    import net.minecraft.client.renderer.texture.DynamicTexture;
    import net.minecraft.client.resources.I18n;
    import net.minecraft.util.EnumChatFormatting;
    import net.minecraft.util.MathHelper;
    import net.minecraft.util.ResourceLocation;
    import net.minecraft.world.demo.DemoWorldServer;
    import net.minecraft.world.storage.ISaveFormat;
    import net.minecraft.world.storage.WorldInfo;
    @SideOnly(Side.CLIENT)
    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 final ResourceLocation backGround = new ResourceLocation("moreitemfr", "textures/gui/menu.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";
       public GuiCustomMainMenu()
       {
           this.field_146972_A = field_96138_a;
           this.splashText = "missingno";
           BufferedReader bufferedreader = null;
           try
           {
               ArrayList arraylist = new ArrayList();
               bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
               String s;
               while((s = bufferedreader.readLine()) != null)
               {
                   s = s.trim();
                   if(!s.isEmpty())
                   {
                       arraylist.add(s);
                   }
               }
               if(!arraylist.isEmpty())
               {
                   do
                   {
                       this.splashText = (String)arraylist.get(rand.nextInt(arraylist.size()));
                   }
                   while(this.splashText.hashCode() == 125780783);
               }
           }
           catch(IOException ioexception1)
           {
               ;
           }
           finally
           {
               if(bufferedreader != null)
               {
                   try
                   {
                       bufferedreader.close();
                   }
                   catch(IOException ioexception)
                   {
                       ;
                   }
               }
           }
           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;
       }
       /**
        * 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 calendar = Calendar.getInstance();
           calendar.setTime(new Date());
           if(calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
           {
               this.splashText = "Happy birthday, ez!";
           }
           else if(calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
           {
               this.splashText = "Happy birthday, Notch!";
           }
           else if(calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
           {
               this.splashText = "Merry X-mas!";
           }
           else if(calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
           {
               this.splashText = "Happy new year!";
           }
           else if(calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
           {
               this.splashText = "OOoooOOOoooo! Spooky!";
           }
           boolean flag = true;
           int i = this.height / 4 + 48;
           if(this.mc.isDemo())
           {
               this.addDemoButtons(i, 24);
           }
           else
           {
               this.addSingleplayerMultiplayerButtons(i, 24);
           }
           this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("§dOptions", new Object[0])));
           this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("§7Quitter", new Object[0])));
           }
       private void addSingleplayerMultiplayerButtons(int x, int y)
       {
           this.buttonList.add(new GuiButton(1, this.width / 2 - 100, 236, 200, 20, I18n.format("§3Solo")));
           this.buttonList.add(new GuiButton(20, this.width / 2 - 100, 189 + y * 1, "§cFire Redemption"));
       }
       /**
        * Adds Demo buttons on Main Menu for players who are playing Demo.
        */
       private void addDemoButtons(int x, int y)
       {
           this.buttonList.add(new GuiButton(11, this.width / 2 - 100, x, I18n.format("menu.playdemo", new Object[0])));
           this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, x + y * 1, I18n.format("menu.resetdemo", new Object[0])));
           ISaveFormat isaveformat = this.mc.getSaveLoader();
           WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
           if(worldinfo == null)
           {
               this.buttonResetDemo.enabled = false;
           }
       }
       protected void actionPerformed(GuiButton button)
       {
           if(button.id == 0)
           {
               this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
           }
           if(button.id == 5)
           {
               this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager()));
           }
           if(button.id == 1)
           {
               this.mc.displayGuiScreen(new GuiSelectWorld(this));
           }
           if(button.id == 2)
           {
               this.mc.displayGuiScreen(new GuiMultiplayer(this));
           }
           if(button.id == 4)
           {
               this.mc.shutdown();
           }
           if(button.id == 6)
           {
               this.mc.displayGuiScreen(new GuiModList(this));
           }
           if(button.id == 11)
           {
               this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
           }
           if(button.id == 12)
           {
               ISaveFormat isaveformat = this.mc.getSaveLoader();
               WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
               if(worldinfo != null)
               {
                   GuiYesNo guiyesno = GuiSelectWorld.func_152129_a(this, worldinfo.getWorldName(), 12);
                   this.mc.displayGuiScreen(guiyesno);
               }
           }
           if(button.id == 20)
           {
               // TODO pour la connexion au serveur
               FMLClientHandler.instance().connectToServerAtStartup("46.105.178.115", 25565);
           }
           if(button.id == 21)
           {
               try
               {
                   Class oclass = Class.forName("java.awt.Desktop");
                   Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                   oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI("http://www.minecraftforgefrance.fr")});
               }
               catch(Throwable throwable)
               {
                   logger.error("Couldn\'t open link", throwable);
               }
           }
       }
       public void confirmClicked(boolean p_73878_1_, int id)
       {
           if(p_73878_1_ && id == 12)
           {
               ISaveFormat isaveformat = this.mc.getSaveLoader();
               isaveformat.flushCache();
               isaveformat.deleteWorldDirectory("Demo_World");
               this.mc.displayGuiScreen(this);
           }
           else if(id == 13)
           {
               if(p_73878_1_)
               {
                   try
                   {
                       Class oclass = Class.forName("java.awt.Desktop");
                       Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                       oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)});
                   }
                   catch(Throwable throwable)
                   {
                       logger.error("Couldn\'t open link", throwable);
                   }
               }
               this.mc.displayGuiScreen(this);
           }
       }
       private void renderBackGround()
       {
           GL11.glViewport(0, 0, 256, 256);
           this.mc.getTextureManager().bindTexture(backGround); 
           GL11.glDisable(GL11.GL_TEXTURE_2D);
           GL11.glEnable(GL11.GL_TEXTURE_2D);
           GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
           Tessellator tessellator = Tessellator.instance;
           tessellator.startDrawingQuads();
           GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
           GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
           tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
           int k = this.width;
           int l = this.height;
           tessellator.addVertexWithUV(0, 0, this.zLevel, 0, 0);
           tessellator.addVertexWithUV(0, l, this.zLevel, 0, 1);
           tessellator.addVertexWithUV(k, l, this.zLevel, 1, 1);
           tessellator.addVertexWithUV(k, 0, this.zLevel, 1, 0);
           tessellator.draw();
       }
       public void drawScreen(int x, int y, float partialTick)
       {
           GL11.glDisable(GL11.GL_ALPHA_TEST);
           this.renderBackGround();
           GL11.glEnable(GL11.GL_ALPHA_TEST);
           Tessellator tessellator = Tessellator.instance;
           short short1 = 274;
           int k = this.width / 2 - short1 / 2;
           byte b0 = 30;
           this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
           this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
           this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
           GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
           if((double)this.updateCounter < 1.0E-4D)
           {
               this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
               this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
               this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
               this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
               this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
           }
           else
           {
               this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
               this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
           }
           tessellator.setColorOpaque_I(-1);
           GL11.glPushMatrix();
           GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F);
           GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
           float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
           f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
           GL11.glScalef(f1, f1, f1);
           this.drawCenteredString(this.fontRendererObj, this.splashText, 0, 111101118, 1000000256);
           GL11.glPopMatrix();
           String s = "Minecraft 1.7.10";
           if(this.mc.isDemo())
           {
               s = s + " Demo";
           }
           String s1 = "";
           this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);
           if(this.field_92025_p != null && this.field_92025_p.length() > 0)
           {
               drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
               this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
               this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
           }
           super.drawScreen(x, y, partialTick);
       }
       /**
        * 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 object = 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 guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true);
                   guiconfirmopenlink.func_146358_g();
                   this.mc.displayGuiScreen(guiconfirmopenlink);
               }
           }
       }
    }
    @SubscribeEvent
        @SideOnly(Side.CLIENT)
        public void onTick(TickEvent.ClientTickEvent event)
        {
            Minecraft mc = FMLClientHandler.instance().getClient();
            if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
            {
                mc.displayGuiScreen(new GuiCustomMainMenu());
            }
            else if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiIngameMenu.class))
            {
                mc.displayGuiScreen(new GuiCustomMainMenu());
            }
        }

    Pk il veu pas s’afficher

    Est reponder moi au topic creer un dynamite Merci ^^

    1 réponse Dernière réponse Répondre Citer 0
    • ?
      Invité dernière édition par 13 juin 2017, 06:13

      Salut Zokit,
      Déjà cela serait beaucoup plus lisible pour nous si tu utilisais les bonnes balises pour tes codes…
      Ensuite sans vouloir te vexer je répondrai à ta question sur ce topic.

      BALISE CODE
      
      BALISE JAVA
      

      Ce problème résolu peut t’aider : 
      https://www.minecraftforgefrance.fr/showthread.php?tid=4463&highlight=mainmenu
      Ainsi que le magnifique tuto de Robin qui devrait marcher pour 1.7.10  il ne fonctionne pas sur 1.7.10 mais le 1er lien te suffit amplement:
      https://www.minecraftforgefrance.fr/showthread.php?tid=4480&highlight=mainmenu

      Quelque recherche aurait été la bienvenue avant de poster ce sujet.
      Amicalement,
      Baptiste.

      1 réponse Dernière réponse Répondre Citer 0
      • Z
        Zokyt dernière édition par 13 juin 2017, 10:08

        @‘BaptisteG’:

        Salut Zokit,
        Déjà cela serait beaucoup plus lisible pour nous si tu utilisais les bonnes balises pour tes codes…
        Ensuite sans vouloir te vexer je répondrai à ta question sur ce topic.

        BALISE CODE
        
        BALISE JAVA
        

        Ce problème résolu peut t’aider : 
        https://www.minecraftforgefrance.fr/showthread.php?tid=4463&highlight=mainmenu
        Ainsi que le magnifique tuto de Robin qui devrait marcher pour 1.7.10  il ne fonctionne pas sur 1.7.10 mais le 1er lien te suffit amplement:
        https://www.minecraftforgefrance.fr/showthread.php?tid=4480&highlight=mainmenu

        Quelque recherche aurait été la bienvenue avant de poster ce sujet.
        Amicalement,
        Baptiste.

        Merci j’ai était voir le tuto mais je n’arrive pas ?

        1 réponse Dernière réponse Répondre Citer 0
        • Deleted
          Deleted dernière édition par 13 juin 2017, 10:14

          Salut,
          on préfèrera utiliser l’event GuiOpenEvent, afin d’éviter un délai de changement à l’ouverture du menu principal ou d’autres menus. Par ailleurs, on se servira de l’opérateur instanceof, plutôt qu’un getClass().equals().
          Et enfin, as-tu bien enregistré ton event dans la méthode init ?

          1 réponse Dernière réponse Répondre Citer 0
          • Z
            Zokyt dernière édition par 13 juin 2017, 10:20

            @‘Plaigon’:

            Salut,
            on préfèrera utiliser l’event GuiOpenEvent, afin d’éviter un délai de changement à l’ouverture du menu principal ou d’autres menus. Par ailleurs, on se servira de l’opérateur instanceof, plutôt qu’un getClass().equals().
            Et enfin, as-tu bien enregistré ton event dans la méthode init ?

            Non justement je ces pas quoi mettre comme event dans la methode init jsuis perdu ^^’

            1 réponse Dernière réponse Répondre Citer 0
            • Deleted
              Deleted dernière édition par 13 juin 2017, 10:27

              Remplace TickEvent.ClientTickEvent par GuiOpenEvent, et sers toi de la variable event.gui, pour check si elle instanceof GuiMainMenu, auquel cas, tu feras ton mc.displayGuiScreen(new GuiCustomMainMenu());

              EDIT = dans ta condition au lieu de faire un displayGuiScreen, tu feras un event.gui = new GuiCustomMainMenu(), comme l’indique le tuto de SCAREX, juste avant la partie résultat

              1 réponse Dernière réponse Répondre Citer 0
              • Z
                Zokyt dernière édition par 13 juin 2017, 10:34

                @‘Plaigon’:

                Remplace TickEvent.ClientTickEvent par GuiOpenEvent, et sers toi de la variable event.gui, pour check si elle instanceof GuiMainMenu, auquel cas, tu feras ton mc.displayGuiScreen(new GuiCustomMainMenu());

                EDIT = dans ta condition au lieu de faire un displayGuiScreen, tu feras un event.gui = new GuiCustomMainMenu(), comme l’indique le tuto de SCAREX, juste avant la partie résultat

                Mais ces bien dans la classe principale de mon mod que je dois mettre ou dans ClienProxy ?
                Ces bon je les fait apres je dois faire ?

                @SubscribeEvent
                    @SideOnly(Side.CLIENT)
                    public void onTick(GuiOpenEvent event)
                    {
                        Minecraft mc = FMLClientHandler.instance().getClient();
                        if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
                        {
                            mc.displayGuiScreen(new GuiCustomMainMenu());
                        }
                        else if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiIngameMenu.class))
                        {
                            mc.displayGuiScreen(new GuiCustomMainMenu());
                        }
                    }
                1 réponse Dernière réponse Répondre Citer 0
                • Deleted
                  Deleted dernière édition par 13 juin 2017, 10:41

                  Tu peux placer code où tu le souhaites.
                  A la place d’utiliser mc.currentScreen, je t’avais recommandé la variable event.gui, puis également de remplacer mc.displayGuiScreen par un event.gui = new GuiCustomMainMenu());

                  1 réponse Dernière réponse Répondre Citer 0
                  • Z
                    Zokyt dernière édition par 13 juin 2017, 10:56

                    @‘Plaigon’:

                    Tu peux placer code où tu le souhaites.
                    A la place d’utiliser mc.currentScreen, je t’avais recommandé la variable event.gui, puis également de remplacer mc.displayGuiScreen par un event.gui = new GuiCustomMainMenu());

                    Comme sa ?

                    @SubscribeEvent
                        @SideOnly(Side.CLIENT)
                        public void onTick(GuiOpenEvent event)
                        {
                            Minecraft mc = FMLClientHandler.instance().getClient();
                            if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
                            {
                                event.gui = new GuiCustomMainMenu();
                            }
                            else if(event.gui != null && event.gui.getClass().equals(GuiIngameMenu.class))
                            {
                                event.gui = new GuiCustomMainMenu();
                            }
                        }
                    1 réponse Dernière réponse Répondre Citer 0
                    • Deleted
                      Deleted dernière édition par 13 juin 2017, 11:25

                      Non, relis mes messages.

                      1 réponse Dernière réponse Répondre Citer 0
                      • Z
                        Zokyt dernière édition par 13 juin 2017, 11:33

                        @‘Plaigon’:

                        Non, relis mes messages.

                        Bh ces quoi mon erreur ?


                        @‘Plaigon’:

                        Non, relis mes messages.

                        Bh ces quoi mon erreur ?

                        1 réponse Dernière réponse Répondre Citer 0
                        • ?
                          Invité dernière édition par 13 juin 2017, 11:45

                          Si tu veut que cela fonctionne place ceci dans ton preInit:

                          FMLCommonHandler.instance().bus().register(new GuiMainMenuEvent());
                          MinecraftForge.EVENT_BUS.register(new GuiMainMenuEvent());

                          Puis crée une classe GuiMainMenuEvent:

                          import cpw.mods.fml.client.FMLClientHandler;
                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                          import fr.baptiste.notifia.gui.GuiCustomMainMenu;
                          import net.minecraft.client.gui.GuiMainMenu;
                          import net.minecraftforge.client.event.GuiScreenEvent;
                          public class GuiMainMenuEvent 
                          {
                          @SubscribeEvent
                          public void onGuiInitPost(GuiScreenEvent.InitGuiEvent.Post event)
                          {
                          if(event.gui.getClass().equals(GuiMainMenu.class))
                          {
                          FMLClientHandler.instance().getClient().displayGuiScreen(new GuiCustomMainMenu());
                          }
                          }
                          }

                          La classe GuiCustomMainMenu sera ton MainMenu custom.

                          Au cas où, je te donne la classe menu de base:

                          package net.minecraft.client.gui;
                          import cpw.mods.fml.client.GuiModList;
                          import cpw.mods.fml.common.FMLCommonHandler;
                          import cpw.mods.fml.relauncher.Side;
                          import cpw.mods.fml.relauncher.SideOnly;
                          import java.io.BufferedReader;
                          import java.io.IOException;
                          import java.io.InputStreamReader;
                          import java.net.URI;
                          import java.util.ArrayList;
                          import java.util.Calendar;
                          import java.util.Date;
                          import java.util.List;
                          import java.util.Random;
                          import net.minecraft.client.Minecraft;
                          import net.minecraft.client.renderer.OpenGlHelper;
                          import net.minecraft.client.renderer.Tessellator;
                          import net.minecraft.client.renderer.texture.DynamicTexture;
                          import net.minecraft.client.resources.I18n;
                          import net.minecraft.realms.RealmsBridge;
                          import net.minecraft.util.EnumChatFormatting;
                          import net.minecraft.util.MathHelper;
                          import net.minecraft.util.ResourceLocation;
                          import net.minecraft.world.demo.DemoWorldServer;
                          import net.minecraft.world.storage.ISaveFormat;
                          import net.minecraft.world.storage.WorldInfo;
                          import net.minecraftforge.client.ForgeHooksClient;
                          import org.apache.commons.io.Charsets;
                          import org.apache.logging.log4j.LogManager;
                          import org.apache.logging.log4j.Logger;
                          import org.lwjgl.opengl.GL11;
                          import org.lwjgl.opengl.GLContext;
                          import org.lwjgl.util.glu.Project;
                          import com.google.common.base.Strings;
                          import com.google.common.collect.Lists;
                          @SideOnly(Side.CLIENT)
                          public class GuiMainMenu 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("textures/gui/title/background/panorama_0.png"), new ResourceLocation("textures/gui/title/background/panorama_1.png"), new ResourceLocation("textures/gui/title/background/panorama_2.png"), new ResourceLocation("textures/gui/title/background/panorama_3.png"), new ResourceLocation("textures/gui/title/background/panorama_4.png"), new ResourceLocation("textures/gui/title/background/panorama_5.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";
                              public GuiMainMenu()
                              {
                                  this.field_146972_A = field_96138_a;
                                  this.splashText = "missingno";
                                  BufferedReader bufferedreader = null;
                                  try
                                  {
                                      ArrayList arraylist = new ArrayList();
                                      bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
                                      String s;
                                      while ((s = bufferedreader.readLine()) != null)
                                      {
                                          s = s.trim();
                                          if (!s.isEmpty())
                                          {
                                              arraylist.add(s);
                                          }
                                      }
                                      if (!arraylist.isEmpty())
                                      {
                                          do
                                          {
                                              this.splashText = (String)arraylist.get(rand.nextInt(arraylist.size()));
                                          }
                                          while (this.splashText.hashCode() == 125780783);
                                      }
                                  }
                                  catch (IOException ioexception1)
                                  {
                                      ;
                                  }
                                  finally
                                  {
                                      if (bufferedreader != null)
                                      {
                                          try
                                          {
                                              bufferedreader.close();
                                          }
                                          catch (IOException ioexception)
                                          {
                                              ;
                                          }
                                      }
                                  }
                                  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;
                              }
                              /**
                               * 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 calendar = Calendar.getInstance();
                                  calendar.setTime(new Date());
                                  if (calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
                                  {
                                      this.splashText = "Happy birthday, ez!";
                                  }
                                  else if (calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
                                  {
                                      this.splashText = "Happy birthday, Notch!";
                                  }
                                  else if (calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
                                  {
                                      this.splashText = "Merry X-mas!";
                                  }
                                  else if (calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
                                  {
                                      this.splashText = "Happy new year!";
                                  }
                                  else if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
                                  {
                                      this.splashText = "OOoooOOOoooo! Spooky!";
                                  }
                                  boolean flag = true;
                                  int i = this.height / 4 + 48;
                                  if (this.mc.isDemo())
                                  {
                                      this.addDemoButtons(i, 24);
                                  }
                                  else
                                  {
                                      this.addSingleplayerMultiplayerButtons(i, 24);
                                  }
                                  this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0])));
                                  this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0])));
                                  this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12));
                                  Object object = 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 j = Math.max(this.field_92023_s, this.field_92024_r);
                                      this.field_92022_t = (this.width - j) / 2;
                                      this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24;
                                      this.field_92020_v = this.field_92022_t + j;
                                      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_, I18n.format("menu.singleplayer", new Object[0])));
                                  this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.format("menu.multiplayer", new Object[0])));
                                  GuiButton realmsButton = new GuiButton(14, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.format("menu.online", new Object[0]));
                                  GuiButton fmlModButton = new GuiButton(6, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, "Mods");
                                  fmlModButton.xPosition = this.width / 2 + 2;
                                  realmsButton.width = 98;
                                  fmlModButton.width = 98;
                                  this.buttonList.add(realmsButton);
                                  this.buttonList.add(fmlModButton);
                              }
                              /**
                               * 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 isaveformat = this.mc.getSaveLoader();
                                  WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                                  if (worldinfo == 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 == 6)
                                  {
                                      this.mc.displayGuiScreen(new GuiModList(this));
                                  }
                                  if (p_146284_1_.id == 11)
                                  {
                                      this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
                                  }
                                  if (p_146284_1_.id == 12)
                                  {
                                      ISaveFormat isaveformat = this.mc.getSaveLoader();
                                      WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                                      if (worldinfo != null)
                                      {
                                          GuiYesNo guiyesno = GuiSelectWorld.func_152129_a(this, worldinfo.getWorldName(), 12);
                                          this.mc.displayGuiScreen(guiyesno);
                                      }
                                  }
                              }
                              private void func_140005_i()
                              {
                                  RealmsBridge realmsbridge = new RealmsBridge();
                                  realmsbridge.switchToRealms(this);
                              }
                              public void confirmClicked(boolean p_73878_1_, int p_73878_2_)
                              {
                                  if (p_73878_1_ && p_73878_2_ == 12)
                                  {
                                      ISaveFormat isaveformat = this.mc.getSaveLoader();
                                      isaveformat.flushCache();
                                      isaveformat.deleteWorldDirectory("Demo_World");
                                      this.mc.displayGuiScreen(this);
                                  }
                                  else if (p_73878_2_ == 13)
                                  {
                                      if (p_73878_1_)
                                      {
                                          try
                                          {
                                              Class oclass = Class.forName("java.awt.Desktop");
                                              Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                                              oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)});
                                          }
                                          catch (Throwable throwable)
                                          {
                                              logger.error("Couldn\'t open link", throwable);
                                          }
                                      }
                                      this.mc.displayGuiScreen(this);
                                  }
                              }
                              /**
                               * Draws the main menu panorama
                               */
                              private void drawPanorama(int p_73970_1_, int p_73970_2_, float p_73970_3_)
                              {
                                  Tessellator tessellator = Tessellator.instance;
                                  GL11.glMatrixMode(GL11.GL_PROJECTION);
                                  GL11.glPushMatrix();
                                  GL11.glLoadIdentity();
                                  Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F);
                                  GL11.glMatrixMode(GL11.GL_MODELVIEW);
                                  GL11.glPushMatrix();
                                  GL11.glLoadIdentity();
                                  GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                                  GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F);
                                  GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
                                  GL11.glEnable(GL11.GL_BLEND);
                                  GL11.glDisable(GL11.GL_ALPHA_TEST);
                                  GL11.glDisable(GL11.GL_CULL_FACE);
                                  GL11.glDepthMask(false);
                                  OpenGlHelper.glBlendFunc(770, 771, 1, 0);
                                  byte b0 = 8;
                                  for (int k = 0; k < b0 * b0; ++k)
                                  {
                                      GL11.glPushMatrix();
                                      float f1 = ((float)(k % b0) / (float)b0 - 0.5F) / 64.0F;
                                      float f2 = ((float)(k / b0) / (float)b0 - 0.5F) / 64.0F;
                                      float f3 = 0.0F;
                                      GL11.glTranslatef(f1, f2, f3);
                                      GL11.glRotatef(MathHelper.sin(((float)this.panoramaTimer + p_73970_3_) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F);
                                      GL11.glRotatef(-((float)this.panoramaTimer + p_73970_3_) * 0.1F, 0.0F, 1.0F, 0.0F);
                                      for (int l = 0; l < 6; ++l)
                                      {
                                          GL11.glPushMatrix();
                                          if (l == 1)
                                          {
                                              GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
                                          }
                                          if (l == 2)
                                          {
                                              GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
                                          }
                                          if (l == 3)
                                          {
                                              GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
                                          }
                                          if (l == 4)
                                          {
                                              GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
                                          }
                                          if (l == 5)
                                          {
                                              GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F);
                                          }
                                          this.mc.getTextureManager().bindTexture(titlePanoramaPaths[l]);
                                          tessellator.startDrawingQuads();
                                          tessellator.setColorRGBA_I(16777215, 255 / (k + 1));
                                          float f4 = 0.0F;
                                          tessellator.addVertexWithUV(-1.0D, -1.0D, 1.0D, (double)(0.0F + f4), (double)(0.0F + f4));
                                          tessellator.addVertexWithUV(1.0D, -1.0D, 1.0D, (double)(1.0F - f4), (double)(0.0F + f4));
                                          tessellator.addVertexWithUV(1.0D, 1.0D, 1.0D, (double)(1.0F - f4), (double)(1.0F - f4));
                                          tessellator.addVertexWithUV(-1.0D, 1.0D, 1.0D, (double)(0.0F + f4), (double)(1.0F - f4));
                                          tessellator.draw();
                                          GL11.glPopMatrix();
                                      }
                                      GL11.glPopMatrix();
                                      GL11.glColorMask(true, true, true, false);
                                  }
                                  tessellator.setTranslation(0.0D, 0.0D, 0.0D);
                                  GL11.glColorMask(true, true, true, true);
                                  GL11.glMatrixMode(GL11.GL_PROJECTION);
                                  GL11.glPopMatrix();
                                  GL11.glMatrixMode(GL11.GL_MODELVIEW);
                                  GL11.glPopMatrix();
                                  GL11.glDepthMask(true);
                                  GL11.glEnable(GL11.GL_CULL_FACE);
                                  GL11.glEnable(GL11.GL_DEPTH_TEST);
                              }
                              /**
                               * Rotate and blurs the skybox view in the main menu
                               */
                              private void rotateAndBlurSkybox(float p_73968_1_)
                              {
                                  this.mc.getTextureManager().bindTexture(this.field_110351_G);
                                  GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
                                  GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
                                  GL11.glCopyTexSubImage2D(GL11.GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256);
                                  GL11.glEnable(GL11.GL_BLEND);
                                  OpenGlHelper.glBlendFunc(770, 771, 1, 0);
                                  GL11.glColorMask(true, true, true, false);
                                  Tessellator tessellator = Tessellator.instance;
                                  tessellator.startDrawingQuads();
                                  GL11.glDisable(GL11.GL_ALPHA_TEST);
                                  byte b0 = 3;
                                  for (int i = 0; i < b0; ++i)
                                  {
                                      tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F / (float)(i + 1));
                                      int j = this.width;
                                      int k = this.height;
                                      float f1 = (float)(i - b0 / 2) / 256.0F;
                                      tessellator.addVertexWithUV((double)j, (double)k, (double)this.zLevel, (double)(0.0F + f1), 1.0D);
                                      tessellator.addVertexWithUV((double)j, 0.0D, (double)this.zLevel, (double)(1.0F + f1), 1.0D);
                                      tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(1.0F + f1), 0.0D);
                                      tessellator.addVertexWithUV(0.0D, (double)k, (double)this.zLevel, (double)(0.0F + f1), 0.0D);
                                  }
                                  tessellator.draw();
                                  GL11.glEnable(GL11.GL_ALPHA_TEST);
                                  GL11.glColorMask(true, true, true, true);
                              }
                              /**
                               * Renders the skybox in the main menu
                               */
                              private void renderSkybox(int p_73971_1_, int p_73971_2_, float p_73971_3_)
                              {
                                  this.mc.getFramebuffer().unbindFramebuffer();
                                  GL11.glViewport(0, 0, 256, 256);
                                  this.drawPanorama(p_73971_1_, p_73971_2_, p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.rotateAndBlurSkybox(p_73971_3_);
                                  this.mc.getFramebuffer().bindFramebuffer(true);
                                  GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
                                  Tessellator tessellator = Tessellator.instance;
                                  tessellator.startDrawingQuads();
                                  float f1 = this.width > this.height ? 120.0F / (float)this.width : 120.0F / (float)this.height;
                                  float f2 = (float)this.height * f1 / 256.0F;
                                  float f3 = (float)this.width * f1 / 256.0F;
                                  tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
                                  int k = this.width;
                                  int l = this.height;
                                  tessellator.addVertexWithUV(0.0D, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F + f3));
                                  tessellator.addVertexWithUV((double)k, (double)l, (double)this.zLevel, (double)(0.5F - f2), (double)(0.5F - f3));
                                  tessellator.addVertexWithUV((double)k, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F - f3));
                                  tessellator.addVertexWithUV(0.0D, 0.0D, (double)this.zLevel, (double)(0.5F + f2), (double)(0.5F + f3));
                                  tessellator.draw();
                              }
                              /**
                               * Draws the screen and all the components in it.
                               */
                              public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_)
                              {
                                  GL11.glDisable(GL11.GL_ALPHA_TEST);
                                  this.renderSkybox(p_73863_1_, p_73863_2_, p_73863_3_);
                                  GL11.glEnable(GL11.GL_ALPHA_TEST);
                                  Tessellator tessellator = Tessellator.instance;
                                  short short1 = 274;
                                  int k = this.width / 2 - short1 / 2;
                                  byte b0 = 30;
                                  this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
                                  this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
                                  this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
                                  GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                                  if ((double)this.updateCounter < 1.0E-4D)
                                  {
                                      this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
                                      this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
                                      this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
                                      this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
                                      this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
                                  }
                                  else
                                  {
                                      this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
                                      this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
                                  }
                                  tessellator.setColorOpaque_I(-1);
                                  GL11.glPushMatrix();
                                  GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F);
                                  GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
                                  float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
                                  f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
                                  GL11.glScalef(f1, f1, f1);
                                  this.drawCenteredString(this.fontRendererObj, this.splashText, 0, -8, -256);
                                  GL11.glPopMatrix();
                                  String s = "Minecraft 1.7.10";
                                  if (this.mc.isDemo())
                                  {
                                      s = s + " Demo";
                                  }
                                  List <string>brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
                                  for (int i = 0; i < brandings.size(); i++)
                                  {
                                      String brd = brandings.get(i);
                                      if (!Strings.isNullOrEmpty(brd))
                                      {
                                          this.drawString(this.fontRendererObj, brd, 2, this.height - ( 10 + i * (this.fontRendererObj.FONT_HEIGHT + 1)), 16777215);
                                      }
                                  }
                                  ForgeHooksClient.renderMainMenu(this, fontRendererObj, width, height);
                                  String s1 = "Copyright Mojang AB. Do not distribute!";
                                  this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);
                                  if (this.field_92025_p != null && this.field_92025_p.length() > 0)
                                  {
                                      drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
                                      this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
                                      this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
                                  }
                                  super.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_);
                              }
                              /**
                               * 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 object = 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 guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true);
                                          guiconfirmopenlink.func_146358_g();
                                          this.mc.displayGuiScreen(guiconfirmopenlink);
                                      }
                                  }
                              }
                          }

                          Voila, je ne peut pas faire plus…</string>

                          1 réponse Dernière réponse Répondre Citer 0
                          • Z
                            Zokyt dernière édition par 13 juin 2017, 11:50

                            Merci je vais regarder sa quand je rentre chez moi

                            1 réponse Dernière réponse Répondre Citer 0
                            • BrokenSwing
                              BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par 13 juin 2017, 12:09

                              @BaptisteG Ce que tu viens de donner est assez moche comme code
                              @Zokyt Ce que Plaigon t’as indiquer est assez simple, utiliser event.gui et instanceof

                              @SubscribeEvent
                              @SideOnly(Side.CLIENT)
                              public void onGuiOpened(GuiOpenEvent event)
                              {
                              if(event.gui instanceof GuiMainMenu))
                              {
                              event.gui = new GuiCustomMainMenu();
                              }
                              }
                              1 réponse Dernière réponse Répondre Citer 0
                              • ?
                                Invité dernière édition par 13 juin 2017, 12:13

                                @‘BrokenSwing’:

                                @BaptisteG Ce que tu viens de donner est assez moche comme code
                                @Zokyt Ce que Plaigon t’as indiquer est assez simple, utiliser event.gui et instanceof

                                @SubscribeEvent
                                   @SideOnly(Side.CLIENT)
                                   public void onGuiOpened(GuiOpenEvent event)
                                   {
                                       if(event.gui instanceof GuiMainMenu))
                                       {
                                           event.gui = new GuiCustomMainMenu();
                                       }
                                   }

                                Que trouve tu de moche  ?

                                1 réponse Dernière réponse Répondre Citer 0
                                • BrokenSwing
                                  BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par 13 juin 2017, 12:18

                                  Tout.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • ?
                                    Invité dernière édition par 13 juin 2017, 12:28

                                    D’accord, sur un forum **d’entraide **un minimum d’explication est requis!!

                                    Amicalement

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • BrokenSwing
                                      BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par 13 juin 2017, 12:51

                                      Je ne voulais pas développer parce que c’est pas ton poste mais je vais le faire alors :

                                      FMLCommonHandler.instance().bus().register(new GuiMainMenuEvent());
                                      MinecraftForge.EVENT_BUS.register(new GuiMainMenuEvent());

                                      Pourquoi enregistrer ta classe d’event sur les deux bus vu que GuiScreenEvent n’est déclenché que sur le le bus Forge ? Ensuite je ne comprend pas pourquoi créer une instance si cela n’est pas nécessaire mais à la limite ça ce n’est pas trop grave. Du coup ce code deviendrais :

                                      MinecraftForge.EVENT_BUS.register(GuiMainMenuEventHandler.class);
                                      

                                      Ensuite :

                                      import cpw.mods.fml.client.FMLClientHandler;
                                      import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                      import fr.baptiste.notifia.gui.GuiCustomMainMenu;
                                      import net.minecraft.client.gui.GuiMainMenu;
                                      import net.minecraftforge.client.event.GuiScreenEvent;
                                      public class GuiMainMenuEvent
                                      {
                                      @SubscribeEvent
                                      public void onGuiInitPost(GuiScreenEvent.InitGuiEvent.Post event)
                                      {
                                      if(event.gui.getClass().equals(GuiMainMenu.class))
                                      {
                                      FMLClientHandler.instance().getClient().displayGuiScreen(new GuiCustomMainMenu());
                                      }
                                      }
                                      }

                                      Premièrement tu utilises InitGuiEvent.Post, ce qui n’est pas l’event adapter pour remplacer totalement le Gui, il faut utiliser GuiOpenEvent. Tu vérifies si le Gui est GuiMainMenu avec event.gui.getClass().equals(GuiMainMenu.class), or c’est beaucoup plus lent que d’utiliser instanceof. Et utiliser FMLClientHandler.instance().getClient() n’est pas utile, pour la raison qu’en utilisante GuiOpenEvent il suffit de remplacer le Gui qui va s’ouvrir par celui que l’on veut. On a alors :

                                      import net.minecraft.client.gui.GuiMainMenu;
                                      import net.minecraftforge.client.event.GuiOpenEvent;
                                      import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
                                      public class GuiMainMenuEventHandler {
                                      @SubscribeEvent
                                      public static void onGuiOpens(GuiOpenEvent event) {
                                      if(event.gui instanceof GuiMainMenu) {
                                      event.gui = new GuiCustomMainMenu();
                                      }
                                      }
                                      }
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • ?
                                        Invité dernière édition par 13 juin 2017, 12:59

                                        C’est plus compréhensible,
                                        En te souhaitant une bonne journée.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • Z
                                          Zokyt dernière édition par 13 juin 2017, 17:57

                                          Bonjours voici tout mes codes mais cela ne marche pas comment faire ? ```java
                                          package com.mod.exonia.proxy;

                                          import com.mod.exonia.dynamite.EntityDynamite;
                                          import com.mod.exonia.gui.GuiCustomMainMenu;
                                          import com.mod.exonia.gui.GuiMainMenuEvent;
                                          import com.mod.exonia.gui.GuiMainMenuEventHandler;
                                          import com.mod.exonia.init.ItemMod;

                                          import cpw.mods.fml.client.FMLClientHandler;
                                          import cpw.mods.fml.client.registry.RenderingRegistry;
                                          import cpw.mods.fml.common.FMLCommonHandler;
                                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                          import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
                                          import cpw.mods.fml.relauncher.Side;
                                          import cpw.mods.fml.relauncher.SideOnly;
                                          import net.minecraft.client.Minecraft;
                                          import net.minecraft.client.gui.GuiIngameMenu;
                                          import net.minecraft.client.gui.GuiMainMenu;
                                          import net.minecraft.client.renderer.entity.RenderSnowball;
                                          import net.minecraft.client.settings.KeyBinding;
                                          import net.minecraftforge.client.event.GuiOpenEvent;
                                          import net.minecraftforge.common.MinecraftForge;

                                          public class ClientProxy extends CommonProxy
                                          {

                                          public static KeyBinding keyBinding;

                                          @Override
                                              public void registerRenders()
                                              {
                                                  RenderingRegistry.registerEntityRenderingHandler(EntityDynamite.class, new RenderSnowball(ItemMod.dynamite));

                                          }

                                          public ClientProxy()
                                              {
                                                  FMLCommonHandler.instance().bus().register(new GuiMainMenuEvent());
                                                  MinecraftForge.EVENT_BUS.register(GuiMainMenuEventHandler.class);
                                              }

                                          @SubscribeEvent
                                              public void onEvent(KeyInputEvent event)
                                              {

                                          }

                                          private void keyPressed()
                                              {

                                          }

                                          }

                                          ```java
                                          package com.mod.exonia.gui;
                                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                          import net.minecraft.client.gui.GuiMainMenu;
                                          import net.minecraftforge.client.event.GuiOpenEvent;
                                          public class GuiMainMenuEventHandler {
                                              @SubscribeEvent
                                              public static void onGuiOpens(GuiOpenEvent event) {
                                                  if(event.gui instanceof GuiMainMenu) {
                                                      event.gui = new GuiCustomMainMenu();
                                                  }
                                              }
                                          }
                                          package com.mod.exonia.gui;
                                          import cpw.mods.fml.client.FMLClientHandler;
                                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                          import com.mod.exonia.gui.GuiCustomMainMenu;
                                          import net.minecraft.client.gui.GuiMainMenu;
                                          import net.minecraftforge.client.event.GuiScreenEvent;
                                          public class GuiMainMenuEvent 
                                          {
                                          @SubscribeEvent
                                          public void onGuiInitPost(GuiScreenEvent.InitGuiEvent.Post event)
                                          {
                                          if(event.gui.getClass().equals(GuiMainMenu.class))
                                          {
                                          FMLClientHandler.instance().getClient().displayGuiScreen(new GuiCustomMainMenu());
                                          }
                                          }
                                          }
                                          package com.mod.exonia.gui;
                                          import java.io.BufferedReader;
                                          import java.io.IOException;
                                          import java.io.InputStreamReader;
                                          import java.net.URI;
                                          import java.util.ArrayList;
                                          import java.util.Calendar;
                                          import java.util.Date;
                                          import java.util.Random;
                                          import org.apache.commons.io.Charsets;
                                          import org.apache.logging.log4j.LogManager;
                                          import org.apache.logging.log4j.Logger;
                                          import org.lwjgl.opengl.GL11;
                                          import org.lwjgl.opengl.GLContext;
                                          import cpw.mods.fml.client.FMLClientHandler;
                                          import cpw.mods.fml.client.GuiModList;
                                          import cpw.mods.fml.relauncher.Side;
                                          import cpw.mods.fml.relauncher.SideOnly;
                                          import net.minecraft.client.Minecraft;
                                          import net.minecraft.client.gui.GuiButton;
                                          import net.minecraft.client.gui.GuiConfirmOpenLink;
                                          import net.minecraft.client.gui.GuiLanguage;
                                          import net.minecraft.client.gui.GuiMultiplayer;
                                          import net.minecraft.client.gui.GuiOptions;
                                          import net.minecraft.client.gui.GuiScreen;
                                          import net.minecraft.client.gui.GuiSelectWorld;
                                          import net.minecraft.client.gui.GuiYesNo;
                                          import net.minecraft.client.gui.GuiYesNoCallback;
                                          import net.minecraft.client.renderer.OpenGlHelper;
                                          import net.minecraft.client.renderer.Tessellator;
                                          import net.minecraft.client.renderer.texture.DynamicTexture;
                                          import net.minecraft.client.resources.I18n;
                                          import net.minecraft.util.EnumChatFormatting;
                                          import net.minecraft.util.MathHelper;
                                          import net.minecraft.util.ResourceLocation;
                                          import net.minecraft.world.demo.DemoWorldServer;
                                          import net.minecraft.world.storage.ISaveFormat;
                                          import net.minecraft.world.storage.WorldInfo;
                                          @SideOnly(Side.CLIENT)
                                          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 final ResourceLocation backGround = new ResourceLocation("moreitemfr", "textures/gui/menu.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";
                                             public GuiCustomMainMenu()
                                             {
                                                 this.field_146972_A = field_96138_a;
                                                 this.splashText = "missingno";
                                                 BufferedReader bufferedreader = null;
                                                 try
                                                 {
                                                     ArrayList arraylist = new ArrayList();
                                                     bufferedreader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(splashTexts).getInputStream(), Charsets.UTF_8));
                                                     String s;
                                                     while((s = bufferedreader.readLine()) != null)
                                                     {
                                                         s = s.trim();
                                                         if(!s.isEmpty())
                                                         {
                                                             arraylist.add(s);
                                                         }
                                                     }
                                                     if(!arraylist.isEmpty())
                                                     {
                                                         do
                                                         {
                                                             this.splashText = (String)arraylist.get(rand.nextInt(arraylist.size()));
                                                         }
                                                         while(this.splashText.hashCode() == 125780783);
                                                     }
                                                 }
                                                 catch(IOException ioexception1)
                                                 {
                                                     ;
                                                 }
                                                 finally
                                                 {
                                                     if(bufferedreader != null)
                                                     {
                                                         try
                                                         {
                                                             bufferedreader.close();
                                                         }
                                                         catch(IOException ioexception)
                                                         {
                                                             ;
                                                         }
                                                     }
                                                 }
                                                 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;
                                             }
                                             /**
                                              * 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 calendar = Calendar.getInstance();
                                                 calendar.setTime(new Date());
                                                 if(calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
                                                 {
                                                     this.splashText = "Happy birthday, ez!";
                                                 }
                                                 else if(calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
                                                 {
                                                     this.splashText = "Happy birthday, Notch!";
                                                 }
                                                 else if(calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
                                                 {
                                                     this.splashText = "Merry X-mas!";
                                                 }
                                                 else if(calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
                                                 {
                                                     this.splashText = "Happy new year!";
                                                 }
                                                 else if(calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
                                                 {
                                                     this.splashText = "OOoooOOOoooo! Spooky!";
                                                 }
                                                 boolean flag = true;
                                                 int i = this.height / 4 + 48;
                                                 if(this.mc.isDemo())
                                                 {
                                                     this.addDemoButtons(i, 24);
                                                 }
                                                 else
                                                 {
                                                     this.addSingleplayerMultiplayerButtons(i, 24);
                                                 }
                                                 this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("§dOptions", new Object[0])));
                                                 this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("§7Quitter", new Object[0])));
                                                 }
                                             private void addSingleplayerMultiplayerButtons(int x, int y)
                                             {
                                                 this.buttonList.add(new GuiButton(1, this.width / 2 - 100, 236, 200, 20, I18n.format("§3Sodezlo")));
                                                 this.buttonList.add(new GuiButton(20, this.width / 2 - 100, 189 + y * 1, "§cFire Redemption"));
                                             }
                                             /**
                                              * Adds Demo buttons on Main Menu for players who are playing Demo.
                                              */
                                             private void addDemoButtons(int x, int y)
                                             {
                                                 this.buttonList.add(new GuiButton(11, this.width / 2 - 100, x, I18n.format("menu.playdemo", new Object[0])));
                                                 this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, x + y * 1, I18n.format("menu.resetdemo", new Object[0])));
                                                 ISaveFormat isaveformat = this.mc.getSaveLoader();
                                                 WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                                                 if(worldinfo == null)
                                                 {
                                                     this.buttonResetDemo.enabled = false;
                                                 }
                                             }
                                             protected void actionPerformed(GuiButton button)
                                             {
                                                 if(button.id == 0)
                                                 {
                                                     this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
                                                 }
                                                 if(button.id == 5)
                                                 {
                                                     this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager()));
                                                 }
                                                 if(button.id == 1)
                                                 {
                                                     this.mc.displayGuiScreen(new GuiSelectWorld(this));
                                                 }
                                                 if(button.id == 2)
                                                 {
                                                     this.mc.displayGuiScreen(new GuiMultiplayer(this));
                                                 }
                                                 if(button.id == 4)
                                                 {
                                                     this.mc.shutdown();
                                                 }
                                                 if(button.id == 6)
                                                 {
                                                     this.mc.displayGuiScreen(new GuiModList(this));
                                                 }
                                                 if(button.id == 11)
                                                 {
                                                     this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
                                                 }
                                                 if(button.id == 12)
                                                 {
                                                     ISaveFormat isaveformat = this.mc.getSaveLoader();
                                                     WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                                                     if(worldinfo != null)
                                                     {
                                                         GuiYesNo guiyesno = GuiSelectWorld.func_152129_a(this, worldinfo.getWorldName(), 12);
                                                         this.mc.displayGuiScreen(guiyesno);
                                                     }
                                                 }
                                                 if(button.id == 20)
                                                 {
                                                     // TODO pour la connexion au serveur
                                                     FMLClientHandler.instance().connectToServerAtStartup("46.105.178.115", 25565);
                                                 }
                                                 if(button.id == 21)
                                                 {
                                                     try
                                                     {
                                                         Class oclass = Class.forName("java.awt.Desktop");
                                                         Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                                                         oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI("http://www.minecraftforgefrance.fr")});
                                                     }
                                                     catch(Throwable throwable)
                                                     {
                                                         logger.error("Couldn\'t open link", throwable);
                                                     }
                                                 }
                                             }
                                             public void confirmClicked(boolean p_73878_1_, int id)
                                             {
                                                 if(p_73878_1_ && id == 12)
                                                 {
                                                     ISaveFormat isaveformat = this.mc.getSaveLoader();
                                                     isaveformat.flushCache();
                                                     isaveformat.deleteWorldDirectory("Demo_World");
                                                     this.mc.displayGuiScreen(this);
                                                 }
                                                 else if(id == 13)
                                                 {
                                                     if(p_73878_1_)
                                                     {
                                                         try
                                                         {
                                                             Class oclass = Class.forName("java.awt.Desktop");
                                                             Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                                                             oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)});
                                                         }
                                                         catch(Throwable throwable)
                                                         {
                                                             logger.error("Couldn\'t open link", throwable);
                                                         }
                                                     }
                                                     this.mc.displayGuiScreen(this);
                                                 }
                                             }
                                             private void renderBackGround()
                                             {
                                                 GL11.glViewport(0, 0, 256, 256);
                                                 this.mc.getTextureManager().bindTexture(backGround); 
                                                 GL11.glDisable(GL11.GL_TEXTURE_2D);
                                                 GL11.glEnable(GL11.GL_TEXTURE_2D);
                                                 GL11.glViewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
                                                 Tessellator tessellator = Tessellator.instance;
                                                 tessellator.startDrawingQuads();
                                                 GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
                                                 GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
                                                 tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
                                                 int k = this.width;
                                                 int l = this.height;
                                                 tessellator.addVertexWithUV(0, 0, this.zLevel, 0, 0);
                                                 tessellator.addVertexWithUV(0, l, this.zLevel, 0, 1);
                                                 tessellator.addVertexWithUV(k, l, this.zLevel, 1, 1);
                                                 tessellator.addVertexWithUV(k, 0, this.zLevel, 1, 0);
                                                 tessellator.draw();
                                             }
                                             public void drawScreen(int x, int y, float partialTick)
                                             {
                                                 GL11.glDisable(GL11.GL_ALPHA_TEST);
                                                 this.renderBackGround();
                                                 GL11.glEnable(GL11.GL_ALPHA_TEST);
                                                 Tessellator tessellator = Tessellator.instance;
                                                 short short1 = 274;
                                                 int k = this.width / 2 - short1 / 2;
                                                 byte b0 = 30;
                                                 this.drawGradientRect(0, 0, this.width, this.height, -2130706433, 16777215);
                                                 this.drawGradientRect(0, 0, this.width, this.height, 0, Integer.MIN_VALUE);
                                                 this.mc.getTextureManager().bindTexture(minecraftTitleTextures);
                                                 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
                                                 if((double)this.updateCounter < 1.0E-4D)
                                                 {
                                                     this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 99, 44);
                                                     this.drawTexturedModalRect(k + 99, b0 + 0, 129, 0, 27, 44);
                                                     this.drawTexturedModalRect(k + 99 + 26, b0 + 0, 126, 0, 3, 44);
                                                     this.drawTexturedModalRect(k + 99 + 26 + 3, b0 + 0, 99, 0, 26, 44);
                                                     this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
                                                 }
                                                 else
                                                 {
                                                     this.drawTexturedModalRect(k + 0, b0 + 0, 0, 0, 155, 44);
                                                     this.drawTexturedModalRect(k + 155, b0 + 0, 0, 45, 155, 44);
                                                 }
                                                 tessellator.setColorOpaque_I(-1);
                                                 GL11.glPushMatrix();
                                                 GL11.glTranslatef((float)(this.width / 2 + 90), 70.0F, 0.0F);
                                                 GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F);
                                                 float f1 = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * (float)Math.PI * 2.0F) * 0.1F);
                                                 f1 = f1 * 100.0F / (float)(this.fontRendererObj.getStringWidth(this.splashText) + 32);
                                                 GL11.glScalef(f1, f1, f1);
                                                 this.drawCenteredString(this.fontRendererObj, this.splashText, 0, 111101118, 1000000256);
                                                 GL11.glPopMatrix();
                                                 String s = "Minecraft 1.7.10";
                                                 if(this.mc.isDemo())
                                                 {
                                                     s = s + " Demo";
                                                 }
                                                 String s1 = "";
                                                 this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);
                                                 if(this.field_92025_p != null && this.field_92025_p.length() > 0)
                                                 {
                                                     drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
                                                     this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
                                                     this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
                                                 }
                                                 super.drawScreen(x, y, partialTick);
                                             }
                                             /**
                                              * 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 object = 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 guiconfirmopenlink = new GuiConfirmOpenLink(this, this.field_104024_v, 13, true);
                                                         guiconfirmopenlink.func_146358_g();
                                                         this.mc.displayGuiScreen(guiconfirmopenlink);
                                                     }
                                                 }
                                             }
                                          }
                                          package com.mod.exonia;
                                          import java.io.File;
                                          import com.google.common.base.Throwables;
                                          import com.mod.exonia.dynamite.EntityDynamite;
                                          import com.mod.exonia.gui.GuiCustomMainMenu;
                                          import com.mod.exonia.init.BlockMod;
                                          import com.mod.exonia.init.ItemMod;
                                          import com.mod.exonia.proxy.CommonProxy;
                                          import com.mod.exonia.world.WorldRegister;
                                          import cpw.mods.fml.client.FMLClientHandler;
                                          import cpw.mods.fml.common.Mod;
                                          import cpw.mods.fml.common.Mod.EventHandler;
                                          import cpw.mods.fml.common.Mod.Instance;
                                          import cpw.mods.fml.common.SidedProxy;
                                          import cpw.mods.fml.common.event.FMLInitializationEvent;
                                          import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                                          import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                                          import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                          import cpw.mods.fml.common.gameevent.TickEvent;
                                          import cpw.mods.fml.common.registry.EntityRegistry;
                                          import cpw.mods.fml.relauncher.Side;
                                          import cpw.mods.fml.relauncher.SideOnly;
                                          import net.minecraft.client.Minecraft;
                                          import net.minecraft.client.gui.GuiIngameMenu;
                                          import net.minecraft.client.gui.GuiMainMenu;
                                          import net.minecraftforge.client.event.GuiOpenEvent;
                                          import net.minecraftforge.client.event.GuiScreenEvent;
                                          @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION)
                                          public class Exonia
                                          {
                                              @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
                                              public static CommonProxy proxy;
                                              @EventHandler
                                              public void preInit(FMLPreInitializationEvent event)
                                              {
                                                  BlockMod.init();
                                                  BlockMod.register();
                                                  ItemMod.init();
                                                  ItemMod.register();
                                                  WorldRegister.mainRegistry();
                                                  if(event.getSide().isClient())
                                                  {
                                                      if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                                                      {
                                                           Throwables.propagate(new Exception("Launcher non autorisé"));
                                                      }
                                                  }
                                              }
                                              @SubscribeEvent
                                              @SideOnly(Side.CLIENT)
                                              public void onGuiOpened(GuiOpenEvent event)
                                              {
                                                  if(event.gui instanceof GuiMainMenu)
                                                  {
                                                      event.gui = new GuiCustomMainMenu();
                                                  }
                                              }
                                              @EventHandler
                                              public void Init(FMLInitializationEvent event)
                                              {
                                                  proxy.registerRenders();
                                                  EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false);
                                              }
                                              @EventHandler
                                              public void postInit(FMLPostInitializationEvent event)
                                              {
                                              }
                                              @Instance(Reference.MOD_NAME)
                                              public static Exonia instance;
                                          }
                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 3
                                          • 1 / 3
                                          1 sur 47
                                          • Premier message
                                            1/47
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB