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

    Résolu EntityJoinWorld/EntityQuitWorld

    1.7.x
    1.7.10
    3
    15
    1744
    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.
    • T
      thecraft38 dernière édition par

      Bonjour j’ai essayé de faire un message quand un joueur join et quit le serveur j’ai essayé sa mais sa ne marche

      @SubscribeEvent
      public void onEntityJoinWorld(PlayerEvent.PlayerLoggedInEvent worldevent)
      {
      worldevent.player.addChatMessage(new ChatComponentTranslation("join.msg", worldevent.player.getDisplayName()).setChatStyle((new ChatStyle().setColor(EnumChatFormatting.DARK_GREEN).setBold(true))));
      }
      @SubscribeEvent
      public void onEntityQuitWorld(PlayerEvent.PlayerLoggedOutEvent worldevent)
      {
      worldevent.player.addChatMessage(new ChatComponentTranslation("quit.msg", worldevent.player.getDisplayName()).setChatStyle((new ChatStyle().setColor(EnumChatFormatting.DARK_RED).setBold(true))));
      }
      

      Merci d’avance pour votre aide

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,
        Ce que tu fais là, c’est envoyer un message au joueur qui se connecte et à celui qui se déconnecte (inutile dans le cas de la déconnexion).
        Il faut envoyer le message à tous les joueurs du serveur avec MinecraftServer.getServer().getConfigurationManager().sendChatMsg(chatComponent);
        Attention aussi PlayerEvent.PlayerLoggedInEvent et PlayerEvent.PlayerLoggedInEvent sont des event fml, donc a enregistrer avec FMLCommonHandler.instance().bus().register

        1 réponse Dernière réponse Répondre Citer 0
        • T
          thecraft38 dernière édition par

          Je vais essayer sa et je vous dis si j’ai encore un problème
          edit : j’ai fait ceci qui fonctionne :

          @SubscribeEvent
          public void onEntityJoinWorld(PlayerEvent.PlayerLoggedInEvent worldevent)
          {
          MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("[+]" + worldevent.player.getDisplayName()).setChatStyle((new ChatStyle().setColor(EnumChatFormatting.DARK_GREEN).setBold(true))));
          }
          @SubscribeEvent
          public void onEntityQuitWorld(PlayerEvent.PlayerLoggedOutEvent worldevent)
          {
          MinecraftServer.getServer().getConfigurationManager().sendChatMsg(new ChatComponentText("[-]" + worldevent.player.getDisplayName()).setChatStyle((new ChatStyle().setColor(EnumChatFormatting.DARK_RED).setBold(true))));
          }
          

          j’ai une seul question, si je le met comme sa sur mon serveur il me semble que le message vanillla va apparaître aussi non ? si oui comment puis-je le désactiver ?

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

            Reflexion ou peut-être qu’un plugin existe déjà pour ça.

            1 réponse Dernière réponse Répondre Citer 0
            • T
              thecraft38 dernière édition par

              qu’entends-tu par réflexion ?

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

                ClassTransformer pour modifier la classe contenant l’envoie du message.

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                  @SideOnly(Side.CLIENT)
                  @SubscribeEvent
                  public void onMessageReceived(ClientChatReceivedEvent event)
                  {
                  if(event.getMessage().getFormattedText().contains(I18n.format("multiplayer.player.left", "")) || event.getMessage().getFormattedText().contains(I18n.format("multiplayer.player.joined", "")))
                  {
                  event.setCanceled(true);
                  }
                  }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • Deleted
                    Deleted dernière édition par

                    C’est pas mal aussi ça xD
                    Je cherche trop compliqué…

                    1 réponse Dernière réponse Répondre Citer 0
                    • T
                      thecraft38 dernière édition par

                      Je dois bien avouer que je ne vois pas trop comment faire; quelqu’un aurait une documentations ( un post forum, un github etc ) pour que je puisse me renseigner ?

                      1 réponse Dernière réponse Répondre Citer 0
                      • T
                        thecraft38 dernière édition par


                        Désolée mais sa ne fonctionne pas il me demande “add cast of ‘event’” et je regarde sans trouver comment le corigé

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                          Ah oui car c’est en code 1.10.2.
                          Avant il n’y avait pas de getter, event.getMessage() devrait être juste event.message

                          1 réponse Dernière réponse Répondre Citer 0
                          • T
                            thecraft38 dernière édition par

                            effectivement merci beaucoup pour votre aide résolu

                            edit : en faite non ce n’est pas résolu je m’explique ; le code du message vas très bien mais quand je met ce code :

                            @SubscribeEvent
                               public void onMessageReceived(ClientChatReceivedEvent event)
                               {
                                   if(event.message.getFormattedText().contains(I18n.format("multiplayer.player.join")));
                                   {
                                       event.setCanceled(true);
                                   }
                               }
                            

                            avec ou sans le side client le message custom se désactivé aussi.
                            Le problème vient bien de cet event qui désactive le message du fais que sans ce code tous fonctionne et que les system.ou.println confirmes mes soupçon.
                            J’ai beau y réfléchir je ne trouve pas de solution j’ai voulu essayer de mettre notament en condition si l’event est annulé alors sa active mon message mais certains des events sont FML et d’autre Forge donc sa ne marche pas.
                            Voila pourquoi je redemande votre aide.

                            1 réponse Dernière réponse Répondre Citer 0
                            • T
                              thecraft38 dernière édition par

                              En effet ceci désactive le message le problème c’est que cet event désactive aussi le message custom ( j’ai essayé avec des println et sa vient en effet de ceci).
                              J’ai essayé de faire en sorte que lorsque le message est cancel le message du chat s’active mais sa ne fonctionne pas car un event est fml et l’autre forge.

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                On utilises ce code sur nhg et on n’a pas de problème.
                                Donc il faut que tu cherches pourquoi la condition annule aussi ton message.

                                1 réponse Dernière réponse Répondre Citer 0
                                • T
                                  thecraft38 dernière édition par

                                  trouvé résolu

                                  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