MFF

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

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

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    19 Messages 3 Publieurs 4.2k Vues 1 Watching
    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.
    • robin4002R Hors-ligne
      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
      • ph1823P Hors-ligne
        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
        • robin4002R Hors-ligne
          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
          • ph1823P Hors-ligne
            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
            • robin4002R Hors-ligne
              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
              • ph1823P Hors-ligne
                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
                • robin4002R Hors-ligne
                  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
                  • ph1823P Hors-ligne
                    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
                    • robin4002R Hors-ligne
                      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
                      • ph1823P Hors-ligne
                        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
                        • robin4002R Hors-ligne
                          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
                          • ph1823P Hors-ligne
                            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
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB