Résolu 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.
-
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”)
-
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.