"Achats" d'items plugin bedwars.

Sala85

Massacreur de Mouton
12 Octobre 2020
36
2
18
22
Bonsoir,
Je suis en train de développer un plugin Bedwars (modifié), et lorsqu'on achète de la laine par exemple, il faut avoir 8 ou + de fers dans son inventaire, en faisant clique gauche on perd les 8 de fers afin d'acheter la laine.
Sauf que dans mon code, il faut 8 fers précisément (et pas plus) afin d'acheter les laines, j'ai essayer plein de choses pour pouvoir faire en sorte qu'en en ayant 15 de fers, ça retire aux joueurs 8 de fers et donc laisse le reste au joueur (c'est ce que je voudrais faire).
Screen du code :
Merci d'avance pour les aides. (PS : J'ai utilisé spigot 1.8.8)
 

Fichiers joints

  • 1627680017543.png
    1627680017543.png
    27.7 KB · Affichages: 132

Niz

l | l | l | l | l
18 Août 2013
1 062
1
639
267
Hello !
Serait-il possible d'avoir le code complet histoire de t'aider de manière plus large stp ?
 

Ithri012

Minecraft PvP Player
19 Septembre 2020
30
1
18
Salut !

Dit ? le problème ici c'est que si j'ai par exemple 20 d'iron, sa m'enleve les 20 d'iron or que la laine a la base c 8 d'iron ?
 

Niz

l | l | l | l | l
18 Août 2013
1 062
1
639
267
Salut !

Dit ? le problème ici c'est que si j'ai par exemple 20 d'iron, sa m'enleve les 20 d'iron or que la laine a la base c 8 d'iron ?
Ah, j'avais donc mal compris autant pour moi !

Déjà, tu peux tester si l'inventaire du joueur n'est pas plein. (En utilisant par exemple la méthode Inventory#firstEmpty() qui retourne -1 s'il n'y a plus de place.
Ensuite il existe la méthode Inventory#containsAtLeast pour ce que tu cherches.

EDIT: Je suis un boulet, la méthode que tu cherches est Inventory#removeItem.
 
Dernière édition:

Sala85

Massacreur de Mouton
12 Octobre 2020
36
2
18
22
Salut !

Dit ? le problème ici c'est que si j'ai par exemple 20 d'iron, sa m'enleve les 20 d'iron or que la laine a la base c 8 d'iron ?
Srry j'ai du mal m'exprimer x).
Le problème c'est qu'en fait dans mon code, il faut obligatoirement 8 iron pour acheter de la laine. Ce que je voudrais c'est que si on a 8 ou plus de 8, qu'on puisse quand même acheté l'iron mais en enlevant que 8 de fers sur les 20 (si on en a 20), etc, mais je ne sais pas comment faire.
Et le problème n'est pas que si on a 30 de fers par exemplen ça en enlève 30.

Jpense pas sinon que montré le code complet servirai à quelque chose puisque le "problème" est vraiment sur cette partie du screen que j'ai envoyé. A la limite je peux montrer un peu plus mais bon ça va pas grandement aider en plus.

PS : Pas besoin de m'expliquer mon erreur je l'ai compris xd, genre vu que iron = à 8 fers, et qu'après je fais une verif si le joueurs à exactement 8 de fers, bah forcément c'est logique qu'en en ayant plus ça ne marche pas. Mais jsp comment faire dans le plugin pour que ce soit une verif de 8 fers OU plus...

Mrc d'avance pour l'aide et mrc déjà pour les réponses. x)
 

Fichiers joints

  • 1627761727569.png
    1627761727569.png
    47.3 KB · Affichages: 118

Niz

l | l | l | l | l
18 Août 2013
1 062
1
639
267
Srry j'ai du mal m'exprimer x).
Le problème c'est qu'en fait dans mon code, il faut obligatoirement 8 iron pour acheter de la laine. Ce que je voudrais c'est que si on a 8 ou plus de 8, qu'on puisse quand même acheté l'iron mais en enlevant que 8 de fers sur les 20 (si on en a 20), etc, mais je ne sais pas comment faire.
Et le problème n'est pas que si on a 30 de fers par exemplen ça en enlève 30.

Jpense pas sinon que montré le code complet servirai à quelque chose puisque le "problème" est vraiment sur cette partie du screen que j'ai envoyé. A la limite je peux montrer un peu plus mais bon ça va pas grandement aider en plus.

PS : Pas besoin de m'expliquer mon erreur je l'ai compris xd, genre vu que iron = à 8 fers, et qu'après je fais une verif si le joueurs à exactement 8 de fers, bah forcément c'est logique qu'en en ayant plus ça ne marche pas. Mais jsp comment faire dans le plugin pour que ce soit une verif de 8 fers OU plus...

Mrc d'avance pour l'aide et mrc déjà pour les réponses. x)
Yop !
As-tu essayé avec les méthodes que je t'ai donné ?
Tu utilises la méthode Inventory#containsAtLeast avec un item stack Iron, et ensuite tu enlèves les items avec la méthode Inventory#removeItem.