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

    Résolu Background Fix

    1.7.x
    1.7.10
    4
    10
    2149
    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.
    • leo01418
      leo01418 dernière édition par

      Bonjour déjà je voudrait vous avertir que j’ai tout essayé ce que j’ai vu sur MFF pour la background(à mon avais c’est l’un des sujets les plus fait) donc j’ai regardé pour un background fix j’ai rajouté les méthodes en enlevé je ne comprend pas (pour commencé j’avais télégargé le pack de robin)

      Ma Classe:

      package ed.enderdeath.mod.common;
      
      import java.awt.Desktop;
      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 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.common.FMLCommonHandler;
      import cpw.mods.fml.common.eventhandler.SubscribeEvent;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiButtonLanguage;
      import net.minecraft.client.gui.GuiConfirmOpenLink;
      import net.minecraft.client.gui.GuiMainMenu;
      import net.minecraft.client.gui.GuiOptions;
      import net.minecraft.client.gui.GuiScreen;
      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.storage.ISaveFormat;
      import net.minecraft.world.storage.WorldInfo;
      import net.minecraftforge.client.event.GuiScreenEvent.ActionPerformedEvent;
      import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent;
      import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent.Post;
      import net.minecraftforge.common.MinecraftForge;
      
      @SideOnly(Side.CLIENT)
      public class GuiCustomMenu extends GuiScreen implements GuiYesNoCallback
      {
          private static final Logger logger = LogManager.getLogger();
          /** The RNG used by the Main Menu Screen. */
          private static final Random rand = new Random();
          /** Counts the number of screen updates. */
          private float updateCounter;
          /** The splash message. */
          private String splashText;
          private GuiButton buttonResetDemo;
          /** Timer used to rotate the panorama, increases every tick. */
          private int panoramaTimer;
          /** Texture allocated for the current viewport of the main menu's panorama background. */
          private DynamicTexture viewportTexture;
          private final Object field_104025_t = new Object();
          private String field_92025_p;
          private String field_146972_A;
          private String field_104024_v;
          private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
          private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png");
          /** An array of all the paths to the panorama pictures. */
          private final ResourceLocation backGround = new ResourceLocation("enderdeath","textures/gui/tt.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 GuiCustomMenu()
          {
      
              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.
           */
          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);
          }
      
          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);
      
              ActionPerformedEvent.Pre event;
      
              boolean flag = true;
              int i = this.height / 4 + 48;
      
              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_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.
           */
        /*
           * 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;
              }
          }
          @SubscribeEvent
          public void onActionPerformed(ActionPerformedEvent.Pre event)
          {
          if (event.gui instanceof GuiMainMenu)
          {
              if(event.button.id == 32)
              {
                   try {
          Desktop.getDesktop().browse(new URI("http://www.minecraftforgefrance.fr/"));
                   }
           catch(Throwable throwable)
                 {
                     logger.error("Couldn\'t open link", throwable);
                 }
              }
              else if(event.button.id == 60)
              {
              FMLClientHandler.instance().connectToServerAtStartup("62.210.62.194",10048);
                 ;
              }
          }
      
          }
          @SubscribeEvent
        public void onInitGuiEven(InitGuiEvent.Post event)
           {
        if (event.gui instanceof GuiMainMenu) { // On regarde si le gui est bien le menu principal
        for (Object b : event.buttonList) { // On parcourt la liste des boutons
        if (((GuiButton) b).id == 2) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
        ((GuiButton) b).visible = false; // On ne l'affiche plus
        }
        if (((GuiButton) b).id == 1) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
        ((GuiButton) b).visible = false; // On ne l'affiche plus
        }
        if (((GuiButton) b).id == 6) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
        ((GuiButton) b).visible = false; // On ne l'affiche plus
        }
        if (((GuiButton) b).id == 5) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
        ((GuiButton) b).visible = false; // On ne l'affiche plus
        }
        if (((GuiButton) b).id == 0) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
        ((GuiButton) b).visible = false; // On ne l'affiche plus
        }
      
        if (((GuiButton) b).id == 4) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
        ((GuiButton) b).visible = false; // On ne l'affiche plus
        }
      
        }
      
        }
        }
      
          @SubscribeEvent
      public void onInitGuiEvent(InitGuiEvent.Post event)
          {
      if (event.gui instanceof GuiMainMenu) { 
      for (Object b : event.buttonList) {
      if (((GuiButton) b).id == 14) {
      ((GuiButton) b).visible = false; 
      }
      }
      int i = event.gui.height / 6 + 30; 
      event.buttonList.add(new GuiButton(60, event.gui.width / 2 - 100, i + 24 * 2, 175, 20, "Rejoindre le serveur") { 
      
      });
      int ia = event.gui.height /2 + 15;
      event.buttonList.add(new GuiButton(32, event.gui.width /  2 - 55, ia + 24 * 2, 100, 20, "Site internet") { 
      
      });
      int iq = event.gui.height / 2 + 15; 
      event.buttonList.add(new GuiButton(33, event.gui.width / 1 - 154, iq + 24 * 2, 50, 20, "Youtube") { 
      
      });
      int iqs = event.gui.height / 2 + 15; 
      event.buttonList.add(new GuiButton(34, event.gui.width / 3 - 45, iqs + 24 * 2, 50, 20, "Twitter") { 
      
      });
      int ib = event.gui.height / 3 + 25;
      event.buttonList.add(new GuiButton(30, event.gui.width / 2 - 80, ib + 24 * 2, 150, 20,( "Teamspeak")) { 
      @Override
      public void mouseReleased(int x, int y) { 
      if (Desktop.isDesktopSupported()) { 
      try {
      Desktop.getDesktop().browse(new URI("ts3server://ts.enderdeath.fr?port=9987"));
      } catch (Exception e) {
      
      }
      }
      }
      
      });
      
      }
      }
      
          @SubscribeEvent
        public void onActionPerformedA(ActionPerformedEvent.Pre event) {
        if (event.gui instanceof GuiOptions && event.button.id == 104) event.setCanceled(true); 
      
          }
      
          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
           */
      
          /**
           * Rotate and blurs the skybox view in the main menu
           */
      
          /**
           * Renders the skybox in the main menu
           */
      
          /**
           * Draws the screen and all the components in it.
           */
      
          /**
           * 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);
                  }
              }
          }
      }
      

      En espérant que vous pouvez m’aidé</string>

      Voila ma signature

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

        Salut,
        ça ne fonctionne pas car ton menu est toujours à la fois un mélange de modification par event et de modification directe.
        Il faut que tu utilises l’event d’ouverture de gui pour ouvrir ton menu à la place du menu de base et que tu ajoutes directement les boutons dans la classe et non via des event.
        Pour ouvrir le gui à la place de celui de mc :

        @SubscribeEvent
        public void onGuiOpen(GuiOpenEvent event)
        {
        if(event.gui instanceof GuiMainMenu)
        {
        Minecraft.getMinecraft().displayGuiScreen(new GuiCustomMenu());
        }
        }
        
        1 réponse Dernière réponse Répondre Citer 0
        • leo01418
          leo01418 dernière édition par

          Déjà Merci de ta réponse vite 🙂  mais malheureusement sa ne marche pas

          Voila ma signature

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

            Ce n’est pas sa solution qui ne marche pas, c’est ta manière de t’en servir à travers ton code. Envoie ton event et ta classe GuiCustomMenu

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

              Tien Plagion  🙂

              package ed.enderdeath.mod.common;
              
              import java.awt.Desktop;
              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 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.common.FMLCommonHandler;
              import cpw.mods.fml.common.eventhandler.SubscribeEvent;
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;
              import net.minecraft.client.Minecraft;
              import net.minecraft.client.gui.GuiButton;
              import net.minecraft.client.gui.GuiButtonLanguage;
              import net.minecraft.client.gui.GuiConfirmOpenLink;
              import net.minecraft.client.gui.GuiMainMenu;
              import net.minecraft.client.gui.GuiOptions;
              import net.minecraft.client.gui.GuiScreen;
              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.storage.ISaveFormat;
              import net.minecraft.world.storage.WorldInfo;
              import net.minecraftforge.client.event.GuiScreenEvent.ActionPerformedEvent;
              import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent;
              import net.minecraftforge.client.event.GuiScreenEvent.InitGuiEvent.Post;
              import net.minecraftforge.common.MinecraftForge;
              
              @SideOnly(Side.CLIENT)
              public class GuiCustomMenu extends GuiScreen implements GuiYesNoCallback
              {
                  private static final Logger logger = LogManager.getLogger();
                  /** The RNG used by the Main Menu Screen. */
                  private static final Random rand = new Random();
                  /** Counts the number of screen updates. */
                  private float updateCounter;
                  /** The splash message. */
                  private String splashText;
                  private GuiButton buttonResetDemo;
                  /** Timer used to rotate the panorama, increases every tick. */
                  private int panoramaTimer;
                  /** Texture allocated for the current viewport of the main menu's panorama background. */
                  private DynamicTexture viewportTexture;
                  private final Object field_104025_t = new Object();
                  private String field_92025_p;
                  private String field_146972_A;
                  private String field_104024_v;
                  private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
                  private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png");
                  /** An array of all the paths to the panorama pictures. */
                  private final ResourceLocation backGround = new ResourceLocation("enderdeath","textures/gui/tt.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 GuiCustomMenu()
                  {
              
                      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.
                   */
              
                  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);
                  }
              
                  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);
              
                      ActionPerformedEvent.Pre event;
              
                      boolean flag = true;
                      int i = this.height / 4 + 48;
              
                      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_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.
                   */
                /*
                   * 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;
                      }
                  }
                  @SubscribeEvent
                  public void onActionPerformed(ActionPerformedEvent.Pre event)
                  {
                  if (event.gui instanceof GuiMainMenu)
                  {
                      if(event.button.id == 32)
                      {
                           try {
                  Desktop.getDesktop().browse(new URI("http://www.minecraftforgefrance.fr/"));
                           }
                   catch(Throwable throwable)
                         {
                             logger.error("Couldn\'t open link", throwable);
                         }
                      }
                      else if(event.button.id == 60)
                      {
                      FMLClientHandler.instance().connectToServerAtStartup("62.210.62.194",10048);
                         ;
                      }
                  }
              
                  }
                  @SubscribeEvent
                public void onInitGuiEven(InitGuiEvent.Post event)
                   {
                if (event.gui instanceof GuiMainMenu) { // On regarde si le gui est bien le menu principal
                for (Object b : event.buttonList) { // On parcourt la liste des boutons
                if (((GuiButton) b).id == 2) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
                ((GuiButton) b).visible = false; // On ne l'affiche plus
                }
                if (((GuiButton) b).id == 1) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
                ((GuiButton) b).visible = false; // On ne l'affiche plus
                }
                if (((GuiButton) b).id == 6) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
                ((GuiButton) b).visible = false; // On ne l'affiche plus
                }
                if (((GuiButton) b).id == 5) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
                ((GuiButton) b).visible = false; // On ne l'affiche plus
                }
                if (((GuiButton) b).id == 0) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
                ((GuiButton) b).visible = false; // On ne l'affiche plus
                }
              
                if (((GuiButton) b).id == 4) { // Si c'est le bouton "Minecraft Realms" (qui a l'ID 14)
                ((GuiButton) b).visible = false; // On ne l'affiche plus
                }
              
                }
              
                }
                }
              
                  @SubscribeEvent
              public void onInitGuiEvent(InitGuiEvent.Post event)
                  {
              if (event.gui instanceof GuiMainMenu) { 
              for (Object b : event.buttonList) {
              if (((GuiButton) b).id == 14) {
              ((GuiButton) b).visible = false; 
              }
              }
              int i = event.gui.height / 6 + 30; 
              event.buttonList.add(new GuiButton(60, event.gui.width / 2 - 100, i + 24 * 2, 175, 20, "Rejoindre le serveur") { 
              
              });
              int ia = event.gui.height /2 + 15;
              event.buttonList.add(new GuiButton(32, event.gui.width /  2 - 55, ia + 24 * 2, 100, 20, "Site internet") { 
              
              });
              int iq = event.gui.height / 2 + 15; 
              event.buttonList.add(new GuiButton(33, event.gui.width / 1 - 154, iq + 24 * 2, 50, 20, "Youtube") { 
              
              });
              int iqs = event.gui.height / 2 + 15; 
              event.buttonList.add(new GuiButton(34, event.gui.width / 3 - 45, iqs + 24 * 2, 50, 20, "Twitter") { 
              
              });
              int ib = event.gui.height / 3 + 25;
              event.buttonList.add(new GuiButton(30, event.gui.width / 2 - 80, ib + 24 * 2, 150, 20,( "Teamspeak")) { 
              @Override
              public void mouseReleased(int x, int y) { 
              if (Desktop.isDesktopSupported()) { 
              try {
              Desktop.getDesktop().browse(new URI("ts3server://ts.enderdeath.fr?port=9987"));
              } catch (Exception e) {
              
              }
              }
              }
              
              });
              
              }
              }
              
                  @SubscribeEvent
                public void onActionPerformedA(ActionPerformedEvent.Pre event) {
                if (event.gui instanceof GuiOptions && event.button.id == 104) event.setCanceled(true); 
              
                  }
              
                  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
                   */
              
                  /**
                   * Rotate and blurs the skybox view in the main menu
                   */
              
                  /**
                   * Renders the skybox in the main menu
                   */
              
                  /**
                   * Draws the screen and all the components in it.
                   */
              
                  /**
                   * 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);
                          }
                      }
                  }
              }
              
              @EventHandler
              public void init(FMLInitializationEvent event)
              {
              
              proxy.registerRender();
              System.out.println("init");
              MinecraftForge.EVENT_BUS.register(new EnchantForge());
              
              PotionTest.loadEffects();
              PotionTest.register();
              NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
              
              FMLCommonHandler.instance().bus().register(new AchivementBlockcasse());
              if(event.getSide().isClient())
                     {
              FMLCommonHandler.instance().bus().register(this);
              MinecraftForge.EVENT_BUS.register(new GuiCustomMenu());
              
                     }
              
              }
              
                @SubscribeEvent
                 @SideOnly(Side.CLIENT)
                 public void onTick(TickEvent.ClientTickEvent event)
                 {
                     Minecraft mc = Minecraft.getMinecraft();
              FMLCommonHandler.instance().bus().register(new TickHandler(mc)); 
              
                 }
                 @SubscribeEvent
                 @SideOnly(Side.CLIENT)
                 public void onGuiOpen(GuiOpenEvent event)
                 {
                     if(event.gui instanceof GuiMainMenu)
                     {
                         Minecraft.getMinecraft().displayGuiScreen(new GuiCustomMenu());
                     }
                 }
              ```</string>

              Voila ma signature

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

                Ta méthode GuiOpenEvent est dans quelle classe ?
                Et aussi autre chose : "FMLCommonHandler.instance().bus().register(new TickHandler(mc)); " ( dans onTick) ceci va register ta classe comme évent chaque tick, alors ça fait que soit fml remplace l’ancien soit il ajoute (use de la mémoire) jusqu’à possiblement crash.

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                  Franchement il est tant pour toi d’apprendre sérieusement java.
                  Ton code est du gros n’importe quoi.
                  Rien que ton menu était une horreur à mes yeux, je pensais avoir vu le pire possible mais non …
                  "FMLCommonHandler.instance().bus().register(new TickHandler(mc)); " à l’intérieur d’un event de tick.
                  Je n’avais encore jamais vu ça.

                  J’ai l’impression que tu ne comprends absolument pas ce que tu fais, on dirai que tu copies du code par-ci par-là.

                  Et sinon, formates ton code ! Tu as juste à faire ctrl + shift + f dans eclipse pour qu’il formate la classe automatiquement. Travailler avec du code mal indenté c’est juste pas possible. C’est illisible, c’est comme lire du texte mal orthographié, c’est compliqué et ça fait mal aux yeux.
                  (Faites du python, vous-allez comprendre ce que c’est indenter correctement du code. Python se base entièrement sur ça, en python du code mal indenté, ça plante :p)

                  Pour finir, afin de mettre un peu de positif dans ce message, saches que tu peux progresser. Sur MFF j’ai déjà vu pas mal de personne qui au début ne comprenait pas grand chose et qui maintenant ont un très bon niveau. Mais ce niveau n’est pas arrivé toi seul, ils ont suivis différents tutoriels sur la programmation (openclassroom est très bien pour débuter). Il y a aussi un tutoriel sur MFF qui à pour but de fournir la base de Java. Mais sans cette base tu ne pourra jamais progresser.

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

                    +1 Entièrement d’accord !

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

                      Résolu le bakcground s’affiche enfin j’ai refait la classe

                      Voila ma signature

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

                        Bravo !

                        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