Le système des trois vies
Départ à 3 vies, −1 à chaque mort, ban PROFILE+IP à 0, item Vie, grades mensuels, déco combat 20 s.
Départ & mort
- Chaque mort (PvP ou PvE) : −1 vie (LifeManager#handleDeath).
- Permission cantale.admin : mort sans perte de vie (message « vies illimitées ») — sauf déco combat (voir ci-dessous).
- Après respawn : invulnérabilité 10 s (noDamageTicks) + Saturation amp 0 pendant lives.respawn-saturation-seconds (défaut 150). Durée rafraîchie à chaque respawn.
- Kill PvP : +5 pouvoir à la fac du tueur, −5 à celle de la victime (si fac).
- Items Vie custom dans l'inventaire à la mort : détruits (ne droppent pas).
- Dernière vie hors combat : ban immédiat, pas de drop d'inventaire (le kick coupe le spawn vanilla).
- Dernière vie en tag combat : inventaire (stockage + armure + offhand) droppé au sol avant le ban.
- Totem vanilla : bloqué. L'item Vie custom n'est pas un totem de résurrection.
config.yml → lives
| Paramètre | Valeur |
|---|---|
| default-lives | 3 (nouveau joueur via createOrUpdatePlayer) |
| min-lives | 0 |
| ban-on-zero | true |
| buy-price | 10 000 Cantox — lu par ConfigManager, aucun achat in-game branché |
| respawn-saturation-seconds | 150 (~2,5 min) — effet Saturation amp 0 au respawn |
À 0 vie — ban
Quand il reste ≤ 1 vie et que tu meurs (ou déco combat) : vies mises à 0, puis ban.
- Ban PROFILE (UUID) en priorité — résiste au changement de pseudo ; fallback BanList NAME si l'API profil échoue.
- Ban IP (adresse du joueur) + enregistrement last_ip en BDD.
- Kick avec le message config : « Vous n'avez plus de vies ! Achetez-en une ou attendez qu'un ami vous en donne une. »
- Hors tag combat : inventaire non droppé (kick avant spawn vanilla) — voulu.
- En tag combat : stockage + armure + offhand droppés au lieu de mort avant le ban (pas de double drop).
- Gate AsyncPlayerPreLoginEvent : si lives ≤ 0 et ban-on-zero, connexion refusée (même message) — empêche le bypass NAME via nouveau pseudo.
- Apparition sur La Liste (/listemorts) : joueurs avec lives ≤ 0 et last_death > 0.
- Restauration : /addlife (ou /givevie console/admin) lève NAME + PROFILE + IP via pardonLifeBan (IP online ou last_ip).
Tag combat & déco
- Broadcast serveur à la déco combat (pseudo + perte d'1 vie).
- Créatif / spectateur : pas de tag combat.
- Impossible d'initier du PvP en PASDIC. Dans un claim : un étranger ne peut jamais frapper un membre chez lui (tag combat ou non) ; le membre peut frapper l'étranger. Le tag ne s'applique que si le coup n'est pas annulé.
- Pendant le tag : tu ne peux pas entrer en zone no-PvP (PASDIC spawn/warp, ou claim de ta propre faction). Sortie libre.
- Cas limite : si tu es déjà dans une zone no-PvP pendant un tag (pearl admin, claim devenu PASDIC, etc.) — le tag continue ; les coups restent bloqués ; la sortie est libre ; la ré-entrée est refusée tant que le tag est actif.
| Règle | Valeur |
|---|---|
| Durée du tag | 20 s (config combat-tag-seconds, rafraîchi à chaque coup joueur↔joueur) |
| Déco pendant le tag | −1 vie toujours (y compris cantale.admin / OP) |
| À 0 après déco | Même ban PROFILE + IP |
| Téléport commandes | Bloquées pendant le tag |
| Exceptions TP | Ender pearl, portail Nether, portail End autorisés — sauf destination no-PvP |
| Entrée zone no-PvP | Bloquée pendant le tag (PASDIC / claim de ta fac) |
Obtenir des vies
- Récompense mensuelle : items Vie dans l'inventaire (drop au sol si plein), pas un +vie DB direct — il faut clic-droit.
- Bossbar : affiche « Vies restantes : X/10 ». Seul addLives() plafonne à 10 ; item Vie, /givevie et /addlife passent par addLife (pas de plafond).
- Pas d'achat de vies en Cantox in-game malgré lives.buy-price dans la config.
- Permission in-game /givevie : cantale.givevie (plugin.yml default: op ; aussi listée pour Modo/Owner dans PermissionManager).
Sources codées
| Source | Effet |
|---|---|
| Item Vie (CustomItemType.VIE) | Clic-droit main → +1 vie DB, item consommé (addLife, sans plafond) |
| /dropvie | −1 vie DB → reçoit 1 item Vie (min. 2 vies requises) |
| /givevie <joueur> (joueur) | Transfert 1 vie (émetteur ≥ 2 vies). Cible online. |
| Discord /givevie | Compte lié : 1 à 5 vies, débit émetteur, crédit cible |
| Grades mensuels | Items Vie à la connexion (1×/mois calendaire) — voir tableau grades |
| Caisses | Loot tables Vote / Rare / Épique / Mythique peuvent donner 1–2 items Vie |
| Boutique site | Packs catalogue : 1 / 5 / 10 / 30 / 50 / 100 (EUR). Checkout si SHOP_ENABLED |
| /parrain <joueur> | Invité remercie son parrain (1×) → parrain +1 vie (DB) |
| /addlife (admin/console) | +N vies ; pardonne le ban vies si besoin |
Items Vie mensuels (PlayerRank)
| Grade | Items / mois |
|---|---|
| Joueur (NONE) | 0 |
| Aventurier | 1 |
| VIP | 2 |
| Chèvre (Héros) | 3 |
| Modo / Admin / Owner | 0 (pas de vies mensuelles staff) |
Commandes
/dropvieTransforme 1 vie en item Vie (minimum 2 vies).
/givevie <joueur>Joueur→joueur : transfert 1 vie (min. 2). Console / admin sans assez de vies : grant +1 sans coût + pardon ban.
Permission : cantale.givevie · cible online
/parrain <joueur>Remercie ton parrain (une seule fois). Il gagne +1 vie ; pardon ban vies si il était à 0.
Permission cantale.parrain (défaut true) · cible online/offline BDD
/addlife <joueur> <nombre>Ajoute N vies (online ou offline). Pardonne ban vies.
Admin / console / OP
/removelife <joueur> <nombre>Retire N vies (cible online).
Admin / console / OP
/lastdeath [joueur]Horodatage, total de morts et localisation (monde + X/Y/Z) de la dernière mort (BDD last_death + last_death_*).
Cible online ou offline si connue en BDD
/listemortsLa Liste : joueurs à 0 vie avec last_death > 0.
Alias : /list, /morts, /bans
Suivi
- Bossbar perso rotative : slide Vies (et Wanted si prime active) — toggle dans /profile.
- /profile : vies restantes.
- Menu Système de Vies (UI) : raccourcis /dropvie, /givevie, rappel usage item.
- PvP dans les claims : article Claims & territoire (safe chez soi, PASDIC no-PvP, wilderness libre).