• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Ouvrir un gui au client à partir du serveur

    1.7.x
    1.7.10
    4
    9
    808
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      INeoxz last edited by

      Bonjour , j’ai vraiment besoin d’aide car je suis un peu perdu alors pour commencer j’ai crée un gui de connexion qui fonctionne avec des requêtes php pour vérifier si les identifiants du joueur sont correctes tous fonctionne correctement maintenant il ne me reste plus qu’une seul chose à faire et comme je débute en forge je suis un peu confus j’aimerais que quand le joueur se connecte sur le serveur (le serveur fonctionne avec Thermos) le client ouvre le gui de connexion au joueur et applique quelques effets de potions et je ne sais réellement pas comment faire auriez-vous la possibilité de me dire comment je dois faire je vous remercie !

      cordialement

      1 Reply Last reply Reply Quote 0
      • Superloup10
        Superloup10 Modérateurs last edited by

        Très simple, tu fais une recherche sur les events qui s’activent au moment où tu veux lancer ton Gui.

        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

        1 Reply Last reply Reply Quote 0
        • I
          INeoxz last edited by

          Il ne faut pas utiliser des packets qu’il faut envoyer au client à partir du serveur dès que le joueur se connecte sur le serveur pour ouvrir le gui ?

          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

            Si c’est ça.
            Et pour envoyer le paquet à la connexion il faut utiliser l’event PlayerLoginEvent (ou quelque chose comme ça)

            1 Reply Last reply Reply Quote 0
            • I
              INeoxz last edited by

              D’accord je comprends mieux j’ai suivi vos instructions et j’ai fais ça dans le code :

              @SubscribeEvent
              public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event)
              {
              EntityPlayerMP player_MP = (EntityPlayerMP)event.player;
              System.out.print(“Connection d’un joueur”);
              JobGui.instance.network.sendToServer(new CylrpPacketHandler(“opengui”));
              }

              est-ce correct ? et une fois j’envoie le message comment je le réceptionne à partir du serveur ?

              et j’ai aussi remarquer que je ne reçois pas dans la console l’informations comme quoi le packet a bien était reçu
              par contre avec un bouton cela fonctionne je ne comprends pas .

              Edit:

              J’ai réussi pour cela c’est utilisé un TimeUnit.SECONDS.sleep(3); et le gui s’affiche correctement je vous remercie et je mets le sujet en résolue ! 🙂

              1 Reply Last reply Reply Quote 0
              • AymericRed
                AymericRed last edited by

                JobGui.instance.network.sendToServer(new CylrpPacketHandler("opengui"));
                

                Euh je sais pas comment ça a pu marcher avec un “TimeUnit.SECONDS.sleep(3);” (en tous cas peut marcher qu’en solo) mais cette ligne envoie le packet au serveur, or tu es déjà dessus, il faut que tu envoies le packet au client et tu n’auras pas besoin de “TimeUnit.SECONDS.sleep(3);” qui va en plus faire freeze le serveur si tu mets sur un serveur multi.

                PS : balises java = ❤

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                1 Reply Last reply Reply Quote 0
                • I
                  INeoxz last edited by

                  Oui effectivement je viens de remarquer ça bon bah du coup j’ai encore du boulot

                  1 Reply Last reply Reply Quote 0
                  • I
                    INeoxz last edited by

                    J’ai l’impression que mod n’arrive pas à envoyer de packet côté client j’ai oublié quelque chose ?

                    <3test

                    1 Reply Last reply Reply Quote 0
                    • I
                      INeoxz last edited by

                      du coup j’ai fais comme tu as dis Aymeric mais maintenant je n’arrive plus à me connecter j’ai une erreur dans la console:

                      SimpleChannelHandlerWrapper exception
                      java.lang.ClassCastException: net.minecraft.client.network.NetHandlerPlayClient cannot be cast to net.minecraft.network.NetHandlerPlayServer

                              network = NetworkRegistry.INSTANCE.newSimpleChannel("cylrp");
                      
                              network.registerMessage(CylrpPacketHandler.Handler.class, CylrpPacketHandler.class, 1, Side.CLIENT);
                      
                      public class CylrpPacketHandler implements IMessage {
                      
                          private String text;
                      
                          public CylrpPacketHandler() { }
                      
                          public CylrpPacketHandler(String text) {
                              this.text = text;
                          }
                      
                          @Override
                          public void fromBytes(ByteBuf buf) {
                              text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
                          }
                      
                          @Override
                          public void toBytes(ByteBuf buf) {
                              ByteBufUtils.writeUTF8String(buf, text);
                          }
                      
                          public static class Handler implements IMessageHandler <cylrppackethandler, imessage="">{
                      
                              @Override
                              public IMessage onMessage(CylrpPacketHandler message, MessageContext ctx) {
                      
                                   if(ctx.side == Side.CLIENT) {
                                   EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                                   World world = player.worldObj;
                                   if(!world.isRemote){
                      
                                       player.openGui(JobGui.instance, CylrpGuiHandler.CYLRP_ID, world, 0, 0, 0);
                                   }
                      
                                   System.out.println("MESSAGE");
                                   }
                      
                                   return null;
                                   }
                      
                          }
                      
                      public class PlayerJoinEvent {
                      
                          @SubscribeEvent
                          public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event)
                          {
                              EntityPlayerMP player = (EntityPlayerMP) event.player;
                              System.out.print("Connection d'un joueur nommé" + player.getDisplayName());
                              JobGui.network.sendTo(new CylrpPacketHandler("p"), player);
                          }
                      
                      }
                      

                      Edit: C’est bon cette fois-ci j’ai réussi ! merci de votre aide ton message m’a énormément aide</cylrppackethandler,>

                      1 Reply Last reply Reply Quote 0
                      • 1 / 1
                      • First post
                        Last post
                      Design by Woryk
                      Contact / Mentions Légales

                      MINECRAFT FORGE FRANCE © 2018

                      Powered by NodeBB