• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Ouvrir un gui au client à partir du serveur

    1.7.x
    1.7.10
    4
    9
    925
    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.
    • B
      Bxlow dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • Superloup10
        Superloup10 Modérateurs dernière édition par

        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 réponse Dernière réponse Répondre Citer 0
        • B
          Bxlow dernière édition par

          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 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

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

            1 réponse Dernière réponse Répondre Citer 0
            • B
              Bxlow dernière édition par

              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 réponse Dernière réponse Répondre Citer 0
              • AymericRed
                AymericRed dernière édition par

                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 réponse Dernière réponse Répondre Citer 0
                • B
                  Bxlow dernière édition par

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

                  1 réponse Dernière réponse Répondre Citer 0
                  • B
                    Bxlow dernière édition par

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

                    <3test

                    1 réponse Dernière réponse Répondre Citer 0
                    • B
                      Bxlow dernière édition par

                      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 réponse Dernière réponse Répondre Citer 0
                      • 1 / 1
                      • Premier message
                        Dernier message
                      Design by Woryk
                      Contact / Mentions Légales

                      MINECRAFT FORGE FRANCE © 2018

                      Powered by NodeBB