# Shops

{% hint style="warning" %}
*Les shops sont actuellement en version Alpha. Le plugin est stable stable, mais des bugs peuvent survenir. Il continuera d’évoluer dans les semaines à venir, ajoutant de nouvelles fonctionnalités et améliorations.*
{% endhint %}

## Présentation

Le système de shop permet aux joueurs de créer leurs propres stands pour vendre ou acheter des items directement dans le jeu.

* **Définition du shop** : Le shop d’un joueur est une sorte de vitrine permettant de mettre en l'ensemble de ses stands.
* **Définition du stand** : Chaque stand est un point de transaction (achat ou vente) autonome.

Le premier stand peut être créé à partir du **grade Apprenti.** La liste des shops est accessible soit à l’Hôtel des ventes (HDV) situé au spawn, soit via la commande `/shop`.

## Commandes

Les trois commandes suivantes ont exactement les mêmes fonctionnalités :

* `/shop`
* `/shops`
* `/hdv`

Vous accèderez alors au menu suivant vous permettant respectivement de vous téléporter à l'Hôtel des ventes ou d'éditer votre shop.

<figure><img src="/files/ffSX4KeNZLWu18rKxjMp" alt=""><figcaption></figcaption></figure>

Ces commandes donnent également accès à d'autres sous-commandes :

* `/shop list` -> Vous téléporte à l'Hôtel des ventes
* `/shops manage` -> Ouvre directement l'interface d'édition de votre shop

{% hint style="warning" %}
*Ces sous-commandes sont amenées à disparaitre prochainement pour laisser place uniquement aux commandes principales et à une interface comme pour les claims.*
{% endhint %}

## Création d'un Shop

Votre shop sera automatiquement créé lors de la création de votre premier stand. Pour créer votre premier stand vous devez remplir les conditions suivantes :

* Être minimum membre du claim ou de la sous-zone dans laquelle vous allez placer votre stand
* Avoir minimum le grade Apprenti
* Ne pas avoir atteint la quantité maximale de stands que vous pouvez créer

Ci dessous la procédure détaillée de création d'un Stand :

1. **Placer le conteneur** : Placez un coffre ou un tonneau dans le claim ou la sous-zone où le stand sera situé.
2. **Activer le stand** : Faites un **Shift + Clic gauche** sur le coffre ou le tonneau pour activer le stand.
3. **Définir le prix** : Le prix de l’item est automatiquement défini selon la table des prix (accessible depuis la commande `/price`)
4. **Changer le type de stand** :
   * Faites un **Shift + Clic droit** sans rien dans les mains pour alterner entre les modes Achat et Vente.
   * Pour identifier le type de transaction, mettez-vous à la place du stand et demandez-vous : « Que suis-je en train de faire ? ». Si le stand "vend", il s’agit de déplacer les items du coffre vers le joueur, et inversement pour "acheter".

{% embed url="<https://youtu.be/lUyiS7aiG-E>" %}

## Gestion d'un Shop

Une fois votre premier stand créé, vous pouvez gérer différents aspects de votre shop directement depuis une interface.

<figure><img src="/files/sVBETL7t85c0lP9PiOQY" alt=""><figcaption></figcaption></figure>

1. **Prévisualisation du shop :** permet de visualiser le rendu de son shop tel qu'il apparaîtra dans la liste des shops.
2. **Nom du shop** : modifiable avec le format "mini message", permettant l’utilisation de balises pour styliser le texte (une documentation plus détaillée arrivera).
3. **Description du shop** : peut être modifiée, mais accepte uniquement du texte brut, sans options de style.
4. **Icône du shop** : vous pouvez changer l’icône de représentation visuelle du shop.

<table data-header-hidden><thead><tr><th width="412"></th><th width="420"></th></tr></thead><tbody><tr><td><br><img src="/files/bTEmVW76N6TBnIbUYpJx" alt="" data-size="original"></td><td><ol><li><strong>Supprimer l'icone de son shop</strong> (un papier sera mis par défaut)<br></li><li><strong>Retour au menu principal</strong></li></ol></td></tr></tbody></table>

5. **Position principale du shop** : la position initiale du joueur lors de la création du premier stand est définie comme position principale du shop.
6. **Référencement du shop** : activez ou désactivez la visibilité de votre shop dans l’HDV. En cas de désactivation, le shop reste actif mais ne sera plus listé.

{% hint style="info" %}
Pour supprimer un stand: il suffit de casser le coffre ou le tonneau. Un message de confirmation sera envoyé dans le chat.
{% endhint %}

## Hôtel Des Ventes

Situé au spawn et accessible depuis le menu en exécutant la commande `/shop`, l'Hôtel Des Ventes regroupe l'ensemble des shops existants sur le serveur.

<figure><img src="/files/d6XLGbhsK4stULz69AJZ" alt=""><figcaption></figcaption></figure>

En interagissant avec les NPC, vous accèderez à cette interface.

<figure><img src="/files/oafPI1H8Mc71abek1NKx" alt=""><figcaption></figcaption></figure>

* Sur les 4 premières lignes, sont affichés les shops existants sur le serveur et dont le référencement a été activé
* La dernière ligne permet de naviguer dans la liste
  * L'icone en troisième position permet de se téléporter à un shop aléatoire
  * L'icone en 7ème position permet d'appliquer un filtre à cette liste
    * La valeur donnée dans le tchat va restreinte la liste aux shops dont cette valeur est contenue dans un des éléments suivants :
      * Le nom du propriétaire du shop
      * Le nom du shop
      * La description du shop
      * Le nom de l'item vendu
    * Dans l'exemple ci dessous le filtre appliqué est `pork` et un seul shop vend un item qui contient dans son nom `pork`.

      <div align="left"><figure><img src="/files/LEVtMpkBSeDcUYwK6paa" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
Le filtre est amené à évoluer pour être plus intuitif
{% endhint %}

## Limites des shops

Les shops sont limités en fonction du grade du joueur. Voici les restrictions selon chaque grade.

{% hint style="danger" %}
Ces valeurs sont mises par défaut et peuvent évoluer
{% endhint %}

| Grade    | Nombre de shops | Nombre de claim |
| -------- | --------------- | --------------- |
| Divin    | 300             | 3               |
| Héros    | 200             | 2               |
| Maître   | 150             | 2               |
| Expert   | 100             | 1               |
| Erudit   | 50              | 1               |
| Aspirant | 25              | 1               |
| Apprenti | 10              | 1               |
| Novice   | 0               | 0               |

{% hint style="info" %}
Les shops ne sont pas cumulables par claim ; la limite est globale par joueur. Par exemple, un joueur de grade Maître peut répartir ses 150 stands entre deux claims (par exemple, 100 dans un claim et 50 dans un autre).
{% endhint %}

## Gestion en fonction des claims

Cette partie est plutôt technique et vise à expliquer le comportement des shops en fonctions des actions réalisés lors de l'édition d'un claim ou d'une sous-zone.

* **Suppression d’un claim** : La suppression d’un claim entraîne la suppression de tous les stands et points de téléportation présents dans le claim, y compris ceux des sous-zones.
* **Suppression d’une sous-zone** : Tous les stands et points de téléportation de cette sous-zone sont supprimés, même ceux appartenant aux membres du claim parent.
* **Redimensionnement de claims ou sous-zones** : Les stands et points de téléportation des membres n’étant plus intégrés dans la nouvelle zone sont supprimés.
* **Exclusion d’un membre** : Les stands et points de téléportation d’un membre exclu de la zone seront retirés de cette zone.
* **Transfert de propriété** : Si le propriétaire d’un claim est modifié, tous les stands et points de téléportation de l’ancien propriétaire dans cette zone seront supprimés.

{% hint style="info" %}
*Seuls les stands de la zone impactée par ces modifications sont concernés.*
{% endhint %}

## Aspects de sécurité

Le système de shop comprend des mesures pour garantir une expérience sécurisée :

* **Transactions sécurisées** : Si un joueur est en cours de transaction avec un stand et que le propriétaire modifie le type de stand, la transaction est annulée.

<figure><img src="/files/yPNqXuwT7ArJmFJx3qnx" alt=""><figcaption></figcaption></figure>

* **Limitation des actions** : Les actions sur les stands sont limitées à une par seconde pour éviter les abus.

<figure><img src="/files/Q1YN5Haq5Xei3x7JmQJf" alt=""><figcaption></figcaption></figure>

* **Gestion des erreurs** : En cas d’erreur, un message avec des informations spécifiques est envoyé au joueur, qu’il peut transmettre au staff via un ticket Discord.


---

# Agent Instructions: 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:

```
GET https://wiki.zencraft.net/gameplay/shops.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
