MFF

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

    Name Modifier tickée + détecter le GM du joueur

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    12 Messages 5 Publieurs 1.8k 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.
    • L Hors-ligne
      laterreur216
      dernière édition par

      Pour savoir le mode de jeux d’un joueur

      event.getPlayer().capabilities.isCreativeMode
      
      1 réponse Dernière réponse Répondre Citer 0
      • InfiniteI Hors-ligne
        Infinite
        dernière édition par

        Je sais mais c’est pour le mode Créatif  😄 ,c’est ce que j’ai mis dans mon code pour le mode créatif.

        Mes Sites(Mes Sites)
        |
        |    Site général : Game & play
        |   Site de projets (en dev !) :Infinite's Ressources
        J'ai et je suis content d'avoir 16,75 points d'ICRating

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

          Salut,
          Il te faut une instance de EntityPlayerMP, ainsi tu pourras faire playerMP.interactionManager.gameType

          1 réponse Dernière réponse Répondre Citer 0
          • BrokenSwingB Hors-ligne
            BrokenSwing Moddeurs confirmés Rédacteurs
            dernière édition par

            Pour que l’event NameFormat soit déclenché il faut que tu utilises cette fonction : https://github.com/MFFbrokenSwing/FactionModV2/blob/master/src/main/java/factionmod/handler/EventHandlerFaction.java#L209

            1 réponse Dernière réponse Répondre Citer 0
            • InfiniteI Hors-ligne
              Infinite
              dernière édition par

              @Plaigon
              J’ai pas l’interactionManager pour EntityPlayerMP …
              @BrokenSwing
              j’ai fait ça :

              
              public class PlayerNameModifier
              {
                  @SubscribeEvent(priority=EventPriority.NORMAL)
                  public void onEvent(NameFormat event)
                  {
                      EntityPlayerMP playerMP = (EntityPlayerMP) event.entityPlayer;
                      System.out.println("PNM OK!");
                      if(event.displayname.equals("Infinite_X"))
                      {
                          event.displayname = ChatFormatting.DARK_RED + "[DEV]" + event.username;
                      }
              
                      if(event.entityPlayer.capabilities.isCreativeMode)
                      {
                          event.displayname = "[Creative]" + event.displayname;
                      }
                  }
              
                  @SubscribeEvent
                  public void onPlayerTick(TickEvent.PlayerTickEvent event) 
                  {
                      event.player.refreshDisplayName();
                  }
              }
              
              

              malheureusement quand je me met en mode survival, j’ai le [Creative] qui reste …  😕

              Mes Sites(Mes Sites)
              |
              |    Site général : Game & play
              |   Site de projets (en dev !) :Infinite's Ressources
              J'ai et je suis content d'avoir 16,75 points d'ICRating

              1 réponse Dernière réponse Répondre Citer 0
              • DylemD Hors-ligne
                Dylem
                dernière édition par

                En même temps, tu ne lui dis nulle part de l’enlever…

                
                if(event.entityPlayer.capabilities.isCreativeMode)
                event.displayname = "[Creative]" + event.displayname;
                else
                event.displayname = event.displayname.replace("[Creative]", "");
                
                

                Si je t'ai aidé, n'hésite pas à cliquer sur le nombre vert en dessous de mon image de profil, pour me le faire savoir. Ca me motive pour continuer …

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

                  Essaie de débug pour voir où ça coince. Est-ce que PlayerTickEvent est bien enregistré sur le bon bus.
                  Pour ton autre problème d’interactionManager, je vais voir en rentrant d’ici une petite heure.

                  1 réponse Dernière réponse Répondre Citer 0
                  • InfiniteI Hors-ligne
                    Infinite
                    dernière édition par

                    @Dylem
                    Fonctionne toujours pas …

                    @Plaigon
                    Voici ma classe :

                    
                    import com.mojang.realmsclient.gui.ChatFormatting;
                    
                    import cpw.mods.fml.common.eventhandler.EventPriority;
                    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                    import cpw.mods.fml.common.gameevent.TickEvent;
                    import net.minecraft.entity.player.EntityPlayerMP;
                    import net.minecraftforge.event.entity.player.PlayerEvent.NameFormat;
                    
                    public class PlayerNameModifier
                    {
                        @SubscribeEvent(priority=EventPriority.NORMAL)
                        public void onEvent(NameFormat event)
                        {
                            EntityPlayerMP playerMP = (EntityPlayerMP) event.entityPlayer;
                            System.out.println("PNM OK!");
                            if(event.displayname.equals("Infinite_X"))
                            {
                                event.displayname = ChatFormatting.DARK_RED + "[DEV]" + event.username;
                            }
                    
                            if(event.entityPlayer.capabilities.isCreativeMode)
                            {
                                event.displayname = "[Creative]" + event.displayname;
                            }
                            else
                            {
                                event.displayname = event.displayname.replace("[Creative]", "");
                            }
                    
                            if(!event.entityPlayer.capabilities.isCreativeMode)
                            {
                                event.displayname = event.username;
                            }
                        }
                    
                        @SubscribeEvent
                        public void onPlayerTick(TickEvent.PlayerTickEvent event) 
                        {
                            event.player.refreshDisplayName();
                        }
                    }
                    
                    

                    voici la méthode init de ma classe principale :

                    
                    @EventHandler
                        public void init(FMLInitializationEvent event)
                        {
                            proxy.registerRenders();
                            NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerIUtils());
                            MinecraftForge.EVENT_BUS.register(new PlayerHeadLootOnDie());
                            MinecraftForge.EVENT_BUS.register(new CustomFluidEvent());
                            MinecraftForge.EVENT_BUS.register(new PlayerNameModifier());
                        }
                    
                    

                    Mes Sites(Mes Sites)
                    |
                    |    Site général : Game & play
                    |   Site de projets (en dev !) :Infinite's Ressources
                    J'ai et je suis content d'avoir 16,75 points d'ICRating

                    1 réponse Dernière réponse Répondre Citer 0
                    • BrokenSwingB Hors-ligne
                      BrokenSwing Moddeurs confirmés Rédacteurs
                      dernière édition par

                      @Dylem Pas besoin de l’enlever, le displayname que tu reçoit est “neutre”. En gros le “[Creative]” ne reste pas, donc pas besoin de la remplacer.

                      @Infinite Ton premier code devrait fonctionner mais j’ai tu as dû faire une erreur quelque part. Vérifie la valeur de event.entityPlayer.capabilities.isCreativeMode mais je doute que ça vienne de là.

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

                        Plutôt playerMP.theItemInWorldManager.getGameType()
                        Mais tu ne peux instancier un EntityPlayerMP que côté serveur(je crois que NameFormat est uniquement déclenché client side). Du coup, il faudrait plutôt faire ainsi Minecraft.getMinecraft().currentGameType (mais variable private donc se servir d’un Access Transformer).
                        Dernièrement, petite info, tu as le boolean PlayerControllerMP#gameIsSurvivalOrAdventure, si tu ne souhaites aucune dissociation entres ces deux games modes.

                        1 réponse Dernière réponse Répondre Citer 0
                        • BrokenSwingB Hors-ligne
                          BrokenSwing Moddeurs confirmés Rédacteurs
                          dernière édition par

                          NameFormat est déclenché côté serveur. Et c’est plutôt côté client que je ne suis pas sûr qu’il soit déclenché, j’ai la flemme de vérifier. Tout ça pour dire qu’il peux bien cast en EntityPlayerMP (mais du coup vérifier qu’il est server-side)

                          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