--- title: Inventaire type: docs weight: 7 --- Le système d'inventaire dans Hytale gère les objets, conteneurs et inventaires des joueurs. {{< cards >}} {{< card link="itemstacks" title="ItemStacks" subtitle="Travailler avec les piles d'objets immuables" >}} {{< card link="containers" title="Conteneurs" subtitle="Types d'inventaires et conteneurs" >}} {{< card link="transactions" title="Transactions" subtitle="Modifications sûres des objets" >}} {{< /cards >}} ## Aperçu Le système d'inventaire suit un pattern immuable : - **ItemStack** - Représentation immuable des objets - **Inventory** - Inventaire personnel du joueur - **ItemContainer** - Conteneur générique pour les objets - **Transactions** - Moyen sûr de modifier les objets ## Démarrage Rapide ```java import com.hypixel.hytale.server.core.inventory.Inventory; import com.hypixel.hytale.server.core.inventory.ItemStack; import java.util.logging.Level; // Obtenir l'inventaire du joueur Player player = ...; Inventory inv = player.getInventory(); // Obtenir l'objet en main (via Inventory, pas directement sur Player) ItemStack hand = inv.getItemInHand(); // Vérifier si l'objet existe if (hand != null && !hand.isEmpty()) { // Utiliser getItemId() - Item.getName() n'existe pas getLogger().at(Level.INFO).log("Tient : " + hand.getItemId()); } ``` ## Concepts Clés {{< callout type="info" >}} ItemStack est **immuable**. Les méthodes comme `withQuantity()` retournent un nouveau ItemStack plutôt que de modifier l'original. {{< /callout >}} ```java // Pattern immuable ItemStack original = new ItemStack("iron_sword", 1); ItemStack modified = original.withQuantity(5); // Nouvelle instance // original a toujours une quantité de 1 // modified a une quantité de 5 ```