MFF

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

    Crash nouvelle classe chargement

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.2
    7 Messages 5 Publieurs 1.9k 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.
    • S Hors-ligne
      Sebenf0rce
      dernière édition par

      Bonjour,
      J’ai crée une classe permettant de creer un chargement avant la connexion au serveur cependant le jeu crash au lancement.
      Voici ma classe :

      ​package com.example.examplemod;
      
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiMainMenu;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.client.multiplayer.GuiConnecting;
      import net.minecraft.client.renderer.Tessellator;
      import net.minecraft.util.ResourceLocation;
      
      import org.lwjgl.opengl.GL11;
      
      public class GuiLoadingScreen extends GuiScreen
      {
      /**
      * L'image à dessiner en arrière plan.
      */
      private static final ResourceLocation backgroundImage = new ResourceLocation("textures/gui/title/mojang.png");
      private transient long updateCounter = 0;
      
      /**
      * Le nom du serveur.
      */
      public String serverName = "Nom du serveur !";
      
      /**
      * Étiquette affichée au dessus du nom du serveur.
      */
      public String bfsName = "§fServeur:";
      
      /**
      * Message de chargement.
      */
      public String loading = "§aChargement…";
      
      /**
      * L'ip du serveur auquel il faudra se connecter une fois le chargement
      * terminé.
      */
      public String serverIp = "localhost";
      
      /**
      * Le port du serveur auquel il faudra se connecter une fois le chargement
      * terminé.
      */
      public int serverPort = 25565;
      
      @Override
      public void initGui()
      {
      // On ajoute le bouton pour annuler.
      this.buttonList.add(new GuiButton(0, this.width - 100, this.height - 30, 60, 20, "Annuler"));
      }
      
      @Override
      public void drawScreen(int par1, int par2, float par3)
      {
      // On dessine l'image en arrière plan.
      // Il faut appeler cette ligne en premier pour qu'elle soit bien en arrière plan.
      this.drawBack();
      
      // Cadre éléments
      drawHorizontalLine(0, this.width, this.height - 47, 0xff000000);
      drawHorizontalLine(0, this.width, this.height - 46, 0xff737373);
      this.drawRect(0, this.height - 45, this.width, this.height, 0xff333333);
      
      // Barre de progression 
      drawRect(this.width / 2 - 101, this.height - 28, this.width / 2 + 101, this.height - 15, 0xfd8d8d80);
      drawRect(this.width / 2 - 100, this.height - 27, this.width / 2 + 100, this.height - 16, 0xf0000000);
      drawRect(this.width / 2 - 100, this.height - 27, width / 2 - 100 + (int) updateCounter * 2, this.height - 16, 0xf00aa000); //Texte chargement 
      this.drawCenteredString(this.fontRendererObj, loading, this.width / 2, this.height - 40, 16777215);
      
      // Pourcentage 
      String percent = updateCounter + "%";
      this.drawCenteredString(this.fontRendererObj, percent, this.width / 2, this.height - 10, 16777215);
      
      // Avant nom serveur 
      this.drawString(this.fontRendererObj, bfsName, 10, this.height - 22, -1);
      
      // Nom du serveur 
      this.drawString(this.fontRendererObj, serverName, 10, this.height - 12, -1);
      
      // On ouvre la matrice pour ne pas sauvegarger la mise à l'échelle qu'on va faire.
      GL11.glPushMatrix();
      {
      /**
      * Par combien faut-il multiplier la taille du message de bienvenue.
      */
      float scaleFactor = 2.0f;
      
      // On déplace l'origine jusqu'à l'endroit où l'on veut placer le message.
      this.translateToStringPos("§aBienvenue, §b" + this.mc.getSession().getUsername() + " §a!", scaleFactor, this.width / 2, 1);
      
      // On met à l'échelle selon la variable.
      GL11.glScalef(scaleFactor, scaleFactor, 1.0f);
      this.drawString(fontRendererObj, "§aBienvenue, §b" + this.mc.getSession().getUsername() + " §a!", 0, 0, 0xf0c300);
      }
      // On ferme la matrice.
      GL11.glPopMatrix();
      
      // On dessine les boutons.
      super.drawScreen(par1, par2, par3);
      }
      
      /**
      * Déplace l'origine via {@link GL11#glTranslatef(float, float, float)} pour
      * le placer à l'endroit où doit débuter le dessin de la chaîne de
      * caractères passée en argument.
      * 
      * @param text
      *            Le message à dessiner.
      * @param scale
      *            Le nombre de fois qu'il sera plus grand (ex: si ça vaut 2, le
      *            message sera 2 fois plus haut et 2 fois plus large).
      * @param x
      *            Position X souhaitée (avant appel du glScalef).
      * @param y
      *            Position Y souhaitée (avant appel du glScalef).
      */
      protected void translateToStringPos(String text, float scale, int x, int y)
      {
      float stringWidth = this.fontRendererObj.getStringWidth(text) * scale;
      GL11.glTranslatef(x - (stringWidth / 2f), y, 0.0f);
      }
      
      public void actionPerformed(GuiButton button)
      {
      // Si le joueur appuie sur le bouton annuler, on retourne au menu principal.
      if (button.id == 0)
      {
      this.mc.displayGuiScreen(new GuiMainMenu());
      }
      }
      }
      

      Cette classe est appelé lorsque l’on appui sur un bouton de mon menu custom de la manière suivante :

      ​             this.mc.displayGuiScreen(new GuiLoadingScreen());
      

      Voici le rapport du crash :

      [18:31:23] [main/ERROR] [LaunchWrapper]: Unable to launch
      java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
      at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
      at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
      at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
      Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
      at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[?:1.8.0_45]
      at java.lang.Runtime.loadLibrary0(Unknown Source) ~[?:1.8.0_45]
      at java.lang.System.loadLibrary(Unknown Source) ~[?:1.8.0_45]
      at org.lwjgl.Sys$1.run(Sys.java:73) ~[lwjgl-2.9.0.jar:?]
      at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_45]
      at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) ~[lwjgl-2.9.0.jar:?]
      at org.lwjgl.Sys.loadLibrary(Sys.java:95) ~[lwjgl-2.9.0.jar:?]
      at org.lwjgl.Sys.<clinit>(Sys.java:112) ~[lwjgl-2.9.0.jar:?]
      at net.minecraft.client.Minecraft.getSystemTime(Minecraft.java:2674) ~[Minecraft.class:?]
      at net.minecraft.client.main.Main.main(Main.java:40) ~[Main.class:?]
      … 6 more
      

      Java HotSpot™ 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

      Merci d’avance.</clinit>

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

        Et le crash ?

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

          http://minecraftforgefrance.fr/showthread.php?tid=7

          "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
          ― Jordan B. Peterson

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

            Désolé j’ai complètement oublié, j’ai edit mon poste.

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

              çà n’a rien à voir avec ta classe, il faut que tu mettes à jour forge vers la 1.7.10.

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

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

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

                @‘SCAREX’:

                çà n’a rien à voir avec ta classe, il faut que tu mettes à jour forge vers la 1.7.10.

                Effectivement merci 😉

                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

                  L’erreur  Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path n’a en effet rien à voir.
                  Et si tu avais tapé “no lwjgl” sur la recherche du forum tu aurai directement eu la solution au problème.

                  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