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

    Résolu Récupéré le nombre de joueurs sur un serveur

    1.7.x
    1.7.10
    3
    19
    3652
    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.
    • ph1823
      ph1823 dernière édition par

      Bonjours/Bonjoirs, je viens ici car je ne trouve pas comment faire pour affiché le nombre de joueurs sur la abrre de connection pour mon serveur voici le code utilisé :

      
      //FrenchAltis
      ServerData s = new ServerData("GloryCraft", "****:****");
      
      //Color c = new Color(150,150,255);
      
      //FMLClientHandler.instance().beginServerLoading(s.);
      this.buttonList.add(new GuiButton(33, this.width / 2 - 100, i, 200, 20, "GloryCraft (" + s.field_147412_i + ")" /* EnumChatFormatting.AQUA +"F" + EnumChatFormatting.BLACK + "r" + EnumChatFormatting.BLUE + "e" + EnumChatFormatting.BOLD + "n" + EnumChatFormatting.DARK_AQUA + "c" + EnumChatFormatting.DARK_BLUE + "h" + EnumChatFormatting.DARK_GRAY + "Altis"*/));
      
      

      Merci de votre généreuse aide.

      Cordialement, le membre ayant le pseudo "ph1823"

      Ma chaîne YouTube: https://www.youtube.com/c/ph1823
      Mon Twitter : https://twitter.com/ph1823
      Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

        serverData.populationInfo.
        Seulement cette valeur ne vaut rien par défaut, il faut envoyer un ping au serveur pour qu’elle prenne une valeur
        Regardes la classe ServerListEntryNormal.

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

          Bonjours, j’ai suivit vos conseil et j’ai ajouté sa :

                     ServerData s = new ServerData("GloryCraft", "****:****");
                     GuiMultiplayer m = new GuiMultiplayer(this.mc.currentScreen);
          
                     OldServerPinger o = new OldServerPinger();
                     try {
          m.func_146789_i().func_147224_a(s);
          o.func_147224_a(s);
          } catch (UnknownHostException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          

          Sauf que sa me return toujours null, ou me suis-je trompée? Ou alors je n’est pas bien suivi le code de votre class?

          Cordialement, le membre ayant le pseudo "ph1823"

          Ma chaîne YouTube: https://www.youtube.com/c/ph1823
          Mon Twitter : https://twitter.com/ph1823
          Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

            Pourquoi tu as que des func_xxxx ?
            Chez moi la fonction s’appelle ping au lieu de func_147224_a.
            Mais sinon ça me semble bon, c’est étrange.

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

              Quand je vais voir la class en question, au lieux de ping (que j’ai vue dans la version 1.8) j’ai cette fonction j’ai oublié de vous précié que j’était en 1.7.10 désoler, c’est un détail important je pense.

              Cordialement, le membre ayant le pseudo "ph1823"

              Ma chaîne YouTube: https://www.youtube.com/c/ph1823
              Mon Twitter : https://twitter.com/ph1823
              Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                Bonjours, je me permet de faire un petit up car je n’est toujours pas trouvée la solutions qqn puorrait il m’aidé?

                Cordialement, le membre ayant le pseudo "ph1823"

                Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                Mon Twitter : https://twitter.com/ph1823
                Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                  Comme a dit robin je te conseille de regarder comment Minecraft arrive à prendre cette donnée sur le menu multijoueur sinon fais un packet qui demande le nombre de joueurs sur le serveur c’est pas compliqué 😉

                  >! Développeur de Altis-Life (Arma III) sur Minecraft !
                  >! Site web     : https://lemnoslife.com
                  TeamSpeak : ts.lemnoslife.com

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

                    Normalement

                    OldServerPinger pinger = new OldServerPinger();
                    pinger.func_147224_a(s);
                    

                    Mit dans un thread à part devrait être suffisant comme c’est la fonction func_147224_a qui s’occupe de tout.
                    Tu peux envoyer ton code complet ?

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

                      Voici mon code : (je pense que l’erreur veins du Thread, vue que je les directement inséré avant que le bouton de connecté soit crée)

                      package com.example.examplemod;
                      
                      import java.awt.Desktop;
                      import java.io.BufferedReader;
                      import java.io.IOException;
                      import java.io.InputStreamReader;
                      import java.net.URI;
                      import java.net.UnknownHostException;
                      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.multiplayer.ServerData;
                      import net.minecraft.client.network.OldServerPinger;
                      import net.minecraft.client.renderer.OpenGlHelper;
                      import net.minecraft.client.renderer.Tessellator;
                      import net.minecraft.client.renderer.WorldRenderer;
                      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.fml.client.FMLClientHandler;
                      import net.minecraftforge.fml.client.GuiModList;
                      import net.minecraftforge.fml.common.FMLCommonHandler;
                      import net.minecraftforge.fml.relauncher.Side;
                      import net.minecraftforge.fml.relauncher.SideOnly;
                      
                      import org.apache.commons.io.Charsets;
                      import org.apache.logging.log4j.LogManager;
                      import org.apache.logging.log4j.Logger;
                      import org.lwjgl.opengl.GL11;
                      import org.lwjgl.opengl.GLContext;
                      import org.lwjgl.util.glu.Project;
                      
                      import com.google.common.base.Strings;
                      import com.google.common.collect.Lists;
                      
                      @SideOnly(Side.CLIENT)
                      public class CustomMainMenu extends GuiScreen implements GuiYesNoCallback
                      {
                         private static final Logger logger = LogManager.getLogger();
                         /** The RNG used by the Main Menu Screen. */
                         private static final Random rand = new Random();
                         /** Counts the number of screen updates. */
                         private float updateCounter;
                         /** The splash message. */
                         private String splashText;
                         private GuiButton buttonResetDemo;
                         /** Timer used to rotate the panorama, increases every tick. */
                         private int panoramaTimer;
                         /**
                          * Texture allocated for the current viewport of the main menu's panorama background.
                          */
                         private DynamicTexture viewportTexture;
                         private final Object field_104025_t = new Object();
                         private String field_92025_p;
                         private String field_146972_A;
                         private String field_104024_v;
                         private static final ResourceLocation splashTexts = new ResourceLocation("texts/splashes.txt");
                         private static final ResourceLocation minecraftTitleTextures = new ResourceLocation("textures/gui/title/minecraft.png");
                         /** An array of all the paths to the panorama pictures. */
                         private static final ResourceLocation titlePanoramaPaths = new ResourceLocation("guicustom","textures/b.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 CustomMainMenu()
                         {
                             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.areShadersSupported())
                             {
                                 this.field_92025_p = I18n.format("title.oldgl1", new Object[0]);
                                 this.field_146972_A = I18n.format("title.oldgl2", new Object[0]);
                                 this.field_104024_v = "https://help.mojang.com/customer/portal/articles/325948?ref=game";
                             }
                         }
                      
                         /**
                          * Called from the main game loop to update the screen.
                          */
                         public void updateScreen()
                         {
                             ++this.panoramaTimer;
                         }
                      
                         /**
                          * Returns true if this GUI should pause the game when it is displayed in single-player
                          */
                         public boolean doesGuiPauseGame()
                         {
                             return false;
                         }
                      
                         /**
                          * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
                          */
                         protected void keyTyped(char p_73869_1_, int p_73869_2_)
                         {}
                      
                         /**
                          * Adds the buttons (and other controls) to the screen in question.
                          */
                         public void initGui()
                         {
                             this.viewportTexture = new DynamicTexture(256, 256);
                             this.field_110351_G = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture);
                             Calendar calendar = Calendar.getInstance();
                             calendar.setTime(new Date());
                      
                             if(calendar.get(2) + 1 == 11 && calendar.get(5) == 9)
                             {
                                 this.splashText = "Happy birthday, ez!";
                             }
                             else if(calendar.get(2) + 1 == 6 && calendar.get(5) == 1)
                             {
                                 this.splashText = "Happy birthday, Notch!";
                             }
                             else if(calendar.get(2) + 1 == 12 && calendar.get(5) == 24)
                             {
                                 this.splashText = "Merry X-mas!";
                             }
                             else if(calendar.get(2) + 1 == 1 && calendar.get(5) == 1)
                             {
                                 this.splashText = "Happy new year!";
                             }
                             else if(calendar.get(2) + 1 == 10 && calendar.get(5) == 31)
                             {
                                 this.splashText = "OOoooOOOoooo! Spooky!";
                             }
                      
                             boolean flag = true;
                             int i = this.height / 4 + 48;
                      
                             if(this.mc.isDemo())
                             {
                                 this.addDemoButtons(i, 24);
                             }
                             else
                             {
                                 this.addSingleplayerMultiplayerButtons(i, 24);
                             }
                      
                             this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0])));
                             this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0])));
                             this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 12));
                             Object object = this.field_104025_t;
                      
                             synchronized(this.field_104025_t)
                             {
                                 this.field_92023_s = this.fontRendererObj.getStringWidth(this.field_92025_p);
                                 this.field_92024_r = this.fontRendererObj.getStringWidth(this.field_146972_A);
                                 int j = Math.max(this.field_92023_s, this.field_92024_r);
                                 this.field_92022_t = (this.width - j) / 2;
                                 this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24;
                                 this.field_92020_v = this.field_92022_t + j;
                                 this.field_92019_w = this.field_92021_u + 24;
                             }
                         }
                      
                         /**
                          * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game.
                          */
                         private void addSingleplayerMultiplayerButtons(int x, int y)
                         {
                            int i = this.height / 4 + 48;
                      this.buttonList.add(new GuiButton(30, this.width / 2, i + 24 * 2, 100, 20, "Teamspeak") {
                      @Override
                      public void mouseReleased(int x, int y) {
                      if (Desktop.isDesktopSupported()) {
                      try {
                      Desktop.getDesktop().browse(new URI("ts3server://ts.glroycraft.fr"));
                      } catch (Exception e) {
                      ExampleMod.LOGGER.warn("Douldn't open teamspeak", e);
                      }
                      }
                      }
                      });
                      
                      this.buttonList.add(new GuiButton(31, this.width / 2 - 100, i + 24 * 2, 100, 20, "Boutique") {
                      @Override
                      public void mouseReleased(int x, int y) {
                      if (Desktop.isDesktopSupported()) {
                      try {
                      Desktop.getDesktop().browse(new URI("http://http://glorycraft.fr/boutique"));
                      } catch (Exception e) {
                      ExampleMod.LOGGER.warn("Douldn't open teamspeak", e);
                      }
                      }
                      }
                      });
                      
                      this.buttonList.add(new GuiButton(32, this.width / 2 - 100, i + 24, 200, 20, "Site") {
                      @Override
                      public void mouseReleased(int x, int y) {
                      if (Desktop.isDesktopSupported()) {
                      try {
                      Desktop.getDesktop().browse(new URI("http://glorycraft.fr/"));
                      } catch (Exception e) {
                      ExampleMod.LOGGER.warn("Douldn't open teamspeak", e);
                      }
                      }
                      }
                      });
                      
                      //FrenchAltis
                                 ServerData s = new ServerData("GloryCraft", "91.121.35.177:25565");
                                 OldServerPinger o = new OldServerPinger();
                                 try {
                      o.ping(s);
                      } catch (UnknownHostException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                      }
                      
                                 //Color c = new Color(150,150,255);
                      
                                 //FMLClientHandler.instance().beginServerLoading(s.);
                                 this.buttonList.add(new GuiButton(33, this.width / 2 - 100, i, 200, 20, "GloryCraft (" +    s.populationInfo   + "/20)" /* EnumChatFormatting.AQUA +"F" + EnumChatFormatting.BLACK + "r" + EnumChatFormatting.BLUE + "e" + EnumChatFormatting.BOLD + "n" + EnumChatFormatting.DARK_AQUA + "c" + EnumChatFormatting.DARK_BLUE + "h" + EnumChatFormatting.DARK_GRAY + "Altis"*/));
                      
                         }
                      
                         /**
                          * Adds Demo buttons on Main Menu for players who are playing Demo.
                          */
                         private void addDemoButtons(int x, int y)
                         {
                             this.buttonList.add(new GuiButton(11, this.width / 2 - 100, x, I18n.format("menu.playdemo", new Object[0])));
                             this.buttonList.add(this.buttonResetDemo = new GuiButton(12, this.width / 2 - 100, x + y * 1, I18n.format("menu.resetdemo", new Object[0])));
                             ISaveFormat isaveformat = this.mc.getSaveLoader();
                             WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                      
                             if(worldinfo == null)
                             {
                                 this.buttonResetDemo.enabled = false;
                             }
                         }
                      
                         protected void actionPerformed(GuiButton button)
                         {
                             if(button.id == 0)
                             {
                                 this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
                             }
                      
                             if(button.id == 5)
                             {
                                 this.mc.displayGuiScreen(new GuiLanguage(this, this.mc.gameSettings, this.mc.getLanguageManager()));
                             }
                      
                             if(button.id == 1)
                             {
                                 this.mc.displayGuiScreen(new GuiSelectWorld(this));
                             }
                      
                             if(button.id == 2)
                             {
                                 this.mc.displayGuiScreen(new GuiMultiplayer(this));
                             }
                      
                             if(button.id == 4)
                             {
                                 this.mc.shutdown();
                             }
                      
                             if(button.id == 6)
                             {
                                 this.mc.displayGuiScreen(new GuiModList(this));
                             }
                      
                             if(button.id == 11)
                             {
                                 this.mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
                             }
                      
                             if(button.id == 12)
                             {
                                 ISaveFormat isaveformat = this.mc.getSaveLoader();
                                 WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                      
                                 if(worldinfo != null)
                                 {
                                     GuiYesNo guiyesno = GuiSelectWorld.func_152129_a(this, worldinfo.getWorldName(), 12);
                                     this.mc.displayGuiScreen(guiyesno);
                                 }
                             }
                      
                             if(button.id == 20)
                             {
                                 // TODO pour la connexion au serveur
                                 FMLClientHandler.instance().connectToServerAtStartup("play.glorycraft.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://glorycraft .fr")});
                                 }
                                 catch(Throwable throwable)
                                 {
                                     logger.error("Couldn\'t open link", throwable);
                                 }
                             }
                         }
                      
                         public void confirmClicked(boolean p_73878_1_, int id)
                         {
                             if(p_73878_1_ && id == 12)
                             {
                                 ISaveFormat isaveformat = this.mc.getSaveLoader();
                                 isaveformat.flushCache();
                                 isaveformat.deleteWorldDirectory("Demo_World");
                                 this.mc.displayGuiScreen(this);
                             }
                             else if(id == 13)
                             {
                                 if(p_73878_1_)
                                 {
                                     try
                                     {
                                         Class oclass = Class.forName("java.awt.Desktop");
                                         Object object = oclass.getMethod("getDesktop", new Class[0]).invoke((Object)null, new Object[0]);
                                         oclass.getMethod("browse", new Class[] {URI.class}).invoke(object, new Object[] {new URI(this.field_104024_v)});
                                     }
                                     catch(Throwable throwable)
                                     {
                                         logger.error("Couldn\'t open link", throwable);
                                     }
                                 }
                      
                                 this.mc.displayGuiScreen(this);
                             }
                         }
                      
                         /**
                          * Draws the main menu panorama
                          */
                         private void drawPanorama(int x, int y, float partialTick)
                         {
                          WorldRenderer tessellator = Tessellator.getInstance().getWorldRenderer();
                             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);
                                     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.getInstance().draw();
                                     GL11.glPopMatrix();
                                 }
                      
                                 GL11.glPopMatrix();
                                 GL11.glColorMask(true, true, true, false);
                             }
                      
                             tessellator.setTranslation(0.0D, 0.0D, 0.0D);
                             GL11.glColorMask(true, true, true, true);
                             GL11.glMatrixMode(GL11.GL_PROJECTION);
                             GL11.glPopMatrix();
                             GL11.glMatrixMode(GL11.GL_MODELVIEW);
                             GL11.glPopMatrix();
                             GL11.glDepthMask(true);
                             GL11.glEnable(GL11.GL_CULL_FACE);
                             GL11.glEnable(GL11.GL_DEPTH_TEST);
                         }
                      
                         /**
                          * Rotate and blurs the skybox view in the main menu
                          */
                         private void rotateAndBlurSkybox(float partialTick)
                         {
                             this.mc.getTextureManager().bindTexture(this.field_110351_G);
                             GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
                             GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
                             GL11.glCopyTexSubImage2D(GL11.GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256);
                             GL11.glEnable(GL11.GL_BLEND);
                             OpenGlHelper.glBlendFunc(770, 771, 1, 0);
                             GL11.glColorMask(true, true, true, false);
                             WorldRenderer tessellator = Tessellator.getInstance().getWorldRenderer();
                             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.getInstance().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);
                             WorldRenderer tessellator = Tessellator.getInstance().getWorldRenderer();
                             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.getInstance().draw();
                         }
                      
                         /**
                          * Draws the screen and all the components in it.
                          */
                         public void drawScreen(int x, int y, float partialTick)
                         {
                             GL11.glDisable(GL11.GL_ALPHA_TEST);
                             this.renderSkybox(x, y, partialTick);
                             GL11.glEnable(GL11.GL_ALPHA_TEST);
                             WorldRenderer tessellator = Tessellator.getInstance().getWorldRenderer();
                             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);
                         }
                      
                         /**
                          * Called when the mouse is clicked.
                          * @throws IOException
                          */
                         protected void mouseClicked(int p_73864_1_, int p_73864_2_, int p_73864_3_) throws IOException
                         {
                             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.disableSecurityWarning();
                                     this.mc.displayGuiScreen(guiconfirmopenlink);
                                 }
                             }
                         }
                      }
                      

                      @‘Benjamin Loison’:

                      Comme a dit robin je te conseille de regarder comment Minecraft arrive à prendre cette donnée sur le menu multijoueur sinon fais un packet qui demande le nombre de joueurs sur le serveur c’est pas compliqué 😉

                      Sans vouliir te vexée, mais c’est ce que j’ai fait, et comme la dit robin plus haut sa luis semblé étrange car c’était le bon code ;)</string>

                      Cordialement, le membre ayant le pseudo "ph1823"

                      Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                      Mon Twitter : https://twitter.com/ph1823
                      Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                        Sérieusement stop les balises code dans une balise spoiler. C’est complètement illisible car pas de formatage + code compacté sur 5 lignes …
                        Il suffit de juste mettre la balise java et voila.

                        Et en effet comme ça ça ne risque pas de fonctionner, regardes bien dans ServerListEntryNormal il passe par un thread et il faut mettre le code dans une fonction appelé à chaque tick (comme par exemple drawScreen).

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

                          Bonjours, je vais me sentir nul et je pense que c’est vrais, mais sa me retourne toujours null. voic le code de drawnScreen :

                             public void drawScreen(int x, int y, float partialTick)
                             {
                              field_148302_b.submit(new Runnable()
                                  {
                              public void run() {
                                      OldServerPinger o = new OldServerPinger();
                                         try {
                          
                              o.func_147224_a(s);
                          
                              } catch (UnknownHostException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                              }
                              }
                                  });
                                 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! Launcher by ph1823";
                                 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);
                             }
                          

                          La variable field_148302_b correspond a celle de ServerListEntryNormal.</string>

                          Cordialement, le membre ayant le pseudo "ph1823"

                          Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                          Mon Twitter : https://twitter.com/ph1823
                          Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                            Tu affiches où la population du serveur ?

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

                              Au moement ou je crée le boutons, ici :

                              
                              private void addSingleplayerMultiplayerButtons(int x, int y)
                              
                              

                              et voici la fonction pour ajouté le bouton :

                              
                              this.buttonList.add(new GuiButton(33, this.width / 2 - 100, i, 200, 20, "GloryCraft (" + s.populationInfo + "/25)" /* EnumChatFormatting.AQUA +"F" + EnumChatFormatting.BLACK + "r" + EnumChatFormatting.BLUE + "e" + EnumChatFormatting.BOLD + "n" + EnumChatFormatting.DARK_AQUA + "c" + EnumChatFormatting.DARK_BLUE + "h" + EnumChatFormatting.DARK_GRAY + "Altis"*/));
                              
                              

                              Cordialement, le membre ayant le pseudo "ph1823"

                              Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                              Mon Twitter : https://twitter.com/ph1823
                              Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                                Normal que ça ne fonctionne pas alors.
                                Car s.populationInfo ne prend que sa valeur une fois la réponse au paquet reçu.

                                Donc il faut utiliser dans une fonction actualité à chaque tick. Le mieux dans ton cas serait de mettre le code directement dans la fonction drawScreen du bouton.

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

                                  Oui, mais la je viens de tentée casiment toutes les fonction, vue que celle qui draw le bouton ne marché pas et se ne marche toujours pas… Je ne sais pas d’ou viens le problème…

                                  Cordialement, le membre ayant le pseudo "ph1823"

                                  Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                                  Mon Twitter : https://twitter.com/ph1823
                                  Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                                    Envoies 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
                                    • ph1823
                                      ph1823 dernière édition par

                                      Voici le fichier ZIP : http://www.fichier-zip.com/2015/12/28/src/

                                      Cordialement, le membre ayant le pseudo "ph1823"

                                      Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                                      Mon Twitter : https://twitter.com/ph1823
                                      Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

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

                                        Bon le résultat n’est pas vraiment concluant. J’ai tenté deux choses même résultat :
                                        obligé de refresh le menu (ouvrir une menu et revenir) pour voir le nombre de joueur. Je ne sais pas pourquoi 😕

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

                                          Hello, je me permet de faire un petit up pour vous dire que ceci pourrez vous aidé : https://github.com/evilmidget38/MinecraftServerPing

                                          Cordialement, le membre ayant le pseudo "ph1823"

                                          Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                                          Mon Twitter : https://twitter.com/ph1823
                                          Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

                                          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