RedMaker
Menu
← Tous les exemples

PortailRetour

Un utilitaire court : /retour ramène le joueur à son dernier point de mort, une fois par mort, avec délai configurable.

Télécharger le .jar (36 Ko)
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 /retour

    Téléporte le joueur à l'endroit de sa dernière mort, consomme le point de mort et affiche la distance parcourue.

  • /portailretour /portailretour

    Affiche l'aide d'administration du plugin et la liste des sous-commandes disponibles.

  • /portailretour /portailretour reload

    Recharge 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

  • PlayerDeathEvent

    Enregistre 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.

  • PlayerRespawnEvent

    Envoie 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.

  • PlayerJoinEvent

    Dé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.

  • PlayerQuitEvent

    Marque 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.retour

    Autorise l'utilisation de la commande /retour.

  • portailretour.bypass.cooldown

    Dispense du délai d'attente entre deux utilisations de /retour.

  • portailretour.bypass.worlds

    Dispense des restrictions de mondes interdits et de l'interdiction de retour entre mondes.

  • portailretour.admin

    Accès à la commande d'administration /portailretour et à l'ensemble de ses sous-commandes.

  • portailretour.admin.reload

    Autorise le rechargement de la configuration via /portailretour reload.

  • portailretour.admin.info

    Autorise la consultation du point de mort d'un joueur via /portailretour info.

Configuration

  • settings.cooldown-seconds

    Délai d'attente en secondes entre deux utilisations réussies de /retour. 0 désactive le délai.

  • settings.consume-on-use

    Si 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-world

    Autorise le retour vers un point de mort situé dans un autre monde que celui où se trouve le joueur.

  • settings.blocked-worlds

    Noms des mondes depuis lesquels /retour est refusé et dans lesquels aucun point de mort n'est enregistré.

  • settings.safe-landing

    Cherche 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-scan

    Nombre 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-death

    Envoie un message au joueur au moment où son point de mort est enregistré.

  • settings.announce-on-respawn

    Envoie un rappel au joueur à sa réapparition pour lui signaler que /retour est disponible.

  • settings.distance-decimals

    Nombre de décimales affichées dans la distance parcourue.

  • storage.save-interval-seconds

    Pé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.prefix

    Préfixe ajouté devant chaque message du plugin. Format MiniMessage.

  • messages.no-permission

    Envoyé quand l'expéditeur n'a pas le nœud de permission requis.

  • messages.player-only

    Envoyé quand la console tente une commande qui exige un joueur.

  • messages.no-death-point

    Envoyé quand /retour est utilisé sans point de mort disponible.

  • messages.cooldown-active

    Envoyé 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.teleporting

    Envoyé juste avant le lancement de la téléportation asynchrone.

  • messages.teleport-success

    Envoyé après une téléportation réussie dans le même monde. %distance% est remplacé par la distance parcourue.

  • messages.teleport-success-cross-world

    Envoyé 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-failed

    Envoyé quand la téléportation asynchrone échoue ou qu'aucun emplacement sûr n'a été trouvé.

  • messages.world-unloaded

    Envoyé quand le monde du point de mort n'existe plus ou n'est pas chargé.

  • messages.world-blocked

    Envoyé quand le joueur se trouve dans un monde listé dans settings.blocked-worlds.

  • messages.cross-world-denied

    Envoyé quand allow-cross-world est faux et que le point de mort est dans un autre monde.

  • messages.death-point-saved

    Envoyé à la mort du joueur si announce-on-death est vrai.

  • messages.respawn-hint

    Envoyé à la réapparition du joueur si announce-on-respawn est vrai.

  • messages.reload-success

    Envoyé après un /portailretour reload réussi.

  • messages.reload-failed

    Envoyé quand le rechargement de config.yml lève une erreur.

  • messages.admin-usage

    Aide affichée pour /portailretour sans argument ou avec une sous-commande inconnue.

  • messages.info-found

    Résultat de /portailretour info quand un point de mort existe. Remplacements : %joueur%, %monde%, %x%, %y%, %z%, %temps%.

  • messages.info-none

    Résultat de /portailretour info quand aucun point n'est enregistré. %joueur% est remplacé par le nom visé.

  • messages.player-not-found

    Envoyé quand la cible de /portailretour info est inconnue du serveur.

  • messages.time-format

    Gabarit de formatage des durées injectées dans %temps%. Remplacements : %heures%, %minutes%, %secondes%.

  • config-version

    Version 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.

src/main/resources/plugin.yml43 lignes
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é.