---
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
```
