MFF

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

    GuiMainMenu Background

    Planifier Épinglé Verrouillé Déplacé Sans suite
    8 Messages 3 Publieurs 2.3k Vues 1 Abonné
    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.
    • K Hors-ligne
      KrushHD
      dernière édition par

      Bonjour , j’aimerais savoir comment changer le background et en mettre un fixe , j’utilise le pack de Robin , j’ai suivie ce tuto mais j’y arrive pas 😕

      Ce tuto :  http://www.minecraftforgefrance.fr/showthread.php?tid=1311&pid=15329#pid15329

      J’aimerais ajouter un background fixe avec une image de mon choix comment faire ? et ou faut maitre l’image ? Merci 😄

      package fr.minecraftforgefrance.client.custommenu;
      
      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.lang.reflect.InvocationTargetException;
      import java.net.URI;
      import java.net.URISyntaxException;
      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.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.FMLClientHandler;
      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 GuiCustomMainMenu extends GuiScreen implements GuiYesNoCallback
      {
          private static final Logger logger = LogManager.getLogger();
          /** The RNG used by the Main Menu Screen. */
          private static final Random rand = new Random();
          /** Counts the number of screen updates. */
          private float updateCounter;
          /** The splash message. */
          private String splashText;
          private GuiButton buttonResetDemo;
          /** Timer used to rotate the panorama, increases every tick. */
          private int panoramaTimer;
          /**
           * Texture allocated for the current viewport of the main menu's panorama background.
           */
          private DynamicTexture viewportTexture;
          private final Object field_104025_t = new Object();
          private String field_92025_p;
          private String field_146972_A;
          private String field_104024_v;
          private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
          private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png");
          /** An array of all the paths to the panorama pictures. */
          private static final ResourceLocation[] titlePanoramaPaths = new ResourceLocation[] {new ResourceLocation("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 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("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])));
              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 x, int y)
          {
              this.buttonList.add(new GuiButton(1, this.width / 3 - 120, x, 98, 20, I18n.format("\u00A7cJouer Solo")));
              this.buttonList.add(new GuiButton(22, this.width / 2 + 102, x + 0, 98, 20, I18n.format("\u00A7cTeamspeak")));
              GuiButton webSiteButton2 = new GuiButton(23, this.width / 3 + 155, x + y * 2, "\u00A7cVoter");
              this.buttonList.add(new GuiButton(20, this.width / 2 - 96, 35 + y * 2, "\u00A7cRejoindre Silicium"));
              GuiButton webSiteButton = new GuiButton(21, this.width / 3 - 100, x + y * 2, "\u00A7cSite");
              webSiteButton.width = 100;
              webSiteButton2.width = 100;
              this.buttonList.add(webSiteButton);
              this.buttonList.add(webSiteButton2);
          }
      
          /**
           * 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 == 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("craft64.crystal-serv.com", 27485); // ip, port
              }
      
              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://Silicium-mc.craftaserv.fr")});
                  }
                  catch(Throwable throwable)
                  {
                      logger.error("Couldn\'t open link", throwable);
                  }
              }
              if(button.id == 23)
              {
                  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://silicium-mc.craftaserv.fr/vote")});
                  }
                  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);
              }
          }
      
          /**
           * Draws the main menu panorama
           */
          private void drawPanorama(int x, int y, float partialTick)
          {
              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 + partialTick) / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F);
                  GL11.glRotatef(-((float)this.panoramaTimer + partialTick) * 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 partialTick)
          {
              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 x, int y, float partialTick)
          {
              this.mc.getFramebuffer().unbindFramebuffer();
              GL11.glViewport(0, 0, 256, 256);
              this.drawPanorama(x, y, partialTick);
              this.rotateAndBlurSkybox(partialTick);
              this.rotateAndBlurSkybox(partialTick);
              this.rotateAndBlurSkybox(partialTick);
              this.rotateAndBlurSkybox(partialTick);
              this.rotateAndBlurSkybox(partialTick);
              this.rotateAndBlurSkybox(partialTick);
              this.rotateAndBlurSkybox(partialTick);
              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 x, int y, float partialTick)
          {
              GL11.glDisable(GL11.GL_ALPHA_TEST);
              this.renderSkybox(x, y, partialTick);
              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 = "\u00A74By KrushHD";
              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);
                  }
              }
          }
      }
      ```</string>
      1 réponse Dernière réponse Répondre Citer 0
      • GabsG Hors-ligne
        Gabs
        dernière édition par

        Pour ton image bah tu suis le chemin tonmodid:textures/gui/menu.png tout simplement.
        Pour ton background fixe il faut que tu une class que tu l’extends guiscreen et après y’a tout qui est expliqué ici :http://www.minecraftforgefrance.fr/showt…9#pid15329
        tu enlève les 3 méthodes:

        [font=Ubuntu, sans-serifprivate void drawPanorama(int p_73970_1_, int p_73970_2_, float p_73970_3_)]
        [font=Ubuntu, sans-serifprivate void rotateAndBlurSkybox(float p_73968_1_)]
        [font=Ubuntu, sans-serifprivate void renderSkybox(int p_73971_1_, int p_73971_2_, float p_73971_3_)]
        

        Après tu suis se qu’il y a marquer …

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

          @‘floriangabet’:

          Pour ton image bah tu suis le chemin tonmodid:textures/gui/menu.png tout simplement.
          Pour ton background fixe il faut que tu une class que tu l’extends guiscreen et après y’a tout qui est expliqué ici :http://www.minecraftforgefrance.fr/showt…9#pid15329
          tu enlève les 3 méthodes:

          [font=Ubuntu, sans-serifprivate void drawPanorama(int p_73970_1_, int p_73970_2_, float p_73970_3_)]
          [font=Ubuntu, sans-serifprivate void rotateAndBlurSkybox(float p_73968_1_)]
          [font=Ubuntu, sans-serifprivate void renderSkybox(int p_73971_1_, int p_73971_2_, float p_73971_3_)]
          

          Après tu suis se qu’il y a marquer …

          Je n’y arrive pas… , pouvais vous m’aider du genre sur skype quelque chose comme sa ? mon skype : minecraftien62

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

            Envoies ton code.

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

              @‘robin4002’:

              Envoies ton code.

              Mon code et au dessus , je sais pas ce qu’il faut supprimer / ajouter , si il faut ajouter des classe etc … 😕

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

                oups j’avais pas fait attention x)

                Je ne sais pas pourquoi tu ne comprends pas, pourtant mon message est clair …

                package fr.minecraftforgefrance.client.custommenu;
                
                import java.io.BufferedReader;
                import java.io.IOException;
                import java.io.InputStreamReader;
                import java.lang.reflect.InvocationTargetException;
                import java.net.URI;
                import java.net.URISyntaxException;
                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.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.FMLClientHandler;
                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 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");
                
                   private final ResourceLocation backGround = new ResourceLocation("modtutoriel", "textures/gui/menu.png"); // faut changer l'id du mod ici
                
                   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;
                
                   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("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])));
                       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 x, int y)
                   {
                       this.buttonList.add(new GuiButton(1, this.width / 3 - 120, x, 98, 20, I18n.format("\u00A7cJouer Solo")));
                       this.buttonList.add(new GuiButton(22, this.width / 2 + 102, x + 0, 98, 20, I18n.format("\u00A7cTeamspeak")));
                       GuiButton webSiteButton2 = new GuiButton(23, this.width / 3 + 155, x + y * 2, "\u00A7cVoter");
                       this.buttonList.add(new GuiButton(20, this.width / 2 - 96, 35 + y * 2, "\u00A7cRejoindre Silicium"));
                       GuiButton webSiteButton = new GuiButton(21, this.width / 3 - 100, x + y * 2, "\u00A7cSite");
                       webSiteButton.width = 100;
                       webSiteButton2.width = 100;
                       this.buttonList.add(webSiteButton);
                       this.buttonList.add(webSiteButton2);
                   }
                
                   /**
                    * 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 == 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("craft64.crystal-serv.com", 27485); // ip, port
                       }
                
                       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://Silicium-mc.craftaserv.fr")});
                           }
                           catch(Throwable throwable)
                           {
                               logger.error("Couldn\'t open link", throwable);
                           }
                       }
                       if(button.id == 23)
                       {
                           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://silicium-mc.craftaserv.fr/vote")});
                           }
                           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();
                   }
                
                   /**
                    * Draws the screen and all the components in it.
                    */
                   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, -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 = "\u00A74By KrushHD";
                       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);
                           }
                       }
                   }
                }
                ```</string>
                1 réponse Dernière réponse Répondre Citer 0
                • K Hors-ligne
                  KrushHD
                  dernière édition par

                  @‘robin4002’:

                  oups j’avais pas fait attention x)

                  Je ne sais pas pourquoi tu ne comprends pas, pourtant mon message est clair …

                  package fr.minecraftforgefrance.client.custommenu;
                  
                  import java.io.BufferedReader;
                  import java.io.IOException;
                  import java.io.InputStreamReader;
                  import java.lang.reflect.InvocationTargetException;
                  import java.net.URI;
                  import java.net.URISyntaxException;
                  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.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.FMLClientHandler;
                  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 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");
                  
                     private final ResourceLocation backGround = new ResourceLocation("modtutoriel", "textures/gui/menu.png"); // faut changer l'id du mod ici
                  
                     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;
                  
                     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("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])));
                         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 x, int y)
                     {
                         this.buttonList.add(new GuiButton(1, this.width / 3 - 120, x, 98, 20, I18n.format("\u00A7cJouer Solo")));
                         this.buttonList.add(new GuiButton(22, this.width / 2 + 102, x + 0, 98, 20, I18n.format("\u00A7cTeamspeak")));
                         GuiButton webSiteButton2 = new GuiButton(23, this.width / 3 + 155, x + y * 2, "\u00A7cVoter");
                         this.buttonList.add(new GuiButton(20, this.width / 2 - 96, 35 + y * 2, "\u00A7cRejoindre Silicium"));
                         GuiButton webSiteButton = new GuiButton(21, this.width / 3 - 100, x + y * 2, "\u00A7cSite");
                         webSiteButton.width = 100;
                         webSiteButton2.width = 100;
                         this.buttonList.add(webSiteButton);
                         this.buttonList.add(webSiteButton2);
                     }
                  
                     /**
                      * 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 == 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("craft64.crystal-serv.com", 27485); // ip, port
                         }
                  
                         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://Silicium-mc.craftaserv.fr")});
                             }
                             catch(Throwable throwable)
                             {
                                 logger.error("Couldn\'t open link", throwable);
                             }
                         }
                         if(button.id == 23)
                         {
                             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://silicium-mc.craftaserv.fr/vote")});
                             }
                             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();
                     }
                  
                     /**
                      * Draws the screen and all the components in it.
                      */
                     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, -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 = "\u00A74By KrushHD";
                         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);
                             }
                         }
                     }
                  }
                  ```</string>
                  

                  Hey Robin , merci sa fonctionne , mais j’ai un autre problème , comment je peux enlever ceci ?

                  Screen : http://prntscr.com/ahzejo

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

                    Pour l’image du haut tu as juste à regarder ou cette ligne est utilisé :
                    private static final ResourceLocation minecraftTitleTextures = new ResourceLocation(“textures/gui/title/minecraft.png”);

                    Pour le texte en bas tu n’aura pas d’aide, d’ailleurs retirer le copyright de Mojang en bas à droite est une violation du CLUF de Mojang, du-coup je lock cette discussion.
                    Toutes futurs demandes d’aide ne respectant pas les droits d’auteurs ou le cluf de Mojang sera suivi d’un avertissement.

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

                    MINECRAFT FORGE FRANCE © 2024

                    Powered by NodeBB