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

    Résolu Problème Gui 1.7.2

    1.7.x
    4
    12
    3290
    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.
    • T
      TheYovach dernière édition par

      Bonjour je voudrais savoir comment modifier le menu principale, j’ai pris le dossier de robin, mais ça ne marche pas.
      Eclipse m’affiche plusieurs erreurs

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        http://www.minecraftforgefrance.fr/showthread.php?tid=555&highlight=menu
        http://www.minecraftforgefrance.fr/showthread.php?tid=716#classe3

        Merci de faire un minimum de recherche la prochaine fois …

        1 réponse Dernière réponse Répondre Citer 0
        • T
          TheYovach dernière édition par

          ou dois-je mettre le
          if(event.getSide().isClient())
          {
          FMLCommonHandler.instance().bus().register(new LaClasseOuSeTrouveVotreEvent());
          } ?

          Excusez moi du dérangement mais je débute

          1 réponse Dernière réponse Répondre Citer 0
          • isador
            isador Moddeurs confirmés Modérateurs dernière édition par

            dans ta classe main dans le préinit

            1 réponse Dernière réponse Répondre Citer 0
            • T
              TheYovach dernière édition par

              Marche pas 😕
              J’ai mis ça : ```java
              if(event.getSide().isClient())
              {
              FMLCommonHandler.instance().bus().register(new net.metalfight.metalmod.proxy.GuiCustomMainMenu());
              }

              
              et dans GuiCustomMainMenu
              ```java
              package net.minecraft.client.renderer;
              
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;
              import java.nio.ByteBuffer;
              import java.nio.ByteOrder;
              import java.nio.FloatBuffer;
              import java.nio.IntBuffer;
              import java.nio.ShortBuffer;
              import java.util.Arrays;
              import java.util.PriorityQueue;
              import net.minecraft.client.shader.TesselatorVertexState;
              import net.minecraft.client.util.QuadComparator;
              import org.lwjgl.opengl.GL11;
              
              @SideOnly(Side.CLIENT)
              public class Tessellator
              {
              private static int nativeBufferSize = 0x200000;
              private static int trivertsInBuffer = (nativeBufferSize / 48) * 6;
              public static boolean renderingWorldRenderer = false;
              public boolean defaultTexture = false;
              private int rawBufferSize = 0;
              public int textureID = 0;
              
              /** The byte buffer used for GL allocation. */
              private static ByteBuffer byteBuffer = GLAllocation.createDirectByteBuffer(nativeBufferSize * 4);
              /** The same memory as byteBuffer, but referenced as an integer buffer. */
              private static IntBuffer intBuffer = byteBuffer.asIntBuffer();
              /** The same memory as byteBuffer, but referenced as an float buffer. */
              private static FloatBuffer floatBuffer = byteBuffer.asFloatBuffer();
              /** The same memory as byteBuffer, but referenced as an short buffer. */
              private static ShortBuffer shortBuffer = byteBuffer.asShortBuffer();
              /** Raw integer array. */
              private int[] rawBuffer;
              /**
              * The number of vertices to be drawn in the next draw call. Reset to 0 between draw calls.
              */
              private int vertexCount;
              /** The first coordinate to be used for the texture. */
              private double textureU;
              /** The second coordinate to be used for the texture. */
              private double textureV;
              private int brightness;
              /** The color (RGBA) value to be used for the following draw call. */
              private int color;
              /**
              * Whether the current draw object for this tessellator has color values.
              */
              private boolean hasColor;
              /**
              * Whether the current draw object for this tessellator has texture coordinates.
              */
              private boolean hasTexture;
              private boolean hasBrightness;
              /**
              * Whether the current draw object for this tessellator has normal values.
              */
              private boolean hasNormals;
              /** The index into the raw buffer to be used for the next data. */
              private int rawBufferIndex;
              /**
              * The number of vertices manually added to the given draw call. This differs from vertexCount because it adds extra
              * vertices when converting quads to triangles.
              */
              private int addedVertices;
              /** Disables all color information for the following draw call. */
              private boolean isColorDisabled;
              /** The draw mode currently being used by the tessellator. */
              private int drawMode;
              /**
              * An offset to be applied along the x-axis for all vertices in this draw call.
              */
              private double xOffset;
              /**
              * An offset to be applied along the y-axis for all vertices in this draw call.
              */
              private double yOffset;
              /**
              * An offset to be applied along the z-axis for all vertices in this draw call.
              */
              private double zOffset;
              /** The normal to be applied to the face being drawn. */
              private int normal;
              /** The static instance of the Tessellator. */
              public static final Tessellator instance = new Tessellator(2097152);
              /** Whether this tessellator is currently in draw mode. */
              private boolean isDrawing;
              /** The size of the buffers used (in integers). */
              private int bufferSize;
              private static final String __OBFID = "CL_00000960";
              
              private Tessellator(int p_i1250_1_)
              {
              }
              
              public Tessellator()
              {
              }
              
              static
              {
              instance.defaultTexture = true;
              }
              
              /**
              * Draws the data set up in this tessellator and resets the state to prepare for new drawing.
              */
              public int draw()
              {
              if (!this.isDrawing)
              {
              throw new IllegalStateException("Not tesselating!");
              }
              else
              {
              this.isDrawing = false;
              
              int offs = 0;
              while (offs < vertexCount)
              {
              int vtc = Math.min(vertexCount - offs, nativeBufferSize >> 5);
              this.intBuffer.clear();
              this.intBuffer.put(this.rawBuffer, offs * 8, vtc * 8);
              this.byteBuffer.position(0);
              this.byteBuffer.limit(vtc * 32);
              offs += vtc;
              
              if (this.hasTexture)
              {
              this.floatBuffer.position(3);
              GL11.glTexCoordPointer(2, 32, this.floatBuffer);
              GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
              }
              
              if (this.hasBrightness)
              {
              OpenGlHelper.setClientActiveTexture(OpenGlHelper.lightmapTexUnit);
              this.shortBuffer.position(14);
              GL11.glTexCoordPointer(2, 32, this.shortBuffer);
              GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
              OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
              }
              
              if (this.hasColor)
              {
              this.byteBuffer.position(20);
              GL11.glColorPointer(4, true, 32, this.byteBuffer);
              GL11.glEnableClientState(GL11.GL_COLOR_ARRAY);
              }
              
              if (this.hasNormals)
              {
              this.byteBuffer.position(24);
              GL11.glNormalPointer(32, this.byteBuffer);
              GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY);
              }
              
              this.floatBuffer.position(0);
              GL11.glVertexPointer(3, 32, this.floatBuffer);
              GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
              GL11.glDrawArrays(this.drawMode, 0, vtc);
              GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
              
              if (this.hasTexture)
              {
              GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
              }
              
              if (this.hasBrightness)
              {
              OpenGlHelper.setClientActiveTexture(OpenGlHelper.lightmapTexUnit);
              GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
              OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
              }
              
              if (this.hasColor)
              {
              GL11.glDisableClientState(GL11.GL_COLOR_ARRAY);
              }
              
              if (this.hasNormals)
              {
              GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY);
              }
              }
              
              if (rawBufferSize > 0x20000 && rawBufferIndex < (rawBufferSize << 3))
              {
              rawBufferSize = 0x10000;
              rawBuffer = new int[rawBufferSize];
              }
              
              int i = this.rawBufferIndex * 4;
              this.reset();
              return i;
              }
              }
              
              public TesselatorVertexState getVertexState(float p_147564_1_, float p_147564_2_, float p_147564_3_)
              {
              int[] aint = new int[this.rawBufferIndex];
              PriorityQueue priorityqueue = new PriorityQueue(this.rawBufferIndex, new QuadComparator(this.rawBuffer, p_147564_1_ + (float)this.xOffset, p_147564_2_ + (float)this.yOffset, p_147564_3_ + (float)this.zOffset));
              byte b0 = 32;
              int i;
              
              for (i = 0; i < this.rawBufferIndex; i += b0)
              {
              priorityqueue.add(Integer.valueOf(i));
              }
              
              for (i = 0; !priorityqueue.isEmpty(); i += b0)
              {
              int j = ((Integer)priorityqueue.remove()).intValue();
              
              for (int k = 0; k < b0; ++k)
              {
              aint _= this.rawBuffer[j + k];
              }
              }
              
              System.arraycopy(aint, 0, this.rawBuffer, 0, aint.length);
              return new TesselatorVertexState(aint, this.rawBufferIndex, this.vertexCount, this.hasTexture, this.hasBrightness, this.hasNormals, this.hasColor);
              }
              
              public void setVertexState(TesselatorVertexState p_147565_1_)
              {
              while (p_147565_1_.getRawBuffer().length > rawBufferSize && rawBufferSize > 0)
              {
              rawBufferSize <<= 1;
              }
              if (rawBufferSize > rawBuffer.length)
              {
              rawBuffer = new int[rawBufferSize];
              }
              System.arraycopy(p_147565_1_.getRawBuffer(), 0, this.rawBuffer, 0, p_147565_1_.getRawBuffer().length);
              this.rawBufferIndex = p_147565_1_.getRawBufferIndex();
              this.vertexCount = p_147565_1_.getVertexCount();
              this.hasTexture = p_147565_1_.getHasTexture();
              this.hasBrightness = p_147565_1_.getHasBrightness();
              this.hasColor = p_147565_1_.getHasColor();
              this.hasNormals = p_147565_1_.getHasNormals();
              }
              
              /**
              * Clears the tessellator state in preparation for new drawing.
              */
              private void reset()
              {
              this.vertexCount = 0;
              this.byteBuffer.clear();
              this.rawBufferIndex = 0;
              this.addedVertices = 0;
              }
              
              /**
              * Sets draw mode in the tessellator to draw quads.
              */
              public void startDrawingQuads()
              {
              this.startDrawing(7);
              }
              
              /**
              * Resets tessellator state and prepares for drawing (with the specified draw mode).
              */
              public void startDrawing(int p_78371_1_)
              {
              if (this.isDrawing)
              {
              throw new IllegalStateException("Already tesselating!");
              }
              else
              {
              this.isDrawing = true;
              this.reset();
              this.drawMode = p_78371_1_;
              this.hasNormals = false;
              this.hasColor = false;
              this.hasTexture = false;
              this.hasBrightness = false;
              this.isColorDisabled = false;
              }
              }
              
              /**
              * Sets the texture coordinates.
              */
              public void setTextureUV(double p_78385_1_, double p_78385_3_)
              {
              this.hasTexture = true;
              this.textureU = p_78385_1_;
              this.textureV = p_78385_3_;
              }
              
              public void setBrightness(int p_78380_1_)
              {
              this.hasBrightness = true;
              this.brightness = p_78380_1_;
              }
              
              /**
              * Sets the RGB values as specified, converting from floats between 0 and 1 to integers from 0-255.
              */
              public void setColorOpaque_F(float p_78386_1_, float p_78386_2_, float p_78386_3_)
              {
              this.setColorOpaque((int)(p_78386_1_ * 255.0F), (int)(p_78386_2_ * 255.0F), (int)(p_78386_3_ * 255.0F));
              }
              
              /**
              * Sets the RGBA values for the color, converting from floats between 0 and 1 to integers from 0-255.
              */
              public void setColorRGBA_F(float p_78369_1_, float p_78369_2_, float p_78369_3_, float p_78369_4_)
              {
              this.setColorRGBA((int)(p_78369_1_ * 255.0F), (int)(p_78369_2_ * 255.0F), (int)(p_78369_3_ * 255.0F), (int)(p_78369_4_ * 255.0F));
              }
              
              /**
              * Sets the RGB values as specified, and sets alpha to opaque.
              */
              public void setColorOpaque(int p_78376_1_, int p_78376_2_, int p_78376_3_)
              {
              this.setColorRGBA(p_78376_1_, p_78376_2_, p_78376_3_, 255);
              }
              
              /**
              * Sets the RGBA values for the color. Also clamps them to 0-255.
              */
              public void setColorRGBA(int p_78370_1_, int p_78370_2_, int p_78370_3_, int p_78370_4_)
              {
              if (!this.isColorDisabled)
              {
              if (p_78370_1_ > 255)
              {
              p_78370_1_ = 255;
              }
              
              if (p_78370_2_ > 255)
              {
              p_78370_2_ = 255;
              }
              
              if (p_78370_3_ > 255)
              {
              p_78370_3_ = 255;
              }
              
              if (p_78370_4_ > 255)
              {
              p_78370_4_ = 255;
              }
              
              if (p_78370_1_ < 0)
              {
              p_78370_1_ = 0;
              }
              
              if (p_78370_2_ < 0)
              {
              p_78370_2_ = 0;
              }
              
              if (p_78370_3_ < 0)
              {
              p_78370_3_ = 0;
              }
              
              if (p_78370_4_ < 0)
              {
              p_78370_4_ = 0;
              }
              
              this.hasColor = true;
              
              if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN)
              {
              this.color = p_78370_4_ << 24 | p_78370_3_ << 16 | p_78370_2_ << 8 | p_78370_1_;
              }
              else
              {
              this.color = p_78370_1_ << 24 | p_78370_2_ << 16 | p_78370_3_ << 8 | p_78370_4_;
              }
              }
              }
              
              public void func_154352_a(byte p_154352_1_, byte p_154352_2_, byte p_154352_3_)
              {
              this.setColorOpaque(p_154352_1_ & 255, p_154352_2_ & 255, p_154352_3_ & 255);
              }
              
              /**
              * Adds a vertex specifying both x,y,z and the texture u,v for it.
              */
              public void addVertexWithUV(double p_78374_1_, double p_78374_3_, double p_78374_5_, double p_78374_7_, double p_78374_9_)
              {
              this.setTextureUV(p_78374_7_, p_78374_9_);
              this.addVertex(p_78374_1_, p_78374_3_, p_78374_5_);
              }
              
              /**
              * Adds a vertex with the specified x,y,z to the current draw call. It will trigger a draw() if the buffer gets
              * full.
              */
              public void addVertex(double p_78377_1_, double p_78377_3_, double p_78377_5_)
              {
              if (rawBufferIndex >= rawBufferSize - 32)
              {
              if (rawBufferSize == 0)
              {
              rawBufferSize = 0x10000;
              rawBuffer = new int[rawBufferSize];
              }
              else
              {
              rawBufferSize *= 2;
              rawBuffer = Arrays.copyOf(rawBuffer, rawBufferSize);
              }
              }
              ++this.addedVertices;
              
              if (this.hasTexture)
              {
              this.rawBuffer[this.rawBufferIndex + 3] = Float.floatToRawIntBits((float)this.textureU);
              this.rawBuffer[this.rawBufferIndex + 4] = Float.floatToRawIntBits((float)this.textureV);
              }
              
              if (this.hasBrightness)
              {
              this.rawBuffer[this.rawBufferIndex + 7] = this.brightness;
              }
              
              if (this.hasColor)
              {
              this.rawBuffer[this.rawBufferIndex + 5] = this.color;
              }
              
              if (this.hasNormals)
              {
              this.rawBuffer[this.rawBufferIndex + 6] = this.normal;
              }
              
              this.rawBuffer[this.rawBufferIndex + 0] = Float.floatToRawIntBits((float)(p_78377_1_ + this.xOffset));
              this.rawBuffer[this.rawBufferIndex + 1] = Float.floatToRawIntBits((float)(p_78377_3_ + this.yOffset));
              this.rawBuffer[this.rawBufferIndex + 2] = Float.floatToRawIntBits((float)(p_78377_5_ + this.zOffset));
              this.rawBufferIndex += 8;
              ++this.vertexCount;
              }
              
              /**
              * Sets the color to the given opaque value (stored as byte values packed in an integer).
              */
              public void setColorOpaque_I(int p_78378_1_)
              {
              int j = p_78378_1_ >> 16 & 255;
              int k = p_78378_1_ >> 8 & 255;
              int l = p_78378_1_ & 255;
              this.setColorOpaque(j, k, l);
              }
              
              /**
              * Sets the color to the given color (packed as bytes in integer) and alpha values.
              */
              public void setColorRGBA_I(int p_78384_1_, int p_78384_2_)
              {
              int k = p_78384_1_ >> 16 & 255;
              int l = p_78384_1_ >> 8 & 255;
              int i1 = p_78384_1_ & 255;
              this.setColorRGBA(k, l, i1, p_78384_2_);
              }
              
              /**
              * Disables colors for the current draw call.
              */
              public void disableColor()
              {
              this.isColorDisabled = true;
              }
              
              /**
              * Sets the normal for the current draw call.
              */
              public void setNormal(float p_78375_1_, float p_78375_2_, float p_78375_3_)
              {
              this.hasNormals = true;
              byte b0 = (byte)((int)(p_78375_1_ * 127.0F));
              byte b1 = (byte)((int)(p_78375_2_ * 127.0F));
              byte b2 = (byte)((int)(p_78375_3_ * 127.0F));
              this.normal = b0 & 255 | (b1 & 255) << 8 | (b2 & 255) << 16;
              }
              
              /**
              * Sets the translation for all vertices in the current draw call.
              */
              public void setTranslation(double p_78373_1_, double p_78373_3_, double p_78373_5_)
              {
              this.xOffset = p_78373_1_;
              this.yOffset = p_78373_3_;
              this.zOffset = p_78373_5_;
              }
              
              /**
              * Offsets the translation for all vertices in the current draw call.
              */
              public void addTranslation(float p_78372_1_, float p_78372_2_, float p_78372_3_)
              {
              this.xOffset += (double)p_78372_1_;
              this.yOffset += (double)p_78372_2_;
              this.zOffset += (double)p_78372_3_;
              }
              }
              

              Et il y a plein d’erreur, quelqu’un a le pack customainmenu en 1.7.10 ?_

              1 réponse Dernière réponse Répondre Citer 0
              • M
                MrAzErTy31 dernière édition par

                Non, ce n’est pas du tout cette classe. Elle doit se trouver dans “Referenced libraries -> forge -> net.minecraft.client.gui.GuiMainMenu”

                Ensuite vers la ligne 313, c’est là où l’on peut ajouter des boutons. Après tu cherches dans le code pour modifier d’autres choses.
                Sinon il y a mon mod qui te permet de customiser des fonctionnalités sur le menu : http://minecraftforgefrance.fr/showthread.php?tid=1279 (Prends la dernière update)
                Et pour la fonction :

                
                if(event.getSide().isClient())
                {
                FMLCommonHandler.instance().bus().register(new net.metalfight.metalmod.proxy.GuiCustomMainMenu());
                }
                
                

                Ce n’est toujours pas ça, il faut que tu mettes dans le init :

                FMLCommonHandler.instance().bus().register(this);
                

                Et ensuite après le postInit, tu mets cet évenement :

                
                @SubscribeEvent
                @SideOnly (Side.CLIENT)
                public void onTickClient(TickEvent.ClientTickEvent event) {
                if(event.phase == Phase.END) {
                Minecraft mc = Minecraft.getMinecraft();
                GuiScreen currentScreen = mc.currentScreen; // Le gui courant
                CustomMainMenu customMenu = new CustomMainMenu(); // Ta classe de ton menu custom
                if(currentScreen instanceof GuiMainMenu && !currentScreen.equals(customMenu)) { // Si le gui est le menu principal
                mc.displayGuiScreen(customMenu); // Alors tu le change en ton menu perso ;)
                }
                }
                }
                
                

                Mes mods :

                >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                CraftYourMenu : http://minecraftforgefrance.fr/showth…

                1 réponse Dernière réponse Répondre Citer 1
                • T
                  TheYovach dernière édition par

                  Je sais mais on peut pas modifier les codes de forges

                  1 réponse Dernière réponse Répondre Citer 0
                  • M
                    MrAzErTy31 dernière édition par

                    J’ai édité mon post. Et tu dois copier le contenu de la classe “GuiMainMenu” dans la classe de ton custom main menu et changeant le package et les imports (Ctrl + Shift + o)

                    Mes mods :

                    >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                    CraftYourMenu : http://minecraftforgefrance.fr/showth…

                    1 réponse Dernière réponse Répondre Citer 0
                    • T
                      TheYovach dernière édition par

                      C’est ce que j’ai fait ça ne marche pas 😕 Ma classe GuiMainMenu :

                      package net.metalfight.metalmod.proxy;
                      
                      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.gui.GuiButton;
                      import net.minecraft.client.gui.GuiButtonLanguage;
                      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.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;
                      
                      import cpw.mods.fml.client.GuiModList;
                      import cpw.mods.fml.common.FMLCommonHandler;
                      import cpw.mods.fml.relauncher.Side;
                      import cpw.mods.fml.relauncher.SideOnly;
                      
                      @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, "Test");
                      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);
                      }
                      }
                      String s1 = "Test";
                      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);
                      }
                      }
                      }
                      }
                      ```</string>
                      1 réponse Dernière réponse Répondre Citer 0
                      • M
                        MrAzErTy31 dernière édition par

                        Renomme la CustomMainMenu, ça permettra de pas confondre avec le menu vanilla. Envoie ta classe principale.

                        Mes mods :

                        >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                        CraftYourMenu : http://minecraftforgefrance.fr/showth…

                        1 réponse Dernière réponse Répondre Citer 0
                        • T
                          TheYovach dernière édition par

                          En effet je te remercie du fond du coeur, ça a bien marcher, j’ai renommé en CustomGuiMainMenu 🙂 ❤

                          1 réponse Dernière réponse Répondre Citer 0
                          • M
                            MrAzErTy31 dernière édition par

                            N’oublie pas de mettre le sujet en résolu 🙂

                            Mes mods :

                            >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                            CraftYourMenu : http://minecraftforgefrance.fr/showth…

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

                            MINECRAFT FORGE FRANCE © 2018

                            Powered by NodeBB