Horizons
⚙️ Configuration

🪧 Système de Logements

📂 Structure des Fichiers

Les logements sont gérés via plusieurs fichiers de configuration situés dans le dossier plugins/Horizons/:

  • houses.yml - Stocke les informations sur les maisons
  • config.yml - Contient les paramètres généraux du système, notamment les formats des panneaux

🏗️ Types de Logements

Types Disponibles

Le plugin supporte deux types de logements :

TypeDescriptionMonnaie Utilisée
PLAYERMaisons appartenant à des joueurs individuelsPoints personnels
TEAMMaisons appartenant à des équipes entièresPoints d'équipe

🛠️ Commandes

Le système de logements est géré par la commande principale /house ou son alias /housing.

Commandes Disponibles

CommandeDescriptionPermission
/house create <nom> <team|player>Crée une nouvelle maisonhorizons.house.create
/house forsale <nom> <prix>Met une maison en ventehorizons.house.forsale
/house addmember <nom> <joueur>Ajoute un membre à une maisonPropriétaire
/house removemember <nom> <joueur>Retire un membre d'une maisonPropriétaire
/house list [page]Liste toutes les maisonshorizons.house.list
/house delete <nom>Supprime une maisonhorizons.house.delete
/house setsign <nom>Définit un panneau pour une maisonhorizons.house.setsign
/house restrictteam <nom> [équipe|none]Restreint l'achat d'une maison à une équipehorizons.house.restrictteam
/house setmaxmembers <nom> <nombre>Définit le nombre maximum de membreshorizons.house.setmaxmembers

🔑 Créer une Maison

Pour créer une maison, vous devez d'abord sélectionner une zone avec WorldEdit, puis utiliser la commande /house create.

Étapes pour créer une maison :

  1. Obtenez l'outil de sélection WorldEdit avec //wand
  2. Sélectionnez deux points opposés pour définir la zone
  3. Exécutez /house create <nom> <team|player>

💰 Vente et Achat de Maisons

Mettre une maison en vente

Utilisez la commande /house forsale <nom> <prix> pour mettre une maison en vente à un prix spécifique.

Acheter une maison

Les joueurs peuvent acheter une maison en cliquant sur un panneau de vente. Notez que:

  • Pour les maisons de type PLAYER, le coût est prélevé uniquement des points personnels du joueur
  • Pour les maisons de type TEAM, le coût est prélevé des points de l'équipe du joueur

Restrictions d'achat par équipe

Vous pouvez restreindre l'achat d'une maison à une équipe spécifique :

  • Pour restreindre : /house restrictteam <nom> <équipe>
  • Pour supprimer la restriction : /house restrictteam <nom> none
  • Pour vérifier la restriction actuelle : /house restrictteam <nom>

🚪 Gestion des Membres

Maisons de joueurs

Les propriétaires peuvent ajouter/retirer des membres :

  • /house addmember <nom> <joueur> - Ajoute un membre à la maison
  • /house removemember <nom> <joueur> - Retire un membre de la maison

Limite de membres

Chaque maison de type PLAYER possède une limite configurable de membres:

  • La limite par défaut est de 3 membres
  • Utilisez /house setmaxmembers <nom> <nombre> pour modifier cette limite
  • Le propriétaire n'est pas compté dans cette limite car il a accès automatiquement

Maisons d'équipe

Pour les maisons d'équipe, tous les membres de l'équipe ont automatiquement accès à la maison.

🪧 Panneaux de Maisons

Les maisons demandent d'avoir des panneaux informatifs qui permettent de les acheter.

Configuration des Panneaux

Utilisez la commande /house setsign <nom> en visant un panneau pour l'associer à une maison.

Format des Panneaux

Les formats d'affichage des panneaux sont configurables dans config.yml :

Maisons à vendre

houses:
  signs:
    for-sale:
      line1: "&9『 {type} 』"
      line2: "&f⌂ &e{name}"
      line3: "&a&l✦ À VENDRE ✦"
      line4: "&e{price}"

Maisons occupées

houses:
  signs:
    occupied:
      line1: "&9『 {type} 』"
      line2: "&f⌂ &e{name}"
      line3: "&c&l❖ OCCUPÉE ❖"
      line4: "&7Propriétaire: &f{owner}"

