Skip to content

Creer un perk

Antidino35 edited this page Oct 28, 2026 · 1 revision

🛠️ Créer un perk

Perk simple (config uniquement)

  1. Crée src/main/resources/perks/mon_perk.yml (item, craft, level, values, description).
  2. Ajoute le fichier dans ConfigPerkManager.FILES.
  3. Ajoute un identifiant dans PerkTypeId :
    public static final String MON_PERK = "mon_perk_perk";
  4. Enregistre-le dans PerkManager.registerDefaults() :
    // Perk à attributs (bonus/malus dans le YAML)
    registerPerk(new AttributePerk(PerkTypeId.MON_PERK, plugin, configPerkManager.get("mon_perk.yml")));
    // ou perk passif dont l'effet est codé dans PerkTasks / PerkEffectListener
    registerPerk(new PassivePerk(PerkTypeId.MON_PERK, plugin, configPerkManager.get("mon_perk.yml")));
  5. Ajoute-le dans une rareté de rarity.yml.

Perk avec logique custom

  1. Crée une classe dans modules/perk/type/ qui étend AbstractPerk (onApply / onRemove).
  2. Effet événementiel : écris-le dans PerkEffectListener et teste le perk avec perkManager.getPerkLevel(...) / hasPerk(...).
  3. Effet continu : ajoute-le dans PerkTasks.run() (toutes les 4 ticks) sans oublier cleanup().
  4. Lis les valeurs avec perk.getValue("nom", niveau, valeurParDefaut).

Bonnes pratiques

  • Textes en MiniMessage.
  • Accès base de données hors du thread principal (runTaskAsynchronously).
  • Teste toujours avec /perk reload après un changement de YAML ou de recette.

⚔️ SMPplugin

🚀 Démarrer

📖 Référence

🛠️ Développeur

❓ Aide

Clone this wiki locally