Non résolu [1.7.10] Lier un item à un joueur
-
Yo tout le monde,
je suis débutant en modding et j’avoue ne pas trop savoir par où commencer.Je voudrais créer un item qui puisse être lié à un joueur de tel sorte que tant que l’item existe le joueur gagne un bonus et si l’item est détruis le joueur perd son bonus et gagne un malus.
J’ai vaguement compris qu’il faut que j’utilise des NBTTag mais je sais pas trop comment m’y prendre.
Et je pense qu’il doit y avoir un event pour quand l’item est détruis mais je ne l’ai pas trouvé.
Merci d’avance pour vos réponses.
-
Yo. Si j’ai bien compris, il faudrait que tu enregistre le nom du joueur (par shift-click par exemple) et dans ton TickEvent.PlayerTickEvent tu ferais :
// cherche l'item dans l'inventaire du joueur puis : NBTTagCompound nbt = <stack>.getTagCompound(); if (nbt.hasCompund("owner")) { if (nbt.getString("owner") == player.getName()) { // appliquer un bonus ? } else { // appliquer un malus ? } }
effet de potion :
player.addPotionEffect(<effect>);
-
Mais du coup c’est pas possible de mettre l’item dans un coffre ? (en gardant le bonus)
-
Si tu te base sur la recherche dans l’inventaire du joueur, il ne pourra pas être détecté dans des coffres (logique).
Item non détecté => Pas de bonus
-
Du coup on peut pas faire en sorte que tant que l’objet existe dans le monde le bonus est activé.
Merci tu m’as un aidé avec les NBTTag.
-
Après pour dans le monde t’as une variable comme
worldIn.loadedTileEntities
qui est une liste, tu peux itérer chaque TE de Container jusqu’à trouver ton item.