1.12.2 Connexion serveur depuis second Thread



  • Bonjour,
    Je suis actuellement en train de développer un mod en 1.12.2, je rencontre un probleme au moment du code ou le jeu doit connecter le joueur à un serveur, cette action est effectuer depuis un Thread à par ce qui me donne une erreur. J'aimerais savoir s'il est quand meme possible de connecter le joueur depuis un second Thread ou si je suis obliger d'utiliser le Client Thread.
    Voici l'erreur et le morceau de code que j'utilise pour connecter le joueur :

    Exception in thread "Thread-8" [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: java.lang.RuntimeException: No OpenGL context found in the current thread.
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at org.lwjgl.opengl.GL11.glClear(GL11.java:585)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.renderer.GlStateManager.clear(GlStateManager.java:579)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.LoadingScreenRenderer.displayString(LoadingScreenRenderer.java:71)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.LoadingScreenRenderer.resetProgressAndMessage(LoadingScreenRenderer.java:46)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.Minecraft.loadWorld(Minecraft.java:2610)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.Minecraft.loadWorld(Minecraft.java:2563)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.multiplayer.GuiConnecting.<init>(GuiConnecting.java:38)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.modtest.client.gui.CMGuiLogin.initGui(CMGuiLogin.java:121)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.gui.GuiScreen.setWorldAndResolution(GuiScreen.java:543)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.Minecraft.displayGuiScreen(Minecraft.java:1098)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.modtest.client.gui.CMGuiQueue.initGui(CMGuiQueue.java:127)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.gui.GuiScreen.setWorldAndResolution(GuiScreen.java:543)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.minecraft.client.Minecraft.displayGuiScreen(Minecraft.java:1098)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at net.modtest.client.waitingline.WaitingLine.run(WaitingLine.java:51)
    [19:56:55] [Thread-8/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.lang.Thread.run(Thread.java:748)
    

    Partie du code dans un Thread à par pour connecter le joueur :

    FMLClientHandler.instance().connectToServer(new CMGuiMainMenu(), CMGuiMainMenu.SERVER);
    

    Merci d'avance 🙂


  • Moddeurs confirmés Rédacteurs Administrateurs

    Bonsoir,
    il faut absolument être sur le main thread.
    Tu peux utiliser Minecraft.getInstance().addScheduledTask pour ajouter la tâche, minecraft l'exécutera ensuite depuis le main thread.


  • Moddeurs confirmés Rédacteurs Administrateurs

    Bonsoir,
    il faut absolument être sur le main thread.
    Tu peux utiliser Minecraft.getInstance().addScheduledTask pour ajouter la tâche, minecraft l'exécutera ensuite depuis le main thread.



  • Merci beaucoup pour la reponse rapide ^^, cepandant je fait 2-3 test mais je me retrouve toujour avec la même erreur j'ai essayer ceci :

    Minecraft.getMinecraft().addScheduledTask((Runnable) new GuiConnecting(this, mc, CMGuiMainMenu.SERVER));
    


  • Problème régler ! Merci beaucoup d'avoir repondu aussi vite 🙂


Log in to reply