Recherche Détecté si le joueur à un item dans son inventaire!

TBMaster59

Développeur Java & WEB
4 Août 2016
43
5
23
20
Bonjour, je suis encore bloqué, voilà ma question:

Comment détecté si un joueur possède un certain item dans sont inventaire, avec un certain nombre?

J'ai essayer avec:
Code:
ItemStack it3 = new ItemStack(1, 32);
if(p.getInventory().contains(it3){

}
Mais, il ne me détecte les items que si c'est le nombre exacte de "it3"
Comment faire alors?
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Bah si tu veux juste check si c'est le bon matériel tu peux faire ça:
PHP:
ItemStack it3 = new ItemStack(1, 32);
if(p.getInventory().contains(it3.getMaterial()) {
    // ton code
}

Si tu dois vraiment vérifier que c'est le même sauf le nombre d'item tu peux utiliser le "isSimilar" (et du coup faire une boucle ou récupérer l'index du matériel, ...).


Cordialement,
Detobel36
 
  • J'aime
Reactions: DiscowZombie

TBMaster59

Développeur Java & WEB
4 Août 2016
43
5
23
20
Salut,

Bah si tu veux juste check si c'est le bon matériel tu peux faire ça:
PHP:
ItemStack it3 = new ItemStack(1, 32);
if(p.getInventory().contains(it3.getMaterial()) {
    // ton code
}

Si tu dois vraiment vérifier que c'est le même sauf le nombre d'item tu peux utiliser le "isSimilar" (et du coup faire une boucle ou récupérer l'index du matériel, ...).


Cordialement,
Detobel36

Merci, mais non, je doit aussi vérifier si il y a le même nombre d'item, obligatoirement, c'est pour un système de shop !
 

TBMaster59

Développeur Java & WEB
4 Août 2016
43
5
23
20
Oui pardon ^^

Si par exemple j'ai ItemStack it3 = new ItemStack(1, 32);

Enfaite, le contains(), ne me détecte pas si j'ai par exemple 45 item au lieu de 32.
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Mais pour une boutique tu va vouloir vérifier s'il a au moins cette quantité non ? Car tu va pas faire un test avec 32, 33, 34, ... ;)
Code:
player.getInventory().containsAtLeast(it3, 32);
Et si tu veux vraiment que ça soit 32:
Code:
player.getInventory().contains(it3, 32);


Cordialement,
Detobel36
 

TBMaster59

Développeur Java & WEB
4 Août 2016
43
5
23
20
Salut,

Mais pour une boutique tu va vouloir vérifier s'il a au moins cette quantité non ? Car tu va pas faire un test avec 32, 33, 34, ... ;)
Code:
player.getInventory().containsAtLeast(it3, 32);
Et si tu veux vraiment que ça soit 32:
Code:
player.getInventory().contains(it3, 32);


Cordialement,
Detobel36
Merciiiiii tu est mon sauveur !! :)

Et juste une dernière petite question, tu serais pas par hasard comment voir si l'inventaire du joueur est plein? ;)
 

crokis

Développeur PHP/Java/SQL
16 Juillet 2015
51
25
28
Auvergne-Rhône-Alpes, France
Bonjour :)
Pour vérifier si l'inventaire du joueur est plein, tu peux utiliser la fonction :
Code:
player.getInventory().getFirstEmpty()
En effet, celle-ci retourne le numéro du premier slot vide de l'inventaire. Si aucun n'est vide, elle retourne -1.
Ainsi, tu peux tester si un inventaire est plein avec :
Code:
if(player.getInventory().getFirstEmpty() == -1) {
  ...
}
 
  • J'aime
Reactions: Romain2523

TBMaster59

Développeur Java & WEB
4 Août 2016
43
5
23
20
Bonjour :)
Pour vérifier si l'inventaire du joueur est plein, tu peux utiliser la fonction :
Code:
player.getInventory().getFirstEmpty()
En effet, celle-ci retourne le numéro du premier slot vide de l'inventaire. Si aucun n'est vide, elle retourne -1.
Ainsi, tu peux tester si un inventaire est plein avec :
Code:
if(player.getInventory().getFirstEmpty() == -1) {
  ...
}
Merci !