MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    EntityJoinWorld/EntityQuitWorld

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    15 Messages 3 Publieurs 2.0k Vues 1 Watching
    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 Hors-ligne
      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
      • robin4002R Hors-ligne
        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 Hors-ligne
          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
          • DeletedD Hors-ligne
            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 Hors-ligne
              thecraft38
              dernière édition par

              qu’entends-tu par réflexion ?

              1 réponse Dernière réponse Répondre Citer 0
              • DeletedD Hors-ligne
                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
                • robin4002R Hors-ligne
                  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
                  • DeletedD Hors-ligne
                    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 Hors-ligne
                      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 Hors-ligne
                        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
                        • robin4002R Hors-ligne
                          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 Hors-ligne
                            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 Hors-ligne
                              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
                              • robin4002R Hors-ligne
                                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 Hors-ligne
                                  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
                                  ContactMentions Légales

                                  MINECRAFT FORGE FRANCE © 2024

                                  Powered by NodeBB