Placeholders disponibles

PlaceholderDescription
{type}Type de maison (Équipe/Joueur)
{name}Nom de la maison
{price}Prix avec la devise
{owner}Nom du propriétaire
{team}Nom de l'équipe (pour les maisons d'équipe)
{team_restriction}Équipe ayant le droit d'acheter la maison
{max_members}Nombre maximum de membres autorisés
{current_members}Nombre actuel de membres
{members_count}Affichage "actuel/maximum" des membres

🔄 Cycle de Vie d'une Maison

  1. Création : Un administrateur crée la maison avec WorldEdit et /house create
  2. Mise en vente : La maison est mise en vente avec /house forsale
  3. Achat : Un joueur achète la maison, devenant propriétaire
  4. Utilisation : Le propriétaire peut ajouter des membres (jusqu'à la limite configurée)

🏠 Configuration des Maisons

Chaque maison dans houses.yml possède plusieurs propriétés configurables :

houses:
  MaMaison:
    world: world
    owner: df7d5ec6-eb81-4588-92e4-63b607481348
    forSale: false
    price: 1500
    type: PLAYER
    max-members: 3  # Limite de membres configurable
    signs:
      '0':
        world: world
        position: -22.0,-42.0,-62.0

♻️ Rechargement du Système

Le système de maisons peut être rechargé via la commande /horizons reload housing. Cette commande:

  • Recharge la configuration
  • Met à jour toutes les maisons
  • Actualise les panneaux

📋 Exemple Complet

Création et configuration d'une maison

# Sélectionner une zone avec WorldEdit
//wand
(sélectionner deux points)

# Créer une maison d'équipe
/house create VillaDeluxe team

# Mettre la maison en vente
/house forsale VillaDeluxe 10000

# Configurer un panneau
/house setsign VillaDeluxe 
(viser un panneau)

# Restreindre l'achat à une équipe
/house restrictteam VillaDeluxe Aventuriers

Gestion des membres d'une maison personnelle

# Définir la limite de membres pour une maison
/house setmaxmembers MaMaison 5

# Ajouter des membres à la maison
/house addmember MaMaison Joueur1
/house addmember MaMaison Joueur2

# Retirer un membre de la maison
/house removemember MaMaison Joueur1

🛡️ Permissions

PermissionDescription
horizons.house.createPermet de créer des maisons
horizons.house.forsalePermet de mettre des maisons en vente
horizons.house.adminAccès complet à toutes les fonctionnalités
horizons.house.deletePermet de supprimer des maisons
horizons.house.setsignPermet de configurer des panneaux
horizons.house.restrictteamPermet de restreindre l'achat à une équipe
horizons.house.setmaxmembersPermet de modifier la limite de membres
horizons.house.helpPermet d'afficher toutes les commandes d'aide

🧠 Concepts Avancés

Interaction avec WorldGuard

Le système de logements utilise WorldGuard pour gérer les régions protégées. Chaque maison est associée à une région WorldGuard portant le préfixe "house_" suivi du nom de la maison.

Intégration avec le Système d'Équipes

  • Les maisons d'équipe utilisent le système d'équipes du plugin
  • Le coût des maisons d'équipe est prélevé des points d'équipe
  • Tous les membres de l'équipe ont accès aux maisons d'équipe

Logique de Paiement

  • Maisons personnelles (PLAYER) : Le coût est prélevé uniquement des points personnels du joueur
  • Maisons d'équipe (TEAM) : Le coût est prélevé des points de l'équipe du joueur

Gestion des Membres

  • Le propriétaire a toujours accès à sa maison et n'est pas compté dans la limite de membres
  • Il est impossible d'ajouter le propriétaire comme membre car il a déjà accès
  • Chaque maison a une limite configurable de membres (la valeur par défaut est 3)

Mise à jour des Panneaux

Les panneaux de maisons sont automatiquement mis à jour :

  • Lors du chargement du plugin
  • Lors de la mise en vente d'une maison
  • Lors de l'achat d'une maison
  • Lors de la modification des restrictions d'équipe

Protection des Panneaux

Les panneaux associés aux maisons sont protégés contre la destruction par les joueurs non-administrateurs.

On this page