Changer la vie de certains joueurs.



  • Bonjour, Bonsoir,
    Apres tant d’absence j'ai decidé de me remettre au modding.

    Mais je me confronte a un problème:
    J'essaie d'augmenter la vie de certains joueurs mais quand je lance le serveur et que je me connecte avec le pseudo en question, "Internal server error" s'affiche.

        @SubscribeEvent
        public void onPlayerTick(TickEvent.PlayerTickEvent event) 
       {
            World world = event.player.getEntityWorld();
            if(!world.isRemote)
            { 
                if(Minecraft.getMinecraft().getSession().getUsername().equals("pseudo1") || Minecraft.getMinecraft().getSession().getUsername().equals("pseudo2"))
                {
                    if(event.player.getMaxHealth() < 99.0F)
                    {
                        AttributeModifier moreHealth = new AttributeModifier(event.player.getPersistentID(), "Test", 100, 0).setSaved(true);
                        IAttributeInstance attributeinstance = event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth);
                        attributeinstance.removeModifier(moreHealth);
                        attributeinstance.applyModifier(moreHealth);
                     }
                 }
            }
       }
    

    Merci pour vos futures réponses.


  • Moddeurs confirmés Rédacteurs Modérateurs Administrateurs

    Pourquoi tu t'embêtes à faire Minecraft.getMinecraft().getSession().getUsername().equals("pseudo1") alors que tu as accès au joueur et donc à son username depuis l'event ?



  • Le problème est que la seule méthode pour obtenir le pseudo d'un joueur, c'est d'utiliser

    event.player.getDisplayName();
    

    or, j'utilise des pseudos modifiés (grace a l'event "onNameFormat")


  • Moddeurs confirmés Rédacteurs Modérateurs Administrateurs

    Dans ce cas, passe par le UUID du joueur



  • Bonne idée, mais je crois que le système ne fonctionne pas quand le serveur est en "online-mode:false". J'ai simplement utilisé les nom modifiés a la place et ça fonctionne ! Je passe en résolu. Merci.


Log in to reply