> For the complete documentation index, see [llms.txt](https://horizons-cite-plugin.gitbook.io/horizons-cite-plugin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://horizons-cite-plugin.gitbook.io/horizons-cite-plugin/commandes/customitems.md).

# CustomItems

## 📝 Introduction

La commande `customitems` permet de tester et gérer les items custom provenant de plugins externes (comme ItemsAdder). Elle offre des fonctionnalités de debug pour vérifier si les items custom sont correctement configurés, identifier des items, et obtenir des items custom en jeu.

## 🔑 Permission

* `horizons.command.customitems`

## 📋 Syntaxe générale

Format: `/customitems <providers|test|give|identify>`

Alias: `/ci`, `/citems`, `/citem`

## 🎯 Actions disponibles

### 📦 providers

Syntaxe: `/customitems providers`

Description: Liste tous les providers d'items custom enregistrés et chargés dans le système.

Exemples:

* `/customitems providers`
* `/ci providers`

Résultat:

```
[Custom Items] Providers enregistrés:
✓ itemsadder (plugin chargé)
```

Note: Cette commande est utile pour vérifier si un plugin d'items custom (comme ItemsAdder) est correctement détecté par Horizons.

### 🔍 test

Syntaxe: `/customitems test <provider:namespace:item_id>`

Description: Teste si un item custom existe et peut être chargé. Affiche des informations détaillées sur l'item (type, nom d'affichage, clé de config, etc.).

Paramètres:

* `<provider:namespace:item_id>` : L'identifiant complet de l'item custom (format obligatoire: provider:namespace:item\_id)

Exemples:

* `/customitems test itemsadder:iaalchemy:demoniac_pickaxe`
* `/ci test itemsadder:myitems:ruby_sword`

Résultat:

```
[Custom Items] Test de l'item: itemsadder:iaalchemy:demoniac_pickaxe
✓ Item trouvé!
Type: Custom
Nom d'affichage: Demoniac Pickaxe
Clé de config: itemsadder:iaalchemy:demoniac_pickaxe
✓ ItemStack créé avec succès
Material: DIAMOND_PICKAXE
Display name (ItemMeta): §6Demoniac Pickaxe
```

En cas d'erreur:

```
[Custom Items] Test de l'item: itemsadder:invalid:item
✗ Item invalide ou introuvable
Erreur: Item custom 'itemsadder:invalid:item' introuvable dans le provider
```

Note: Cette commande est très utile pour déboguer les problèmes de configuration d'items custom dans les shops ou blackmarkets.

### 🎁 give

Syntaxe: `/customitems give <provider:namespace:item_id> [amount]`

Description: Donne un item custom à l'exécuteur de la commande.

Paramètres:

* `<provider:namespace:item_id>` : L'identifiant complet de l'item custom (format obligatoire: provider:namespace:item\_id)
* `[amount]` : La quantité d'items à donner (optionnel, par défaut: 1)

Exemples:

* `/customitems give itemsadder:iaalchemy:demoniac_pickaxe`
* `/customitems give itemsadder:myitems:ruby_sword 5`
* `/ci give itemsadder:weapons:magic_staff 64`

Résultat:

```
✓ Vous avez reçu 5x Ruby Sword
```

En cas d'erreur:

```
✗ Item invalide: itemsadder:invalid:item
```

Notes:

* Cette commande fonctionne uniquement pour les joueurs (pas depuis la console)
* L'item sera ajouté à l'inventaire du joueur
* Si l'inventaire est plein, l'item sera ajouté au sol

### 🔎 identify

Syntaxe: `/customitems identify`

Description: Identifie l'item que le joueur tient en main. Détecte si c'est un item vanilla ou un item custom, et affiche toutes les informations pertinentes.

Exemples:

* `/customitems identify`
* `/ci identify`

Résultat pour un item custom:

```
[Custom Items] Analyse de l'item en main:
Material: DIAMOND_PICKAXE
Display name: §6Demoniac Pickaxe
✓ Item custom détecté!
Provider: itemsadder
ID custom: iaalchemy:demoniac_pickaxe
ID complet: itemsadder:iaalchemy:demoniac_pickaxe
```

Résultat pour un item vanilla:

```
[Custom Items] Analyse de l'item en main:
Material: DIAMOND_SWORD
Type: Vanilla
Utilisez dans la config: DIAMOND_SWORD
```

En cas d'erreur:

```
Vous ne tenez aucun item.
```

Notes:

* Cette commande fonctionne uniquement pour les joueurs (pas depuis la console)
* L'item doit être dans la main principale du joueur
* Très utile pour trouver l'ID exact d'un item custom à utiliser dans les configurations de shops

## 💡 Cas d'utilisation

### Vérifier qu'un item custom est disponible

Avant d'ajouter un item custom dans un shop, vous pouvez tester s'il existe :

```
/customitems test itemsadder:myitems:ruby_sword
```

### Obtenir l'ID exact d'un item custom

Si vous avez un item custom en jeu mais ne connaissez pas son ID exact :

{% stepper %}
{% step %}

### Tenez l'item en main

Assurez-vous de tenir l'item custom dans la main principale.
{% endstep %}

{% step %}

### Exécutez la commande

```
/customitems identify
```

{% endstep %}

{% step %}

### Utilisez l'ID complet

Utilisez l'ID complet affiché (ex: `itemsadder:iaalchemy:demoniac_pickaxe`) dans votre configuration de shop.
{% endstep %}
{% endstepper %}

### Tester un item avant de le configurer

Avant de configurer un item dans un shop ou blackmarket, testez-le pour vous assurer qu'il fonctionne :

```
/customitems test itemsadder:namespace:item_name
/customitems give itemsadder:namespace:item_name 1
```

### Vérifier que ItemsAdder est chargé

Pour vérifier que le plugin ItemsAdder est bien détecté :

```
/customitems providers
```

## ⚠️Restrictions

* La commande `give` et `identify` ne fonctionnent que pour les joueurs (pas depuis la console)
* Le format de l'item doit être `provider:namespace:item_id` (exactement 3 parties)
* L'item custom doit exister dans le provider (ex: ItemsAdder doit avoir l'item chargé)
* La permission `horizons.command.customitems` est requise pour toutes les sous-commandes

## 🔄Auto-Complétion

La commande supporte l'auto-complétion avec la touche `TAB` :

* Premier argument : `providers`, `test`, `give`, `identify`
* Deuxième argument (pour `test` et `give`) : Suggestions basées sur les providers disponibles
* Troisième argument (pour `give`) : Quantités courantes (1, 8, 16, 32, 64)

## 📌Notes importantes

* Cette commande est principalement destinée aux administrateurs pour déboguer et tester les items custom
* Les IDs affichés par `identify` peuvent être utilisés directement dans les fichiers de configuration des shops
* La commande `test` est très utile pour vérifier la validité d'un item avant de l'ajouter à un shop
* Les providers listés par `providers` correspondent aux plugins d'items custom installés et chargés


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://horizons-cite-plugin.gitbook.io/horizons-cite-plugin/commandes/customitems.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
