21 janv. 2014, 18:10

En effet, je viens de faire de recherche, et ça va être possible ou du moins très compliqué. En fait le code qui enclenche l’achievement est du côté serveur. Ajouter de l’expérience, c’est aussi du côté serveur. Lorsqu’un joueur débloque un achievement, le serveur envoie un paquet au client, et ensuite le client regarde si il a déjà l’achievement. Si c’est le cas, rien ne se passe, sinon l’achievement get s’affiche.
Donc il faudrait check côté client s’il a l’achievement avec Minecraft.getMinecraft().statFileWriter.hasAchievementUnlocked(achievement), et envoyer un paquet au serveur s’il ne l’ai pas.
Mais même si tu t’amuse a faire ça, on pourra facilement faire du bug abuse en supprimant le fichier de stat dans le .minecraft.

Le plus simple est donc de mettre un tag nbt dans le joueur lorsqu’il la première, et s’il n’a pas ce tag ça donne de l’xp.
Comme j’ai fais pour le cadeau de noël sur Cube³ : https://github.com/robin4002/Cube3/blob/master/cube3_common/fr/cube3/common/Cube3PlayerTracker.java#L15-L22