Résolu Crash nouvelle classe chargement
-
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>
-
Et le crash ?
-
-
Désolé j’ai complètement oublié, j’ai edit mon poste.
-
çà n’a rien à voir avec ta classe, il faut que tu mettes à jour forge vers la 1.7.10.
-
@‘SCAREX’:
çà n’a rien à voir avec ta classe, il faut que tu mettes à jour forge vers la 1.7.10.
Effectivement merci
-
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.