Nombre d'items dans l'inventaire
-
Essaie avec çà :
int size = 0; // On initialise la variable InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; // On récupère l'inventaire du joueur for (int i = 0; i < inv.getSizeInventory; i++) { // Boucle for if (inv.getStackInslot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald) size += inv.getStackInSlot(i).stackSize; // Si l'ItemStack à l'index n'est pas nul et que c'est bien une émeraude, alors on l'ajoute } -
Merci, ça marche a peu prés sauf que le nombre n’arrête pas d’augmenter tant que j’ai une émeraude dans l’inventaire

[EDIT]:
C’est bon j’ai tous simplement réinitialiser la valeur à 0 à la fin de la fonction
-
Juste, si quelqu’un sais comment faire pour utiliser
InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory;avec l’ender Chest ?
[EDIT]:
J’ai trouver:InventoryEnderChest invEnderChest = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest(); -
Je voudrais faire la même chose mais avec l’ender chest cependant quand je met:
public int invEmeraldNumber; public int bankEmeraldNumber; @SubscribeEvent public void renderEmeraldsNumber(RenderGameOverlayEvent event) { InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; InventoryEnderChest bank = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest(); for (int i = 0; i < inv.getSizeInventory(); i++) { if (inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald) bankEmeraldNumber += (inv.getStackInSlot(i).stackSize); } for (int i = 0; i < bank.getSizeInventory(); i++) { if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald) bankEmeraldNumber += (bank.getStackInSlot(i).stackSize); } Minecraft.getMinecraft().fontRenderer.drawString("Emeralds: " + invEmeraldNumber + " (" + bankEmeraldNumber + ")", 2, 2, 0xFFFFFF); invEmeraldNumber = 0; bankEmeraldNumber = 0; } }Ca ne marche pas :/, j’ai beau avoir des emeraudes dans mon enderchest, le nombre entre parenthèse, reste à 0.
-
Je comprends pas trop ce que tu veux faire, tu veux faire la même chose mais avec l’enderchest ?
-
Oui exactement, j’ai mis mon code au dessus.
-
La fonction getInventoryEnderChest est publique, je vois pas où est le problème, mis à part qu’il faudrait utiliser un autre nom de variable dans la 2ème boucle.
-
Normalement non, la variable de la boucle est seulement utilisé dans la boucle, donc ça devrais aller.
J’ai aussi testez la fonction:
inv.setInventorySlotContents(); bank.setInventorySlotContents();et dans l’inventaire, elle marche mais pas dans l’ender chest
-
Il me semble qu’il faut mettre à jour l’inventaire après avoir modifié des slots, car le joueur est seulement côté client.
-
Sauf que je ne veut pas modifier les slots moi, je veut juste savoir les items dans les slots dans l’ender chest
-
alors pourquoi tu veux utiliser setInventorySlotContents ?
-
Non, c’était juste pour testez
-
@‘PlasMania’:
Je voudrais faire la même chose mais avec l’ender chest cependant quand je met:
public int invEmeraldNumber; public int bankEmeraldNumber; @SubscribeEvent public void renderEmeraldsNumber(RenderGameOverlayEvent event) { InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; InventoryEnderChest bank = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest(); for (int i = 0; i < inv.getSizeInventory(); i++) { if (inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald) bankEmeraldNumber += (inv.getStackInSlot(i).stackSize); } for (int i = 0; i < bank.getSizeInventory(); i++) { if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald) bankEmeraldNumber += (bank.getStackInSlot(i).stackSize); } Minecraft.getMinecraft().fontRenderer.drawString("Emeralds: " + invEmeraldNumber + " (" + bankEmeraldNumber + ")", 2, 2, 0xFFFFFF); invEmeraldNumber = 0; bankEmeraldNumber = 0; } }Ca ne marche pas :/, j’ai beau avoir des emeraudes dans mon enderchest, le nombre entre parenthèse, reste à 0.
Utilise des variables local au lieu de reset sur 0 …
@SubscribeEvent public void renderEmeraldsNumber(RenderGameOverlayEvent event) { int invEmeraldNumber = 0; int bankEmeraldNumber = 0; InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; InventoryEnderChest bank = Minecraft.getMinecraft().thePlayer.getInventoryEnderChest(); for (int i = 0; i < inv.getSizeInventory(); i++) { if (inv.getStackInSlot(i) != null && inv.getStackInSlot(i).getItem() == Items.emerald) bankEmeraldNumber += (inv.getStackInSlot(i).stackSize); } for (int i = 0; i < bank.getSizeInventory(); i++) { if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald) bankEmeraldNumber += (bank.getStackInSlot(i).stackSize); } Minecraft.getMinecraft().fontRenderer.drawString("Emeralds: " + invEmeraldNumber + " (" + bankEmeraldNumber + ")", 2, 2, 0xFFFFFF); } }à mon avis pour l’enderchest, ça ne fonctionne pas car temps que tu ne l’ouvre pas il est considéré comme vide côté client. Ouvre-le et regardes si la valeur change.
-
Okai, merci pour la correction, et l’ouvrir ne change rien

-
Envoi le code de ton block + GuiHandler.
-
Il y a au moins des émeraudes dans le coffre x) ?
@‘SCAREX’:
Envoi le code de ton block + GuiHandler.
fail ?
-
-
Robin -> euh oui, je me suis trompé de sujet : internet explorer sur windows phone fait un peu de la merde.
Rajoute des logs pour savoir si à chaque fois le slot est vide.
-
Voila, j’ai modifié de cette façon:
for (int i = 0; i < bank.getSizeInventory(); i++) { else if (bank.getStackInSlot(i) != null && bank.getStackInSlot(i).getItem() == Items.emerald) { bankEmeraldNumber += (bank.getStackInSlot(i).stackSize); System.out.println("Item: " + i); } else { System.out.println("No: " + i); } }
Et sur la console, je n’est que des no:
:::
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 0
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 1
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 2
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 3
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 4
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 5
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 6
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 7
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 8
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 9
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 10
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 11
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 12
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 13
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 14
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 15
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 16
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 17
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 18
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 19
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 20
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 21
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 22
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 23
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 24
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 25
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 26
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 0
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 1
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 2
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 3
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 4
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 5
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 6
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 7
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 8
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 9
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 10
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 11
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 12
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 13
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 14
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 15
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 16
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 17
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 18
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 19
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 20
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 21
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 22
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 23
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 24
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 25
[22:43:04] [Client thread/INFO] [STDOUT]: [com.plasmania.wynnplus.events.EventManager:renderEmeraldsNumber:60]: No: 26
::: -
Oui visiblement le contenu est toujours null.
Je ne sais pas d’où ça vient.
Il faudrait pouvoir lire la liste directement dans le tag du joueur, pas sûr que cela soit possible.