PortailRetour
Un utilitaire court : /retour ramène le joueur à son dernier point de mort, une fois par mort, avec délai configurable.
- Cible
- paper 26.2
- Fichiers
- 15
- Lignes
- 1 710
- Commandes
- 4
- Durée
- 5 min
- Coût
- devis : 187 crédits — 1,87 €
La demande, telle qu'elle a été écrite
Un petit plugin utilitaire : la commande /retour ramene le joueur a l endroit ou il est mort la derniere fois. Un seul retour possible par mort, avec un delai d attente configurable entre deux utilisations. Un message indique la distance parcourue.
Ce qui en a été compris
PortailRetour permet au joueur de regagner l'endroit exact de sa dernière mort avec la commande /retour. Chaque mort n'ouvre droit qu'à un seul retour : le point est consommé dès qu'il est utilisé, et un délai d'attente configurable s'applique entre deux utilisations. À l'arrivée, le joueur reçoit un message indiquant la distance parcourue depuis sa position de départ. L'administrateur règle le délai, les mondes interdits, l'atterrissage sécurisé et tous les textes dans config.yml, et dispose d'une commande d'administration pour recharger la configuration ou consulter le point de mort enregistré d'un joueur.
Commandes
/retour /retourTéléporte le joueur à l'endroit de sa dernière mort, consomme le point de mort et affiche la distance parcourue.
/portailretour /portailretourAffiche l'aide d'administration du plugin et la liste des sous-commandes disponibles.
/portailretour /portailretour reloadRecharge config.yml (délais, mondes interdits, messages) sans redémarrer le serveur ; les points de mort en mémoire ne sont pas touchés.
/portailretour /portailretour info [joueur]Affiche le point de mort enregistré (monde, coordonnées) et le délai d'attente restant pour le joueur visé, ou pour soi-même si l'argument est omis.
Événements écoutés
PlayerDeathEventEnregistre en mémoire le monde, les coordonnées et l'orientation du point de mort, marque un retour comme disponible en écrasant tout point précédent non utilisé, et envoie le message « point de mort enregistré » si l'annonce à la mort est activée.
PlayerRespawnEventEnvoie un rappel configurable indiquant que /retour est disponible ; message plus visible que celui de l'écran de mort. Aucun traitement si l'annonce à la réapparition est désactivée.
PlayerJoinEventDéclenche le chargement asynchrone de l'entrée du joueur depuis le fichier de persistance vers la table mémoire, de sorte que la commande /retour ne lise jamais le disque.
PlayerQuitEventMarque l'entrée comme à sauvegarder, écrit de façon asynchrone le point de mort et l'horodatage du délai d'attente, puis retire l'entrée de la table mémoire pour qu'aucune donnée indexée par joueur ne s'accumule.
Permissions
portailretour.retourAutorise l'utilisation de la commande /retour.
portailretour.bypass.cooldownDispense du délai d'attente entre deux utilisations de /retour.
portailretour.bypass.worldsDispense des restrictions de mondes interdits et de l'interdiction de retour entre mondes.
portailretour.adminAccès à la commande d'administration /portailretour et à l'ensemble de ses sous-commandes.
portailretour.admin.reloadAutorise le rechargement de la configuration via /portailretour reload.
portailretour.admin.infoAutorise la consultation du point de mort d'un joueur via /portailretour info.
Configuration
settings.cooldown-secondsDélai d'attente en secondes entre deux utilisations réussies de /retour. 0 désactive le délai.
settings.consume-on-useSi vrai, le point de mort est supprimé après un retour réussi : un seul retour par mort. Si faux, le point reste utilisable autant de fois que le délai d'attente le permet.
settings.allow-cross-worldAutorise le retour vers un point de mort situé dans un autre monde que celui où se trouve le joueur.
settings.blocked-worldsNoms des mondes depuis lesquels /retour est refusé et dans lesquels aucun point de mort n'est enregistré.
settings.safe-landingCherche un emplacement sûr si le point de mort est dans le vide, dans un liquide dangereux ou dans un bloc plein.
settings.safe-landing-max-scanNombre maximal de blocs balayés verticalement pour trouver un emplacement sûr. Au-delà, la téléportation est refusée avec le message d'échec.
settings.announce-on-deathEnvoie un message au joueur au moment où son point de mort est enregistré.
settings.announce-on-respawnEnvoie un rappel au joueur à sa réapparition pour lui signaler que /retour est disponible.
settings.distance-decimalsNombre de décimales affichées dans la distance parcourue.
storage.save-interval-secondsPériodicité en secondes de la tâche asynchrone de sauvegarde par lot des points de mort. 0 désactive la tâche ; la sauvegarde dans onDisable reste effectuée.
messages.prefixPréfixe ajouté devant chaque message du plugin. Format MiniMessage.
messages.no-permissionEnvoyé quand l'expéditeur n'a pas le nœud de permission requis.
messages.player-onlyEnvoyé quand la console tente une commande qui exige un joueur.
messages.no-death-pointEnvoyé quand /retour est utilisé sans point de mort disponible.
messages.cooldown-activeEnvoyé quand le délai d'attente n'est pas écoulé. %temps% est remplacé par la durée restante formatée (ex. 2 min 15 s).
messages.teleportingEnvoyé juste avant le lancement de la téléportation asynchrone.
messages.teleport-successEnvoyé après une téléportation réussie dans le même monde. %distance% est remplacé par la distance parcourue.
messages.teleport-success-cross-worldEnvoyé après une téléportation réussie vers un autre monde, où la distance n'a pas de sens. %monde% est remplacé par le nom du monde d'arrivée.
messages.teleport-failedEnvoyé quand la téléportation asynchrone échoue ou qu'aucun emplacement sûr n'a été trouvé.
messages.world-unloadedEnvoyé quand le monde du point de mort n'existe plus ou n'est pas chargé.
messages.world-blockedEnvoyé quand le joueur se trouve dans un monde listé dans settings.blocked-worlds.
messages.cross-world-deniedEnvoyé quand allow-cross-world est faux et que le point de mort est dans un autre monde.
messages.death-point-savedEnvoyé à la mort du joueur si announce-on-death est vrai.
messages.respawn-hintEnvoyé à la réapparition du joueur si announce-on-respawn est vrai.
messages.reload-successEnvoyé après un /portailretour reload réussi.
messages.reload-failedEnvoyé quand le rechargement de config.yml lève une erreur.
messages.admin-usageAide affichée pour /portailretour sans argument ou avec une sous-commande inconnue.
messages.info-foundRésultat de /portailretour info quand un point de mort existe. Remplacements : %joueur%, %monde%, %x%, %y%, %z%, %temps%.
messages.info-noneRésultat de /portailretour info quand aucun point n'est enregistré. %joueur% est remplacé par le nom visé.
messages.player-not-foundEnvoyé quand la cible de /portailretour info est inconnue du serveur.
messages.time-formatGabarit de formatage des durées injectées dans %temps%. Remplacements : %heures%, %minutes%, %secondes%.
config-versionVersion du schéma de configuration, utilisée pour avertir dans le journal lorsqu'un config.yml plus ancien est détecté.
Le code produit
Tel qu'il est livré, sans retouche.
name: PortailRetour
version: ${project.version}
main: fr.mineplus.portailretour.PortailRetourPlugin
api-version: "26.2"
description: Ramene le joueur a l'endroit de sa derniere mort, un seul retour par mort avec delai d'attente.
author: Mineplus
commands:
retour:
description: Te ramene a l'endroit de ta derniere mort.
usage: /retour
permission: portailretour.retour
aliases:
- retourmort
- deathback
portailretour:
description: Commandes d'administration du plugin PortailRetour.
usage: /portailretour [reload|info]
permission: portailretour.admin
permissions:
portailretour.retour:
description: Autorise l'utilisation de la commande /retour.
default: true
portailretour.bypass.cooldown:
description: Dispense du delai d'attente entre deux utilisations de /retour.
default: op
portailretour.bypass.worlds:
description: Dispense des restrictions de mondes interdits et du retour entre mondes.
default: op
portailretour.admin:
description: Acces a la commande d'administration /portailretour.
default: op
children:
portailretour.admin.reload: true
portailretour.admin.info: true
portailretour.admin.reload:
description: Autorise le rechargement de la configuration via /portailretour reload.
default: op
portailretour.admin.info:
description: Autorise la consultation du point de mort d'un joueur via /portailretour info.
default: op
Le tien peut être prêt dans l'heure
Décris ce que ton plugin doit faire. Tu vois le plan et le devis avant que la moindre ligne ne soit écrite, et tu n'es débité que de ce qui est réellement consommé.