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

    Main menu custom info serveur

    Sans suite
    1.7.10
    6
    53
    13428
    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.
    • D
      Degraduck dernière édition par

      Donc voilà j’ai créé un menu custom avec la base de celui de Robin mais le soucis est que j’ai créé un bouton qui me connecte directement à mon serveur mais j’aimerai afficher le nombre de joueurs connectés et si le serveur est ouvert ou fermé à côté de ce bouton et je ne sais pas du tout comment faire, je penses qu’avec les paquets cela doit être fesable sauf que je ne les ai jamais utilisés et je ne sais pas du tout comment les utiliser.

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

        La question a déjà été posé : http://www.minecraftforgefrance.fr/showthread.php?tid=1757&pid=20462#pid20462
        Et la solution est sur ironcraft : http://forum.ironcraft.fr/index.php/topic/5729-aide-box-informations-du-serveur-guicustommainmenu-forge/

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

          Merci bien.

          EDIT: J’ai donc tout suivi à la lettre sauf que mon bouton n’apparait pas.

          Mes modifications:

          Dans la classe du GuiMainMenuCustom

          
          private ApiInfo info;
          
          public void initGui()
          {
          
          this.info = new ApiInfo("play.minefus.fr.25565");
          this.info.getInfo();
          }
          
          public void drawScreen(int x, int y, float partialTick)
          {
          int a = 10;
          
          this.info.drawIcon(this.width / 2 - 100 + a, 60 + y + a + 20);
          
          this.drawString(this.fontRendererObj, this.info.getMOTD(), 10, 20, 0xffffff);
          this.drawString(this.fontRendererObj, this.info.getIP(), 10, 30, 0xffffff);
          this.drawString(this.fontRendererObj, this.info.getVersion(), 10, 40, 0xffffff);
          this.drawString(this.fontRendererObj, String.valueOf(this.info.getAcceptTexture()), 10, 50, 0xffffff);
          this.drawString(this.fontRendererObj, String.valueOf(this.info.getPing()), 10, 60, 0xffffff);
          
          
          1 réponse Dernière réponse Répondre Citer 0
          • Snyker
            Snyker dernière édition par

            this.info = new ApiInfo("play.minefus.fr.25565");
            

            Ce serai pas plutot :

            this.info = new ApiInfo("play.minefus.fr:25565");
            

            Avec les deux points devant le port

            Aucune signature n'est disponible pour une barre chocolatée.

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

              iFuSion utilité de venir poster cela sur le forum alors que je viens de te dire a l’instant en vocal que ce n’était pas cela!

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

                @‘Degraduck’:

                Merci bien.

                EDIT: J’ai donc tout suivi à la lettre sauf que mon bouton n’apparait pas.

                Mes modifications:

                Dans la classe du GuiMainMenuCustom

                
                private ApiInfo info;
                
                public void initGui()
                   {
                   
                    this.info = new ApiInfo("play.minefus.fr.25565");
                    this.info.getInfo();
                }
                
                public void drawScreen(int x, int y, float partialTick)
                   {
                    int a = 10;
                   
                    this.info.drawIcon(this.width / 2 - 100 + a, 60 + y + a + 20);
                   
                    this.drawString(this.fontRendererObj, this.info.getMOTD(), 10,  20,  0xffffff);
                       this.drawString(this.fontRendererObj, this.info.getIP(), 10,  30,  0xffffff);
                       this.drawString(this.fontRendererObj, this.info.getVersion(), 10,  40,  0xffffff);
                       this.drawString(this.fontRendererObj, String.valueOf(this.info.getAcceptTexture()), 10,  50,  0xffffff);
                       this.drawString(this.fontRendererObj, String.valueOf(this.info.getPing()), 10,  60,  0xffffff);
                
                

                Sans la classe entière, on peut rien faire. (superbe rime)

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

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

                  La voilà```java
                  package com.degraduck.minefusmainmenu.client;

                  import java.awt.Desktop;
                  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 GuiCustomMinefusMainMenu extends GuiScreen implements GuiYesNoCallback
                  {
                  private ApiInfo info;
                  /** Declaration de l’instance de notre Api pour les informations du serveur*/
                  private static final Logger logger = LogManager.getLogger();
                  /** Le RNG utilisé par l’ écran du menu principal. /
                  private static final Random rand = new Random();
                  /
                  * Compte le nombre de mises à jour d’écran. /
                  private float updateCounter;
                  /
                  * Le message d’accueil . /
                  private String splashText;
                  private GuiButton buttonResetDemo;
                  /
                  * Minuterie utilisée pour faire tourner le panorama , augmente chaque tick. /
                  private int panoramaTimer;
                  /
                  *

                  • Texture alloué pour la fenêtre courante des panoramas de fond du menu principal.
                    /
                    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”);
                    /
                    * Un tableau de tous les chemins d’accès aux photos panoramiques. */
                    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 GuiCustomMinefusMainMenu()
                  {
                  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”;
                  }
                  }

                  /**

                  • Appelé par la boucle principale du jeu de mettre à jour l’écran.
                    */
                    public void updateScreen()
                    {
                    ++this.panoramaTimer;
                    }

                  /**

                  • Renvoie true si cette interface graphique devrait faire une pause le jeu quand il est affiché dans solo
                    */
                    public boolean doesGuiPauseGame()
                    {
                    return false;
                    }

                  /**

                  • Déclenché quand une clé est tapé . Ce est l’équivalent de KeyListener.keyTyped(KeyEvent e).
                    */
                    protected void keyTyped(char p_73869_1_, int p_73869_2_)
                    {}

                  /**

                  • Ajouts des boutons
                    */
                    public void initGui()
                    {
                    /*Initialisation de notre Gui/
                    this.info = new ApiInfo(“play.minefus.fr.25565”);
                    this.info.getInfo();

                  this.viewportTexture = new DynamicTexture(256, 256);
                  this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation(“background”, this.viewportTexture);
                  Calendar calendar = Calendar.getInstance();
                  calendar.setTime(new Date());

                  if(calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
                  {
                  this.splashText = “Happy birthday, ez!”;
                  }
                  else if(calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
                  {
                  this.splashText = “Happy birthday, Notch!”;
                  }
                  else if(calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
                  {
                  this.splashText = “Merry X-mas!”;
                  }
                  else if(calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
                  {
                  this.splashText = “Happy new year!”;
                  }
                  else if(calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
                  {
                  this.splashText = “OOoooOOOoooo! Spooky!”;
                  }

                  boolean flag = true;
                  int i = this.height / 4 + 48;

                  if(this.mc.isDemo())
                  {
                  this.addDemoButtons(i, 24);
                  }
                  else
                  {
                  this.addSingleplayerMultiplayerButtons(i, 24);
                  }

                  this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format(“menu.options”, new Object[0])));
                  this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format(“menu.quit”, new Object[0])));
                  this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12));
                  Object object = this.field_104025_t;

                  synchronized(this.field_104025_t)
                  {
                  this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p);
                  this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A);
                  int j = Math.max(this.field_92023_s, this.field_92024_r);
                  this.field_92022_t = (this.width - j) / 2;
                  this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24;
                  this.field_92020_v = this.field_92022_t + j;
                  this.field_92019_w = this.field_92021_u + 24;
                  }
                  }

                  /**

                  • Ajoute monojoueur et le multijoueur boutons de menu principal pour les joueurs qui ont acheté le jeu .
                    */
                    private void addSingleplayerMultiplayerButtons(int x, int y)
                    {
                    int a = 10;

                  this.buttonList.add(new GuiButton(1, this.width / 2 - 50, 108 + a, 98, 20, “\u00A77Singleplayer”));
                  this.buttonList.add(new GuiButton(2, this.width / 2 - 50, 133 + a, 98, 20, “\u00A7fPuLse \u00A74Gaming”));
                  this.buttonList.add(new GuiButton(20, this.width / 2 - 100, 60 + y + a, “\u00A7aServeur Minefus”));
                  this.buttonList.add(new GuiButton(25, this.width / 2 - 100, 160 + a, 200, 20, “\u00A76Boutique”));
                  GuiButton webSiteButton = new GuiButton(21, this.width / 2 - 200, 122 + a, 98, 20, " \u00A7bSite");
                  GuiButton fmlModButton = new GuiButton(6, this.width / 2 - 200, 122 + a, 98, 20, “\u00A7cTeamspeak”);
                  fmlModButton.xPosition = this.width / 2 + 100;
                  webSiteButton.width = 98;
                  fmlModButton.width = 98;
                  this.buttonList.add(webSiteButton);
                  this.buttonList.add(fmlModButton);

                  }

                  /**

                  • Ajoute les boutons de démonstration dans le menu principal pour les joueurs qui jouent Démo .
                    */
                    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)
                  {
                  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://pulse-gaming.gg”)});
                  }
                  catch(Throwable throwable)
                  {
                  logger.error(“Couldn’t open link”, throwable);
                  }
                  }

                  if(button.id == 4)
                  {
                  this.mc.shutdown();
                  }

                  if(button.id == 6)
                  {
                  String ipts3 = “ts.minefus.fr”; // address serveur ts 3
                  int portTs3 = 9987; //port ts 3 celui est par defaut
                  URI uri = URI.create(“ts3server://”+ ipts3 +“?port=”+ portTs3);
                  try { Desktop.getDesktop().browse(uri);
                  }

                  catch (IOException e) {
                  // TODO Auto-generated catch block e.printStackTrace(); } }
                  }
                  }

                  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(“play.minefus.fr”, 25565); // 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://minefus.fr”)});
                  }
                  catch(Throwable throwable)
                  {
                  logger.error(“Couldn’t open link”, throwable);
                  }

                  }

                  if(button.id == 25)
                  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://minefus.fr/boutique/”)});
                  }
                  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);
                  }
                  }

                  /**

                  • Dessine le menu principal 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);
                  }

                  /**

                  • Rotation et brouille la vue skybox dans le menu principal
                    */
                    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();
                    }

                  /**

                  • Dessine l’écran et tous les composants en elle.
                    */
                    public void drawScreen(int x, int y, float partialTick)
                    {
                    int a = 20;

                  this.info.drawIcon(this.width / 2 - 100 + a, 60 + y + a + 20);

                  this.drawString(this.fontRendererObj, this.info.getMOTD(), 10, 20, 0xffffff);
                  this.drawString(this.fontRendererObj, this.info.getIP(), 10, 30, 0xffffff);
                  this.drawString(this.fontRendererObj, this.info.getVersion(), 10, 40, 0xffffff);
                  this.drawString(this.fontRendererObj, String.valueOf(this.info.getAcceptTexture()), 10, 50, 0xffffff);
                  this.drawString(this.fontRendererObj, String.valueOf(this.info.getPing()), 10, 60, 0xffffff);

                  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 = “Copyright Mojang AB. Do not distribute!”;
                  this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);

                  if(this.field_92025_p != null && this.field_92025_p.length() > 0)
                  {
                  drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
                  this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
                  this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
                  }

                  super.drawScreen(x, y, partialTick);
                  }

                  /**

                  • Appelé lorsque la souris est cliquée .
                    */
                    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);
                  }
                  }
                  }
                  }

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

                    @‘Degraduck’:

                    La voilà

                    package com.degraduck.minefusmainmenu.client;
                    
                    import java.awt.Desktop;
                    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 GuiCustomMinefusMainMenu extends GuiScreen implements GuiYesNoCallback
                    {
                    private ApiInfo info;
                    /** Declaration de l'instance de notre Api pour les informations du serveur*/
                    private static final Logger logger = LogManager.getLogger();
                       /** Le RNG utilisé par l' écran du menu principal. */
                       private static final Random rand = new Random();
                       /** Compte le nombre de mises à jour d'écran. */
                       private float updateCounter;
                       /** Le message d'accueil . */
                       private String splashText;
                       private GuiButton buttonResetDemo;
                       /** Minuterie utilisée pour faire tourner le panorama , augmente chaque tick. */
                       private int panoramaTimer;
                       /**
                        * Texture alloué pour la fenêtre courante des panoramas de fond du menu principal.
                        */
                       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");
                       /** Un tableau de tous les chemins d'accès aux photos panoramiques. */
                       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 GuiCustomMinefusMainMenu()
                       {
                           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";
                           }
                       }
                    
                       /**
                        * Appelé par la boucle principale du jeu de mettre à jour l'écran.
                        */
                       public void updateScreen()
                       {
                           ++this.panoramaTimer;
                       }
                    
                       /**
                        * Renvoie true si cette interface graphique devrait faire une pause le jeu quand il est affiché dans solo
                        */
                       public boolean doesGuiPauseGame()
                       {
                           return false;
                       }
                    
                       /**
                        * Déclenché quand une clé est tapé . Ce est l'équivalent de KeyListener.keyTyped(KeyEvent e).
                        */
                       protected void keyTyped(char p_73869_1_, int p_73869_2_)
                       {}
                    
                       /**
                        * Ajouts des boutons
                        */
                       public void initGui()
                       {
                        /**Initialisation de notre Gui*/
                        this.info = new ApiInfo("play.minefus.fr.25565");
                        this.info.getInfo();
                       
                           this.viewportTexture = new DynamicTexture(256, 256);
                           this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture);
                           Calendar calendar = Calendar.getInstance();
                           calendar.setTime(new Date());
                    
                           if(calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
                           {
                               this.splashText = "Happy birthday, ez!";
                           }
                           else if(calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
                           {
                               this.splashText = "Happy birthday, Notch!";
                           }
                           else if(calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
                           {
                               this.splashText = "Merry X-mas!";
                           }
                           else if(calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
                           {
                               this.splashText = "Happy new year!";
                           }
                           else if(calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
                           {
                               this.splashText = "OOoooOOOoooo! Spooky!";
                           }
                    
                           boolean flag = true;
                           int i = this.height / 4 + 48;
                    
                           if(this.mc.isDemo())
                           {
                               this.addDemoButtons(i, 24);
                           }
                           else
                           {
                               this.addSingleplayerMultiplayerButtons(i, 24);
                           }
                    
                           this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0])));
                           this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0])));
                           this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12));
                           Object object = this.field_104025_t;
                    
                           synchronized(this.field_104025_t)
                           {
                               this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p);
                               this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A);
                               int j = Math.max(this.field_92023_s, this.field_92024_r);
                               this.field_92022_t = (this.width - j) / 2;
                               this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24;
                               this.field_92020_v = this.field_92022_t + j;
                               this.field_92019_w = this.field_92021_u + 24;
                           }
                       }
                    
                       /**
                        * Ajoute monojoueur et le multijoueur boutons de menu principal pour les joueurs qui ont acheté le jeu .
                        */
                       private void addSingleplayerMultiplayerButtons(int x, int y)
                       {
                        int a = 10;
                       
                        this.buttonList.add(new GuiButton(1, this.width / 2 - 50, 108 + a, 98, 20, "\u00A77Singleplayer"));
                           this.buttonList.add(new GuiButton(2, this.width / 2 - 50, 133 + a, 98, 20, "\u00A7fPuLse \u00A74Gaming"));
                           this.buttonList.add(new GuiButton(20, this.width / 2 - 100, 60 + y + a, "\u00A7aServeur Minefus"));
                           this.buttonList.add(new GuiButton(25, this.width / 2 - 100, 160 + a, 200, 20, "\u00A76Boutique"));
                           GuiButton webSiteButton = new GuiButton(21, this.width / 2 - 200, 122 + a, 98, 20, " \u00A7bSite");
                           GuiButton fmlModButton = new GuiButton(6, this.width /  2 - 200, 122 + a, 98, 20, "\u00A7cTeamspeak");
                           fmlModButton.xPosition = this.width / 2 + 100;
                           webSiteButton.width = 98;
                           fmlModButton.width = 98;
                           this.buttonList.add(webSiteButton);
                           this.buttonList.add(fmlModButton);
                           
                       }
                    
                       /**
                        * Ajoute les boutons de démonstration dans le menu principal pour les joueurs qui jouent Démo .
                        */
                       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)
                           {
                            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://pulse-gaming.gg")});
                               }
                               catch(Throwable throwable)
                               {
                                   logger.error("Couldn\'t open link", throwable);
                               }
                           }
                    
                           if(button.id == 4)
                           {
                               this.mc.shutdown();
                           }
                    
                           if(button.id == 6)
                           {
                            String ipts3 = "ts.minefus.fr"; // address serveur ts 3
                               int portTs3 = 9987; //port ts 3 celui est par defaut
                               URI uri = URI.create("ts3server://"+ ipts3 +"?port="+ portTs3);
                               try { Desktop.getDesktop().browse(uri);
                               }
                               
                               catch (IOException e) {
                                   // TODO Auto-generated catch block e.printStackTrace(); } }
                           }
                           }
                    
                           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("play.minefus.fr", 25565); // 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://minefus.fr")});
                               }
                               catch(Throwable throwable)
                               {
                                   logger.error("Couldn\'t open link", throwable);
                               }
                               
                               
                               
                           }
                           
                           if(button.id == 25)
                            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://minefus.fr/boutique/")});
                           }
                           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);
                           }
                       }
                    
                       /**
                        * Dessine le menu principal 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);
                       }
                    
                       /**
                        * Rotation et brouille la vue skybox dans le menu principal
                        */
                       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();
                       }
                    
                       /**
                        * Dessine l'écran et tous les composants en elle.
                        */
                       public void drawScreen(int x, int y, float partialTick)
                       {
                        int a = 20;
                       
                        this.info.drawIcon(this.width / 2 - 100 + a, 60 + y + a + 20);
                       
                        this.drawString(this.fontRendererObj, this.info.getMOTD(), 10,  20,  0xffffff);
                           this.drawString(this.fontRendererObj, this.info.getIP(), 10,  30,  0xffffff);
                           this.drawString(this.fontRendererObj, this.info.getVersion(), 10,  40,  0xffffff);
                           this.drawString(this.fontRendererObj, String.valueOf(this.info.getAcceptTexture()), 10,  50,  0xffffff);
                           this.drawString(this.fontRendererObj, String.valueOf(this.info.getPing()), 10,  60,  0xffffff);
                       
                       
                           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 = "Copyright Mojang AB. Do not distribute!";
                           this.drawString(this.fontRendererObj, s1, this.width - this.fontRendererObj.getStringWidth(s1) - 2, this.height - 10, -1);
                    
                           if(this.field_92025_p != null && this.field_92025_p.length() > 0)
                           {
                               drawRect(this.field_92022_t - 2, this.field_92021_u - 2, this.field_92020_v + 2, this.field_92019_w - 1, 1428160512);
                               this.drawString(this.fontRendererObj, this.field_92025_p, this.field_92022_t, this.field_92021_u, -1);
                               this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);
                           }
                    
                           super.drawScreen(x, y, partialTick);
                       }
                    
                       /**
                        * Appelé lorsque la souris est cliquée .
                        */
                       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>
                    

                    Mets un logger.info(“quelque chose”) dans ton drawScreen ou ton initGui parce que je vois pas d’où ça vient : tes boutons sont déclarés et tu as bien le super.drawScreen.

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

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

                      Je ne suis pas chez moi je test des que je rentre et je te redis.

                      EDIT: Alors quand je met le logger dans initGui il apparait bien une fois mais quand je le met dans le drawScreen ça me spam la console.

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

                        iFuSion34 t’as dit où est le problème …
                        @‘iFuSion34’:

                        this.info = new ApiInfo("play.minefus.fr.25565");
                        

                        Ce serai pas plutot :

                        this.info = new ApiInfo("play.minefus.fr:25565");
                        

                        Avec les deux points devant le port

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

                          Non j’ai essayer avec les points cela ne change rien.

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

                            @‘Degraduck’:

                            Non j’ai essayer avec les points cela ne change rien.

                            Il faut mettre “:” et non “.” …

                            Site web contenant mes scripts : http://SCAREXgaming.github.io

                            Pas de demandes de support par MP ni par skype SVP.
                            Je n'accepte sur skype que l…

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

                              Je pense qu’il faudrait surrement mieux mettre l’ip en Chiffre et non en lettre

                              comme ceci :

                              111.111.25.35:25565

                              Aucune signature n'est disponible pour une barre chocolatée.

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

                                Mais dans mon code j’ai modifié et mis les " : " et cela ne change rien et pour l’ip chiffré je viens de tester et aucun changement.

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

                                  @‘Degraduck’:

                                  Mais dans mon code j’ai modifié et mis les " : " et cela ne change rien et pour l’ip chiffré je viens de tester et aucun changement.

                                  C’est-à-dire “aucun chargement” ?

                                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                                  Pas de demandes de support par MP ni par skype SVP.
                                  Je n'accepte sur skype que l…

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

                                    bah que je mettes un " . " ou " : " ou alors en chiffre ou avec la redirection minefus.fr cela fais le même résultat.

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

                                      Mets  :, ça doit être un double point.
                                      Si ça ne fonctionne toujours pas, il y a un autre problème.

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

                                        j’ai mis un double point et cela ne fonctionne toujours pas.

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

                                          Envoie-moi un zip de ton dossier src, je vais regarder de mon côté.

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

                                            Edit : je t’envoie les sources en MP même si cela ne me dérange pas forcèrent

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB