MFF

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

    Modifier le menu principal

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.11.x
    125 Messages 24 Publieurs 116.2k Vues 19 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.
    • T Hors-ligne
      tomaveclevdsl
      dernière édition par

      Salut a tous , comment je peut faire pour que le joueur se connecte directement au serveur sans passer par le menu ni cliquer sur un bouton ?

      Merci pour vos réponces
      PS: Tout ça en 1.7.10 , Merci

      Fondateur de Minium et de AltisNewRP

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

        Est il possible de modifier le fond sonore du menu en 1.7.10?

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

          @antoineok Tu dois creer un sounds deja puis le play avec le soudhandler de la class net.minecraft.client.Minecraft
          sinon regarde le code du net.minecraft.client.gui.GuiButton

          A 1 réponse Dernière réponse Répondre Citer 0
          • A Hors-ligne
            antoineok @SpyMan
            dernière édition par

            @SpyMan La ligne pour créer le son,c bien sa?

            private SoundHandler sound;
            
            1 réponse Dernière réponse Répondre Citer 0
            • ZeEvoker2VexZ Hors-ligne
              ZeEvoker2Vex @Ama
              dernière édition par

              @Ama
              Affirmatif sans avoir lu les commentaires, j’aurai peiné à trouver pourquoi la texture perso ne se mettait pas ^^
              Merci

              Apprenti-Développeur Multi-Langages
              Fondateur EpicBattleFr.

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

                Salut,

                Je viens de tester les modifications présentes dans ce tutoriel, et tout à fonctionné.
                Cependant, j’ai un petit détail qui me dérange un peu, en fait j’ai fait uniquement la modification pour modifier le bouton Multiplayer en un bouton qui met sur un serveur, la personne se connecte bien sur le serveur, mais lorsque celle-ci clique sur “Déconnexion”, ça remet sur le menu Multiplayer, est-ce possible de faire tomber directement sur le Main menu ?

                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

                  Salut,

                  Dans l’event GuiOpenEvent (déjà utilisé pour remplacer le MainMenu) tu peux ajouter une condition avec le menu GuiMultiplayer. Par contre dans ce cas il ne sera plus du tout possible d’accéder à la page de connexion de serveur.

                  L 1 réponse Dernière réponse Répondre Citer 0
                  • L Hors-ligne
                    Lunyx @robin4002
                    dernière édition par

                    @robin4002 Salut, j’ai bien trouvé cette classe, si j’ai bien compris je dois la personnaliser, mais je dois modifier quoi ? (Désolé, je débute en java)

                    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 n’as rien à personnaliser.
                      Il faut juste ouvrir ton menu quand GuiMultiplayer s’ouvre, en utilisant le même principe qu’au début de ce tutoriel.

                      1 réponse Dernière réponse Répondre Citer 0
                      • JustAnDevJ Hors-ligne
                        JustAnDev
                        dernière édition par robin4002

                        Bonjour,en moddant le main menu j’arrive a cette conclusion qui me fout un crash(je suis en 1.12.2 et j’ai fait un peu de modif de code):

                        A hug?No?Ok!

                        package com.daichmff.SAOII;
                        
                        import java.awt.Toolkit;
                        import java.awt.datatransfer.ClipboardOwner;
                        import java.awt.datatransfer.DataFlavor;
                        import java.awt.datatransfer.StringSelection;
                        import java.awt.datatransfer.Transferable;
                        import java.io.BufferedReader;
                        import java.io.Closeable;
                        import java.io.File;
                        import java.io.IOException;
                        import java.io.InputStreamReader;
                        import java.net.URI;
                        import java.net.URISyntaxException;
                        import java.nio.charset.StandardCharsets;
                        import java.util.Arrays;
                        import java.util.Calendar;
                        import java.util.Date;
                        import java.util.List;
                        import java.util.Locale;
                        import java.util.Random;
                        import java.util.Set;
                        
                        import org.apache.commons.io.IOUtils;
                        import org.apache.commons.lang3.StringUtils;
                        import org.apache.logging.log4j.LogManager;
                        import org.apache.logging.log4j.Logger;
                        import org.lwjgl.input.Keyboard;
                        import org.lwjgl.input.Mouse;
                        import org.lwjgl.opengl.GLContext;
                        import org.lwjgl.util.glu.Project;
                        
                        import com.google.common.base.Splitter;
                        import com.google.common.collect.Lists;
                        import com.google.common.collect.Sets;
                        import com.google.common.util.concurrent.Runnables;
                        
                        import net.minecraft.client.Minecraft;
                        import net.minecraft.client.gui.FontRenderer;
                        import net.minecraft.client.gui.GuiButton;
                        import net.minecraft.client.gui.GuiButtonLanguage;
                        import net.minecraft.client.gui.GuiConfirmOpenLink;
                        import net.minecraft.client.gui.GuiLabel;
                        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.GuiWinGame;
                        import net.minecraft.client.gui.GuiWorldSelection;
                        import net.minecraft.client.gui.GuiYesNo;
                        import net.minecraft.client.renderer.BufferBuilder;
                        import net.minecraft.client.renderer.EntityRenderer;
                        import net.minecraft.client.renderer.GlStateManager;
                        import net.minecraft.client.renderer.OpenGlHelper;
                        import net.minecraft.client.renderer.RenderHelper;
                        import net.minecraft.client.renderer.RenderItem;
                        import net.minecraft.client.renderer.Tessellator;
                        import net.minecraft.client.renderer.texture.DynamicTexture;
                        import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
                        import net.minecraft.client.resources.I18n;
                        import net.minecraft.client.resources.IResource;
                        import net.minecraft.client.settings.GameSettings;
                        import net.minecraft.client.util.ITooltipFlag;
                        import net.minecraft.crash.CrashReport;
                        import net.minecraft.crash.CrashReportCategory;
                        import net.minecraft.crash.ICrashReportDetail;
                        import net.minecraft.item.ItemStack;
                        import net.minecraft.nbt.JsonToNBT;
                        import net.minecraft.nbt.NBTBase;
                        import net.minecraft.nbt.NBTException;
                        import net.minecraft.nbt.NBTTagCompound;
                        import net.minecraft.util.ReportedException;
                        import net.minecraft.util.ResourceLocation;
                        import net.minecraft.util.math.MathHelper;
                        import net.minecraft.util.text.ITextComponent;
                        import net.minecraft.util.text.TextFormatting;
                        import net.minecraft.util.text.event.ClickEvent;
                        import net.minecraft.util.text.event.HoverEvent;
                        import net.minecraft.world.WorldServerDemo;
                        import net.minecraft.world.storage.ISaveFormat;
                        import net.minecraft.world.storage.WorldInfo;
                        import net.minecraftforge.client.event.GuiScreenEvent;
                        import net.minecraftforge.common.MinecraftForge;
                        
                        public class GuiCustomMainMenu extends GuiScreen {
                        	  private static final Logger LOGGER = LogManager.getLogger();
                        	    private static final Random RANDOM = new Random();
                        	    /**
                        	     * A random number between 0.0 and 1.0, used to determine if the title screen says <a
                        	     * href="https://minecraft.gamepedia.com/Menu_screen#Minceraft">Minceraft</a> instead of Minecraft. Set during
                        	     * construction; if the value is less than .0001, then Minceraft is displayed.
                        	     */
                        	    private final float minceraftRoll;
                        	    /** The splash message. */
                        	    private String splashText;
                        	    private GuiButton buttonResetDemo;
                        	    /** Timer used to rotate the panorama, increases every tick. */
                        	    private float panoramaTimer;
                        	    /** Texture allocated for the current viewport of the main menu's panorama background. */
                        	    private DynamicTexture viewportTexture;
                        	    /** The Object object utilized as a thread lock when performing non thread-safe operations */
                        	    private final Object threadLock = new Object();
                        	    public static final String MORE_INFO_TEXT = "Please click " + TextFormatting.UNDERLINE + "here" + TextFormatting.RESET + " for more information.";
                        	    /** Width of openGLWarning2 */
                        	    private int openGLWarning2Width;
                        	    /** Width of openGLWarning1 */
                        	    private int openGLWarning1Width;
                        	    /** Left x coordinate of the OpenGL warning */
                        	    private int openGLWarningX1;
                        	    /** Top y coordinate of the OpenGL warning */
                        	    private int openGLWarningY1;
                        	    /** Right x coordinate of the OpenGL warning */
                        	    private int openGLWarningX2;
                        	    /** Bottom y coordinate of the OpenGL warning */
                        	    private int openGLWarningY2;
                        	    /** OpenGL graphics card warning. */
                        	    private String openGLWarning1;
                        	    /** OpenGL graphics card warning. */
                        	    private String openGLWarning2;
                        	    /** Link to the Mojang Support about minimum requirements */
                        	    private String openGLWarningLink;
                        	    private static final ResourceLocation SPLASH_TEXTS = new ResourceLocation("texts/splashes.txt");
                        	    private static final ResourceLocation MINECRAFT_TITLE_TEXTURES = new ResourceLocation("textures/gui/title/minecraft.png");
                        	    private static final ResourceLocation field_194400_H = new ResourceLocation("textures/gui/title/edition.png");
                        	    /** An array of all the paths to the panorama pictures. */
                        	    private static final ResourceLocation[] TITLE_PANORAMA_PATHS = new ResourceLocation[] {new ResourceLocation("sao2:textures/gui/title/background/panorama.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama_1.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama_2.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama.png"), new ResourceLocation("sao2:textures/gui/title/background/panorama.png")};
                        	    private ResourceLocation backgroundTexture;
                        	    /** Minecraft //Realms button. */
                        
                        	    /** Has the check for a //Realms notification screen been performed? */
                        	
                        	    /**
                        	     * A screen generated by //Realms for notifications; drawn in adition to the main menu (buttons and such from both are
                        	     * drawn at the same time). May be null.
                        	     */
                        
                        	    private int widthCopyright;
                        	    private int widthCopyrightRest;
                        	    private GuiButton modButton;
                        	    private net.minecraftforge.client.gui.NotificationModUpdateScreen modUpdateNotification;
                        
                        	    public GuiCustomMainMenu()
                        	    {
                        	        this.openGLWarning2 = MORE_INFO_TEXT;
                        	        this.splashText = "missingno";
                        	        IResource iresource = null;
                        
                        	        try
                        	        {
                        	            List<String> list = Lists.<String>newArrayList();
                        	            iresource = Minecraft.getMinecraft().getResourceManager().getResource(SPLASH_TEXTS);
                        	            BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(iresource.getInputStream(), StandardCharsets.UTF_8));
                        	            String s;
                        
                        	            while ((s = bufferedreader.readLine()) != null)
                        	            {
                        	                s = s.trim();
                        
                        	                if (!s.isEmpty())
                        	                {
                        	                    list.add(s);
                        	                }
                        	            }
                        
                        	            if (!list.isEmpty())
                        	            {
                        	                while (true)
                        	                {
                        	                    this.splashText = list.get(RANDOM.nextInt(list.size()));
                        
                        	                    if (this.splashText.hashCode() != 125780783)
                        	                    {
                        	                        break;
                        	                    }
                        	                }
                        	            }
                        	        }
                        	        catch (IOException var8)
                        	        {
                        	            ;
                        	        }
                        	        finally
                        	        {
                        	            IOUtils.closeQuietly((Closeable)iresource);
                        	        }
                        
                        	        this.minceraftRoll = RANDOM.nextFloat();
                        	        this.openGLWarning1 = "";
                        
                        	        if (!GLContext.getCapabilities().OpenGL20 && !OpenGlHelper.areShadersSupported())
                        	        {
                        	            this.openGLWarning1 = I18n.format("title.oldgl1");
                        	            this.openGLWarning2 = I18n.format("title.oldgl2");
                        	            this.openGLWarningLink = "https://help.mojang.com/customer/portal/articles/325948?ref=game";
                        	        }
                        	    }
                        
                        	    /**
                        	     * Is there currently a //Realms notification screen, and are //Realms notifications enabled?
                        	     */
                        
                        	    /**
                        	     * Called from the main game loop to update the screen.
                        	     */
                        
                        
                        
                        
                        
                        	    public void updateScreen()
                        	    {
                        	      
                        	    }
                        
                        	    /**
                        	     * 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 (except F11 which toggles full screen). This is the equivalent of
                        	     * KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code)
                        	     */
                        	    protected void keyTyped(char typedChar, int keyCode) throws IOException
                        	    {
                        	    }
                        
                        	    /**
                        	     * Adds the buttons (and other controls) to the screen in question. Called when the GUI is displayed and when the
                        	     * window resizes, the buttonList is cleared beforehand.
                        	     */
                        	    public void initGui()
                        	    {
                        	        this.viewportTexture = new DynamicTexture(256, 256);
                        	        this.backgroundTexture = this.mc.getTextureManager().getDynamicTextureLocation("background", this.viewportTexture);
                        	        this.widthCopyright = this.fontRenderer.getStringWidth("Copyright Mojang AB. Do not distribute!");
                        	        this.widthCopyrightRest = this.width - this.widthCopyright - 2;
                        	        Calendar calendar = Calendar.getInstance();
                        	        calendar.setTime(new Date());
                        
                        	        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!";
                        	        }
                        
                        	        int i = 24;
                        	        int j = this.height / 4 + 48;
                        
                        	        if (this.mc.isDemo())
                        	        {
                        	            this.addDemoButtons(j, 24);
                        	        }
                        	        else
                        	        {
                        	            this.addSingleplayerMultiplayerButtons(j, 24);
                        	        }
                        
                        	        this.buttonList.add(new GuiButton(0, this.width / 2 - 100, j + 72 + 12, 98, 20, I18n.format("menu.options")));
                        	        this.buttonList.add(new GuiButton(4, this.width / 2 + 2, j + 72 + 12, 98, 20, I18n.format("menu.quit")));
                        	        this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, j + 72 + 12));
                        
                        	        synchronized (this.threadLock)
                        	        {
                        	            this.openGLWarning1Width = this.fontRenderer.getStringWidth(this.openGLWarning1);
                        	            this.openGLWarning2Width = this.fontRenderer.getStringWidth(this.openGLWarning2);
                        	            int k = Math.max(this.openGLWarning1Width, this.openGLWarning2Width);
                        	            this.openGLWarningX1 = (this.width - k) / 2;
                        	            this.openGLWarningY1 = (this.buttonList.get(0)).y - 24;
                        	            this.openGLWarningX2 = this.openGLWarningX1 + k;
                        	            this.openGLWarningY2 = this.openGLWarningY1 + 24;
                        	        }
                        
                        	
                        	        
                        	    }
                        
                        	    /**
                        	     * Adds Singleplayer and Multiplayer buttons on Main Menu for players who have bought the game.
                        	     */
                        	    private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_)
                        	    {
                        	        this.buttonList.add(new GuiButton(1, this.width / 2 - 100, p_73969_1_, I18n.format("menu.singleplayer")));
                        	        this.buttonList.add(new GuiButton(2, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.format("menu.multiplayer")));
                        	       
                        	    }
                        
                        	    /**
                        	     * Adds Demo buttons on Main Menu for players who are playing Demo.
                        	     */
                        	    private void addDemoButtons(int p_73972_1_, int p_73972_2_)
                        	    {
                        	        this.buttonList.add(new GuiButton(11, this.width / 2 - 100, p_73972_1_, I18n.format("menu.playdemo")));
                        	        this.buttonResetDemo = this.addButton(new GuiButton(12, this.width / 2 - 100, p_73972_1_ + p_73972_2_ * 1, I18n.format("menu.resetdemo")));
                        	        ISaveFormat isaveformat = this.mc.getSaveLoader();
                        	        WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                        
                        	        if (worldinfo == null)
                        	        {
                        	            this.buttonResetDemo.enabled = false;
                        	        }
                        	    }
                        
                        	    /**
                        	     * Called by the controls from the buttonList when activated. (Mouse pressed for buttons)
                        	     */
                        	    protected void actionPerformed(GuiButton button) throws IOException
                        	    {
                        	        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 GuiWorldSelection(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 net.minecraftforge.fml.client.GuiModList(this));
                        	        }
                        
                        	        if (button.id == 11)
                        	        {
                        	            this.mc.launchIntegratedServer("Demo_World", "Demo_World", WorldServerDemo.DEMO_WORLD_SETTINGS);
                        	        }
                        
                        	        if (button.id == 12)
                        	        {
                        	            ISaveFormat isaveformat = this.mc.getSaveLoader();
                        	            WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");
                        
                        	            if (worldinfo != null)
                        	            {
                        	                this.mc.displayGuiScreen(new GuiYesNo(this, I18n.format("selectWorld.deleteQuestion"), "'" + worldinfo.getWorldName() + "' " + I18n.format("selectWorld.deleteWarning"), I18n.format("selectWorld.deleteButton"), I18n.format("gui.cancel"), 12));
                        	            }
                        	        }
                        	    }
                        
                        	  
                        
                        	    public void confirmClicked(boolean result, int id)
                        	    {
                        	        if (result && id == 12)
                        	        {
                        	            ISaveFormat isaveformat = this.mc.getSaveLoader();
                        	            isaveformat.flushCache();
                        	            isaveformat.deleteWorldDirectory("Demo_World");
                        	            this.mc.displayGuiScreen(this);
                        	        }
                        	        else if (id == 12)
                        	        {
                        	            this.mc.displayGuiScreen(this);
                        	        }
                        	        else if (id == 13)
                        	        {
                        	            if (result)
                        	            {
                        	                try
                        	                {
                        	                    Class<?> oclass = Class.forName("java.awt.Desktop");
                        	                    Object object = oclass.getMethod("getDesktop").invoke((Object)null);
                        	                    oclass.getMethod("browse", URI.class).invoke(object, new URI(this.openGLWarningLink));
                        	                }
                        	                catch (Throwable throwable)
                        	                {
                        	                    LOGGER.error("Couldn't open link", throwable);
                        	                }
                        	            }
                        
                        	            this.mc.displayGuiScreen(this);
                        	        }
                        	    }
                        
                        	    /**
                        	     * Draws the main menu panorama
                        	     */
                        	    private void drawPanorama(int mouseX, int mouseY, float partialTicks)
                        	    {
                        	        Tessellator tessellator = Tessellator.getInstance();
                        	        BufferBuilder bufferbuilder = tessellator.getBuffer();
                        	        GlStateManager.matrixMode(5889);
                        	        GlStateManager.pushMatrix();
                        	        GlStateManager.loadIdentity();
                        	        Project.gluPerspective(120.0F, 1.0F, 0.05F, 10.0F);
                        	        GlStateManager.matrixMode(5888);
                        	        GlStateManager.pushMatrix();
                        	        GlStateManager.loadIdentity();
                        	        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
                        	        GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
                        	        GlStateManager.rotate(90.0F, 0.0F, 0.0F, 1.0F);
                        	        GlStateManager.enableBlend();
                        	        GlStateManager.disableAlpha();
                        	        GlStateManager.disableCull();
                        	        GlStateManager.depthMask(false);
                        	        GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
                        	        int i = 8;
                        
                        	        for (int j = 0; j < 64; ++j)
                        	        {
                        	            GlStateManager.pushMatrix();
                        	            float f = ((float)(j % 8) / 8.0F - 0.5F) / 64.0F;
                        	            float f1 = ((float)(j / 8) / 8.0F - 0.5F) / 64.0F;
                        	            float f2 = 0.0F;
                        	            GlStateManager.translate(f, f1, 0.0F);
                        	            GlStateManager.rotate(MathHelper.sin(this.panoramaTimer / 400.0F) * 25.0F + 20.0F, 1.0F, 0.0F, 0.0F);
                        	            GlStateManager.rotate(-this.panoramaTimer * 0.1F, 0.0F, 1.0F, 0.0F);
                        
                        	            for (int k = 0; k < 6; ++k)
                        	            {
                        	                GlStateManager.pushMatrix();
                        
                        	                if (k == 1)
                        	                {
                        	                    GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F);
                        	                }
                        
                        	                if (k == 2)
                        	                {
                        	                    GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F);
                        	                }
                        
                        	                if (k == 3)
                        	                {
                        	                    GlStateManager.rotate(-90.0F, 0.0F, 1.0F, 0.0F);
                        	                }
                        
                        	                if (k == 4)
                        	                {
                        	                    GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
                        	                }
                        
                        	                if (k == 5)
                        	                {
                        	                    GlStateManager.rotate(-90.0F, 1.0F, 0.0F, 0.0F);
                        	                }
                        
                        	                this.mc.getTextureManager().bindTexture(TITLE_PANORAMA_PATHS[k]);
                        	                bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
                        	                int l = 255 / (j + 1);
                        	                float f3 = 0.0F;
                        	                bufferbuilder.pos(-1.0D, -1.0D, 1.0D).tex(0.0D, 0.0D).color(255, 255, 255, l).endVertex();
                        	                bufferbuilder.pos(1.0D, -1.0D, 1.0D).tex(1.0D, 0.0D).color(255, 255, 255, l).endVertex();
                        	                bufferbuilder.pos(1.0D, 1.0D, 1.0D).tex(1.0D, 1.0D).color(255, 255, 255, l).endVertex();
                        	                bufferbuilder.pos(-1.0D, 1.0D, 1.0D).tex(0.0D, 1.0D).color(255, 255, 255, l).endVertex();
                        	                tessellator.draw();
                        	                GlStateManager.popMatrix();
                        	            }
                        
                        	            GlStateManager.popMatrix();
                        	            GlStateManager.colorMask(true, true, true, false);
                        	        }
                        
                        	        bufferbuilder.setTranslation(0.0D, 0.0D, 0.0D);
                        	        GlStateManager.colorMask(true, true, true, true);
                        	        GlStateManager.matrixMode(5889);
                        	        GlStateManager.popMatrix();
                        	        GlStateManager.matrixMode(5888);
                        	        GlStateManager.popMatrix();
                        	        GlStateManager.depthMask(true);
                        	        GlStateManager.enableCull();
                        	        GlStateManager.enableDepth();
                        	    }
                        
                        	    /**
                        	     * Rotate and blurs the skybox view in the main menu
                        	     */
                        	    private void rotateAndBlurSkybox()
                        	    {
                        	        this.mc.getTextureManager().bindTexture(this.backgroundTexture);
                        	        GlStateManager.glTexParameteri(3553, 10241, 9729);
                        	        GlStateManager.glTexParameteri(3553, 10240, 9729);
                        	        GlStateManager.glCopyTexSubImage2D(3553, 0, 0, 0, 0, 0, 256, 256);
                        	        GlStateManager.enableBlend();
                        	        GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
                        	        GlStateManager.colorMask(true, true, true, false);
                        	        Tessellator tessellator = Tessellator.getInstance();
                        	        BufferBuilder bufferbuilder = tessellator.getBuffer();
                        	        bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
                        	        GlStateManager.disableAlpha();
                        	        int i = 3;
                        
                        	        for (int j = 0; j < 3; ++j)
                        	        {
                        	            float f = 1.0F / (float)(j + 1);
                        	            int k = this.width;
                        	            int l = this.height;
                        	            float f1 = (float)(j - 1) / 256.0F;
                        	            bufferbuilder.pos((double)k, (double)l, (double)this.zLevel).tex((double)(0.0F + f1), 1.0D).color(1.0F, 1.0F, 1.0F, f).endVertex();
                        	            bufferbuilder.pos((double)k, 0.0D, (double)this.zLevel).tex((double)(1.0F + f1), 1.0D).color(1.0F, 1.0F, 1.0F, f).endVertex();
                        	            bufferbuilder.pos(0.0D, 0.0D, (double)this.zLevel).tex((double)(1.0F + f1), 0.0D).color(1.0F, 1.0F, 1.0F, f).endVertex();
                        	            bufferbuilder.pos(0.0D, (double)l, (double)this.zLevel).tex((double)(0.0F + f1), 0.0D).color(1.0F, 1.0F, 1.0F, f).endVertex();
                        	        }
                        
                        	        tessellator.draw();
                        	        GlStateManager.enableAlpha();
                        	        GlStateManager.colorMask(true, true, true, true);
                        	    }
                        
                        	    /**
                        	     * Renders the skybox in the main menu
                        	     */
                        	    private void renderSkybox(int mouseX, int mouseY, float partialTicks)
                        	    {
                        	        this.mc.getFramebuffer().unbindFramebuffer();
                        	        GlStateManager.viewport(0, 0, 256, 256);
                        	        this.drawPanorama(mouseX, mouseY, partialTicks);
                        	        this.rotateAndBlurSkybox();
                        	        this.rotateAndBlurSkybox();
                        	        this.rotateAndBlurSkybox();
                        	        this.rotateAndBlurSkybox();
                        	        this.rotateAndBlurSkybox();
                        	        this.rotateAndBlurSkybox();
                        	        this.rotateAndBlurSkybox();
                        	        this.mc.getFramebuffer().bindFramebuffer(true);
                        	        GlStateManager.viewport(0, 0, this.mc.displayWidth, this.mc.displayHeight);
                        	        float f = 120.0F / (float)(this.width > this.height ? this.width : this.height);
                        	        float f1 = (float)this.height * f / 256.0F;
                        	        float f2 = (float)this.width * f / 256.0F;
                        	        int i = this.width;
                        	        int j = this.height;
                        	        Tessellator tessellator = Tessellator.getInstance();
                        	        BufferBuilder bufferbuilder = tessellator.getBuffer();
                        	        bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
                        	        bufferbuilder.pos(0.0D, (double)j, (double)this.zLevel).tex((double)(0.5F - f1), (double)(0.5F + f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex();
                        	        bufferbuilder.pos((double)i, (double)j, (double)this.zLevel).tex((double)(0.5F - f1), (double)(0.5F - f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex();
                        	        bufferbuilder.pos((double)i, 0.0D, (double)this.zLevel).tex((double)(0.5F + f1), (double)(0.5F - f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex();
                        	        bufferbuilder.pos(0.0D, 0.0D, (double)this.zLevel).tex((double)(0.5F + f1), (double)(0.5F + f2)).color(1.0F, 1.0F, 1.0F, 1.0F).endVertex();
                        	        tessellator.draw();
                        	    }
                        
                        	    /**
                        	     * Draws the screen and all the components in it.
                        	     */
                        	    public void drawScreen(int mouseX, int mouseY, float partialTicks)
                        	    {
                        	        this.panoramaTimer += partialTicks;
                        	        GlStateManager.disableAlpha();
                        	        this.renderSkybox(mouseX, mouseY, partialTicks);
                        	        GlStateManager.enableAlpha();
                        	        int i = 274;
                        	        int j = this.width / 2 - 137;
                        	        int k = 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(MINECRAFT_TITLE_TEXTURES);
                        	        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
                        
                        	        if ((double)this.minceraftRoll < 1.0E-4D)
                        	        {
                        	            this.drawTexturedModalRect(j + 0, 30, 0, 0, 99, 44);
                        	            this.drawTexturedModalRect(j + 99, 30, 129, 0, 27, 44);
                        	            this.drawTexturedModalRect(j + 99 + 26, 30, 126, 0, 3, 44);
                        	            this.drawTexturedModalRect(j + 99 + 26 + 3, 30, 99, 0, 26, 44);
                        	            this.drawTexturedModalRect(j + 155, 30, 0, 45, 155, 44);
                        	        }
                        	        else
                        	        {
                        	            this.drawTexturedModalRect(j + 0, 30, 0, 0, 155, 44);
                        	            this.drawTexturedModalRect(j + 155, 30, 0, 45, 155, 44);
                        	        }
                        
                        	        this.mc.getTextureManager().bindTexture(field_194400_H);
                        	        drawModalRectWithCustomSizedTexture(j + 88, 67, 0.0F, 0.0F, 98, 14, 128.0F, 16.0F);
                        
                        	     
                        
                        	        GlStateManager.pushMatrix();
                        	        GlStateManager.translate((float)(this.width / 2 + 90), 70.0F, 0.0F);
                        	        GlStateManager.rotate(-20.0F, 0.0F, 0.0F, 1.0F);
                        	        float f = 1.8F - MathHelper.abs(MathHelper.sin((float)(Minecraft.getSystemTime() % 1000L) / 1000.0F * ((float)Math.PI * 2F)) * 0.1F);
                        	        f = f * 100.0F / (float)(this.fontRenderer.getStringWidth(this.splashText) + 32);
                        	        GlStateManager.scale(f, f, f);
                        	        this.drawCenteredString(this.fontRenderer, this.splashText, 0, -8, -256);
                        	        GlStateManager.popMatrix();
                        	        String s = "GunGaleOnline 0.1";
                        
                        	        if (this.mc.isDemo())
                        	        {
                        	            s = s + " Demo";
                        	        }
                        	        else
                        	        {
                        	            s = s + ("release".equalsIgnoreCase(this.mc.getVersionType()) ? "" : "/" + this.mc.getVersionType());
                        	        }
                        
                        	        java.util.List<String> brandings = com.google.common.collect.Lists.reverse(net.minecraftforge.fml.common.FMLCommonHandler.instance().getBrandings(true));
                        	        for (int brdline = 0; brdline < brandings.size(); brdline++)
                        	        {
                        	            String brd = brandings.get(brdline);
                        	            if (!com.google.common.base.Strings.isNullOrEmpty(brd))
                        	            {
                        	                this.drawString(this.fontRenderer, brd, 2, this.height - ( 10 + brdline * (this.fontRenderer.FONT_HEIGHT + 1)), 16777215);
                        	            }
                        	        }
                        
                        	        this.drawString(this.fontRenderer, "Copyright Mojang AB. Do not distribute!", this.widthCopyrightRest, this.height - 10, -1);
                        	        this.drawString(this.fontRenderer, "<Kirito>:What?!!!,<Mojang AB>:Hello!,<Microsoft Corp>:Hello!!,<Kirito>:I'am in GGO?,<Mojang AB>:You are ine Minecraft Java Edition(forge),<Microsoft>:I hate FORGE!!!!,Connect to GGO button has Spawned!", this.widthCopyrightRest, this.height - 13, 0);
                                    //It's easter egg for "Kirito","Mojang" and "Microsoft"
                        	        if (mouseX > this.widthCopyrightRest && mouseX < this.widthCopyrightRest + this.widthCopyright && mouseY > this.height - 10 && mouseY < this.height && Mouse.isInsideWindow())
                        	        {
                        	            drawRect(this.widthCopyrightRest, this.height - 1, this.widthCopyrightRest + this.widthCopyright, this.height, -1);
                        	        }
                        
                        	        if (this.openGLWarning1 != null && !this.openGLWarning1.isEmpty())
                        	        {
                        	            drawRect(this.openGLWarningX1 - 2, this.openGLWarningY1 - 2, this.openGLWarningX2 + 2, this.openGLWarningY2 - 1, 1428160512);
                        	            this.drawString(this.fontRenderer, this.openGLWarning1, this.openGLWarningX1, this.openGLWarningY1, -1);
                        	            this.drawString(this.fontRenderer, this.openGLWarning2, (this.width - this.openGLWarning2Width) / 2, (this.buttonList.get(0)).y - 12, -1);
                        	        }
                        
                        	        super.drawScreen(mouseX, mouseY, partialTicks);
                        	        
                        	    }
                        
                        	    /**
                        	     * Called when the mouse is clicked. Args : mouseX, mouseY, clickedButton
                        	     */
                        	    protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException
                        	    {
                        	        super.mouseClicked(mouseX, mouseY, mouseButton);
                        
                        	        synchronized (this.threadLock)
                        	        {
                        	            if (!this.openGLWarning1.isEmpty() && !StringUtils.isEmpty(this.openGLWarningLink) && mouseX >= this.openGLWarningX1 && mouseX <= this.openGLWarningX2 && mouseY >= this.openGLWarningY1 && mouseY <= this.openGLWarningY2)
                        	            {
                        	                GuiConfirmOpenLink guiconfirmopenlink = new GuiConfirmOpenLink(this, this.openGLWarningLink, 13, true);
                        	                guiconfirmopenlink.disableSecurityWarning();
                        	                this.mc.displayGuiScreen(guiconfirmopenlink);
                        	            }
                        	        }
                        
                        	       
                        
                        	        if (mouseX > this.widthCopyrightRest && mouseX < this.widthCopyrightRest + this.widthCopyright && mouseY > this.height - 10 && mouseY < this.height)
                        	        {
                        	            this.mc.displayGuiScreen(new GuiWinGame(false, Runnables.doNothing()));
                        	        }
                        	    }
                        
                        	    /**
                        	     * Called when the screen is unloaded. Used to disable keyboard repeat events
                        	     */
                        	    public static void drawScreen(GuiScreen screen, int mouseX, int mouseY, float partialTicks)
                        	    {
                        	        if (!MinecraftForge.EVENT_BUS.post(new GuiScreenEvent.DrawScreenEvent.Pre(screen, mouseX, mouseY, partialTicks)))
                        	            screen.drawScreen(mouseX, mouseY, partialTicks);
                        	        MinecraftForge.EVENT_BUS.post(new GuiScreenEvent.DrawScreenEvent.Post(screen, mouseX, mouseY, partialTicks));
                        	    }
                        	    {
                        	    if (this.mc.currentScreen != null)
                                {
                                    GlStateManager.clear(256);
                        
                                    try
                                    {
                                        net.minecraftforge.client.ForgeHooksClient.drawScreen(this.mc.currentScreen, height, width, this.mc.getTickLength());
                                    }
                                    catch (Throwable throwable)
                                    {
                                       
                                    }
                                }
                            }
                        	    {
                        }
                        }
                        
                        

                        le crash

                        [15:07:33] [main/INFO] [mojang/NarratorWindows]: Narrator library for x64 successfully loaded
                        [15:07:35] [main/ERROR] [FML]: Exception caught during firing event net.minecraftforge.client.event.GuiOpenEvent@6615cc2e:
                        java.lang.NullPointerException: null
                        	at com.daichmff.SAOII.GuiCustomMainMenu.<init>(GuiCustomMainMenu.java:679) ~[GuiCustomMainMenu.class:?]
                        	at com.daichmff.SAOII.DaichSaoIIClient.onOpenGui(DaichSaoIIClient.java:95) ~[DaichSaoIIClient.class:?]
                        	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_DaichSaoIIClient_onOpenGui_GuiOpenEvent.invoke(.dynamic) ~[?:?]
                        	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
                        	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
                        	at net.minecraft.client.Minecraft.displayGuiScreen(Minecraft.java:1063) [Minecraft.class:?]
                        	at net.minecraft.client.Minecraft.init(Minecraft.java:591) [Minecraft.class:?]
                        	at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
                        	at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
                        	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
                        	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                        	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
                        	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
                        	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                        	at GradleStart.main(GradleStart.java:25) [start/:?]
                        [15:07:37] [main/ERROR] [FML]: Index: 2 Listeners:
                        [15:07:37] [main/ERROR] [FML]: 0: NORMAL
                        [15:07:37] [main/ERROR] [FML]: 1: ASM: com.daichmff.SAOII.DaichSaoIIClient@4f168322 onGuiOpen(Lnet/minecraftforge/client/event/GuiOpenEvent;)V
                        [15:07:37] [main/ERROR] [FML]: 2: ASM: com.daichmff.SAOII.DaichSaoIIClient@4f168322 onOpenGui(Lnet/minecraftforge/client/event/GuiOpenEvent;)V
                        [15:07:41] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:629]: ---- Minecraft Crash Report ----
                        // I'm sorry, Dave.
                        
                        Time: 5/19/19 3:07 PM
                        Description: Initializing game
                        
                        java.lang.NullPointerException: Initializing game
                        	at com.daichmff.SAOII.GuiCustomMainMenu.<init>(GuiCustomMainMenu.java:679)
                        	at com.daichmff.SAOII.DaichSaoIIClient.onOpenGui(DaichSaoIIClient.java:95)
                        	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_DaichSaoIIClient_onOpenGui_GuiOpenEvent.invoke(.dynamic)
                        	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
                        	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
                        	at net.minecraft.client.Minecraft.displayGuiScreen(Minecraft.java:1063)
                        	at net.minecraft.client.Minecraft.init(Minecraft.java:591)
                        	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
                        	at net.minecraft.client.main.Main.main(Main.java:118)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                        	at java.lang.reflect.Method.invoke(Unknown Source)
                        	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                        	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                        	at java.lang.reflect.Method.invoke(Unknown Source)
                        	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
                        	at GradleStart.main(GradleStart.java:25)
                        
                        
                        A detailed walkthrough of the error, its code path and all known details is as follows:
                        ---------------------------------------------------------------------------------------
                        
                        -- Head --
                        Thread: Client thread
                        Stacktrace:
                        	at com.daichmff.SAOII.GuiCustomMainMenu.<init>(GuiCustomMainMenu.java:679)
                        	at com.daichmff.SAOII.DaichSaoIIClient.onOpenGui(DaichSaoIIClient.java:95)
                        	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_6_DaichSaoIIClient_onOpenGui_GuiOpenEvent.invoke(.dynamic)
                        	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
                        	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
                        	at net.minecraft.client.Minecraft.displayGuiScreen(Minecraft.java:1063)
                        	at net.minecraft.client.Minecraft.init(Minecraft.java:591)
                        
                        -- Initialization --
                        Details:
                        Stacktrace:
                        	at net.minecraft.client.Minecraft.run(Minecraft.java:421)
                        	at net.minecraft.client.main.Main.main(Main.java:118)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                        	at java.lang.reflect.Method.invoke(Unknown Source)
                        	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
                        	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                        	at java.lang.reflect.Method.invoke(Unknown Source)
                        	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
                        	at GradleStart.main(GradleStart.java:25)
                        
                        -- System Details --
                        Details:
                        	Minecraft Version: 1.12.2
                        	Operating System: Windows 10 (amd64) version 10.0
                        	Java Version: 1.8.0_201, Oracle Corporation
                        	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                        	Memory: 810886832 bytes (773 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
                        	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                        	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                        	FML: MCP 9.42 Powered by Forge 14.23.5.2768 5 mods loaded, 5 mods active
                        	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                        
                        	| State  | ID        | Version      | Source                           | Signature |
                        	|:------ |:--------- |:------------ |:-------------------------------- |:--------- |
                        	| UCHIJA | minecraft | 1.12.2       | minecraft.jar                    | None      |
                        	| UCHIJA | mcp       | 9.42         | minecraft.jar                    | None      |
                        	| UCHIJA | FML       | 8.0.99.99    | forgeSrc-1.12.2-14.23.5.2768.jar | None      |
                        	| UCHIJA | forge     | 14.23.5.2768 | forgeSrc-1.12.2-14.23.5.2768.jar | None      |
                        	| UCHIJA | sao2      | 0.1          | bin                              | None      |
                        

                        Merci!

                        s

                        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

                          Alors je ne sais pas ce que tu cherches à faire, mais toutes les lignes après la 672 (la fonction drawScreen qui est en static ?!!??? et ce qui suit) n’a aucun sens et n’a rien à faire là.

                          Retires tout ça …

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

                            Merci !(pk j’ai pris le code que je vois en premier…)

                            s

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

                              Salut j’ai un problème sur ce tuto quand je créér le bouton discord les images ne s’affiche pas et les fichiers lang ne sont pas lu je suis en 1.12.2 et j’ai un screentext alternatif

                              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

                                Peux-tu envoyer le code des boutons concernés par le problème ?

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

                                  package fr.masterpala.scp15.client;
                                  
                                  import fr.masterpala.scp15.Main;
                                  import net.minecraft.client.Minecraft;
                                  import net.minecraft.client.gui.Gui;
                                  import net.minecraft.client.gui.GuiButton;
                                  import net.minecraft.client.renderer.GlStateManager;
                                  import net.minecraft.util.ResourceLocation;
                                  
                                  public class GuiButtonDiscord extends GuiButton
                                  {
                                      private static final ResourceLocation DISCORD_ICON = new ResourceLocation(Main.MODID, "textures/gui/discord.png");
                                  
                                      private static final ResourceLocation DISCORD_HOVER_ICON = new ResourceLocation(Main.MODID, "textures/gui/discord_hover.png");
                                  
                                      public GuiButtonDiscord(int buttonId, int x, int y)
                                      {
                                          super(buttonId, x, y, 20, 20, ""); // taille de 20x20, pas de nom
                                      }
                                  
                                      public void drawButton(Minecraft mc, int mouseX, int mouseY)
                                      {
                                  
                                          if(this.visible)
                                          {
                                          	GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
                                              boolean mouseHover = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height;
                                  
                                              if(mouseHover) // si la souris est sur le bouton
                                              {
                                              	mc.getTextureManager().bindTexture(DISCORD_HOVER_ICON);
                                              }
                                              else
                                              {
                                                  mc.getTextureManager().bindTexture(DISCORD_ICON);
                                              }
                                  
                                              Gui.drawScaledCustomSizeModalRect(this.x, this.y, 0, 0, 128, 128, 20, 20, 128, 128);
                                          }
                                      }
                                  
                                  }
                                  
                                  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

                                    Et le code de l’endroit où tu utilises le bouton ?

                                    (pareil pour le bouton menu.localserver, il faut le code où tu initialises ce bouton).

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

                                      j’ai régler le problème du bouton local server en mettant le nom sans passer par les fichiers langs mais j’ai toujours le problème de l’image

                                       private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_)
                                          {
                                          	
                                              this.buttonList.add(new GuiButton(20, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.format("Entre dans la fondation")));
                                      
                                              this.buttonList.add(new GuiButtonDiscord(21, this.width / 2 - 124, p_73969_1_ + 48));
                                          }
                                      
                                      
                                      //condition du bouton dans la méthode actionperfomed()
                                              if(button.id == 21)
                                      
                                              {
                                      
                                                  try
                                      
                                                  {
                                      
                                                      Desktop.getDesktop().browse(new URI("https://discord.gg/NbAvNae"));
                                      
                                                  }
                                      
                                                  catch(URISyntaxException e)
                                      
                                                  {
                                      
                                                      e.printStackTrace();
                                      
                                                  }
                                      

                                      Voila ce que ça donne une fois modification faite mais y s’il y a toujours le problème du bouton discord

                                      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

                                        Si tu ne passes pas par le fichier de lang remplaces I18n.format("Entre dans la fondation") par juste "Entre dans la fondation".

                                        Dans la classe de ton button, il se passe quoi si tu ajoutes @Override au dessus de drawButton ?

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

                                          Il y a un erreur et cela ne marche pas

                                          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

                                            Donc c’est que tu n’as pas le bon nom de fonction.
                                            Regardes dans la classe GuiButton, tu devrais trouver le bon nom.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 4 / 7
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB