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

TBMaster59

Développeur Java & WEB
4 Août 2016
43
5
23
21
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?
 
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
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 !
 
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.
 
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
 
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? ;)
 
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
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 !