Aller au contenu principal

Temporary Dimension

Mondes privés instanciés, clonés depuis des modèles Slime à l'entrée et supprimés lorsqu'ils sont vides.

Privéesv0.0.2Monde et construction
NécessiteTypeWriter0.9.0-beta-177 (BTC build)BTC CoreAdvancedSlimePaper

Conçue pour le réseau BornToCraft. Cette extension est documentée à titre de référence et n'est pas distribuée.

Présentation​

Temporary Dimension envoie un joueur dans une copie neuve d'un monde modèle. La copie est créée à partir d'un modèle Advanced SlimeWorld lorsque le joueur y entre, ne vit qu'en mémoire et est déchargée dès que le joueur est parti ; chaque visite repart donc du modèle. Elle est conçue pour les donjons, les tutoriels, les salles privées et les décors de cinématique qui ne doivent être ni partagés ni conservés.

Vous décrivez une dimension une seule fois avec une entrée Temporary Dimension Definition : les mondes modèles (l'un d'eux est choisi au hasard), la zone où les joueurs apparaissent, la permission d'entrée, les commandes bloquées et ce qu'il faut déclencher à l'entrée et à la sortie. Les joueurs y entrent via une commande, une action TypeWriter ou une commande d'administration, et reviennent exactement à l'endroit qu'ils ont quitté.

Elle fonctionne sur la version BTC de TypeWriter et BTC Core (Paper/Folia) et prend aussi en charge les serveurs AdvancedSlimePaper. La création, la recherche du point d'apparition et la téléportation sont asynchrones et compatibles Folia.

Fonctionnalités​

  • Mondes instanciés — chaque entrée crée un nouveau monde nommé tempdim_<uuid> à partir d'un modèle, et le supprime lorsqu'il est vide.
  • Plusieurs modèles — listez plus d'un monde modèle et l'un d'eux est choisi au hasard.
  • Apparition aléatoire sûre — des points aléatoires dans une boîte, puis une recherche autour de son centre, n'acceptant que de l'air au-dessus d'un bloc solide non dangereux.
  • Liste blanche de blocs d'apparition — limitez l'apparition à certains types de blocs.
  • Liste noire de commandes — bloque des commandes (et leurs formes plugin:) à l'intérieur.
  • Retour à l'origine — le joueur retourne à la position, à la rotation et au monde qu'il a quittés.
  • Triggers d'entrée et de sortie — exécutez n'importe quelle entrée TypeWriter et envoyez des messages MiniMessage à l'entrée et à la sortie.
  • Permission par dimension — une permission par dimension, vérifiée par la commande et facultativement par l'action.
  • Facts et placeholders — sachez si un joueur est dans une dimension, laquelle, et qui d'autre s'y trouve.

Installation​

  1. Exécutez le serveur sur BTC Core, ou sur AdvancedSlimePaper ; l'extension cherche l'un ou l'autre à l'exécution.
  2. Placez le JAR de Temporary Dimension dans plugins/Typewriter/extensions/ et redémarrez le serveur.
  3. Préparez vos mondes modèles sous forme de mondes Slime :
    • Sur BTC Core, placez-les là où le chargeur Slime file lit les mondes (slime_worlds dans le dossier du serveur par défaut).
    • Sur AdvancedSlimePaper, le modèle doit être un monde Slime chargé portant exactement le nom du modèle ; il est copié depuis la mémoire.
  4. Donnez aux joueurs la permission que vous définirez sur la dimension.

Premiers pas​

Créez un donjon dans lequel les joueurs peuvent entrer avec /typewriter tempdim dungeon1.

  1. Construisez votre donjon sous forme de monde Slime nommé dungeon1_template et placez-le là où votre serveur attend les modèles (voir ci-dessus).
  2. Dans le panneau web de TypeWriter, ouvrez une page statique et ajoutez une entrée Temporary Dimension Definition.
  3. Définissez commandName sur dungeon1, permission sur dimension.dungeon1, et ajoutez dungeon1_template à templateWorlds.
  4. Définissez spawnZone avec deux coins opposés (x1, y1, z1 et x2, y2, z2) autour de l'entrée. Utilisez les coordonnées de blocs du monde modèle.
  5. Remplissez éventuellement blacklistedCommands (par exemple home, spawn, tpa) et liez des triggers dans onEnter et onExit.
  6. Publiez, donnez la permission à un joueur de test et exécutez /typewriter tempdim dungeon1.

Pour entrer depuis une quête ou un PNJ, utilisez plutôt Enter Temporary Dimension et, pour sortir, Leave Temporary Dimension.

Alias de commande

La commande de dimension est une sous-commande de /typewriter tempdim ; l'extension n'enregistre pas de commande de premier niveau. Une commande courte comme /dungeon1 peut être exposée avec une entrée TypeWriter custom_command sur votre page, ce qui garde l'enregistrement des commandes compatible avec les rechargements.

Fonctionnement​

Un joueur ne peut se trouver que dans une seule dimension temporaire à la fois. Si la création échoue (aucun modèle, modèle introuvable, aucun point d'apparition sûr en 10 secondes, échec de téléportation), le joueur reste où il est, reçoit un message d'erreur et le monde à moitié construit est supprimé. Si le joueur se déconnecte, il est retiré de l'instance sans téléportation et le monde est fermé lorsqu'il est vide. Chaque instance est fermée lorsque TypeWriter se recharge ou s'arrête.

Commandes​

Toutes les commandes se trouvent sous /typewriter.

CommandeDescription
/typewriter tempdim <commandName>Entre dans la dimension dont le commandName correspond. Nécessite la permission de la dimension (vide signifie ouvert à tous).
/typewriter tempdim enter <dimension>Entre dans n'importe quelle dimension choisie dans la liste des entrées, sans tenir compte de sa permission. Nécessite typewriter.temporarydimension.admin.
/typewriter tempdim leaveQuitte votre dimension actuelle et retourne à votre origine. Aucune permission nécessaire.
/typewriter tempdim listListe les instances actives avec leur nombre de joueurs et le nom de leur monde. Nécessite typewriter.temporarydimension.admin.

commandName n'accepte que des lettres, des chiffres, _, - et :, et ne peut pas valoir enter, leave ou list. Les commandes sont construites au chargement des entrées ; publiez donc après l'avoir modifié.

Permissions​

PermissionAutorise
typewriter.temporarydimension.admin/typewriter tempdim enter et /typewriter tempdim list.
le champ permission d'une définition/typewriter tempdim <commandName> et, si checkPermission est activé, l'action d'entrée.

Placeholders​

Expansion MiniPlaceholders tempdim, utilisable sous forme de balises MiniMessage. Ils renvoient une valeur vide ou 0/false lorsque le joueur n'est pas dans une dimension.

PlaceholderRenvoie
<tempdim_in_dimension>true ou false.
<tempdim_in_dimension_bool>1 ou 0, pour les comparaisons numériques.
<tempdim_current>Nom de l'entrée de la dimension actuelle.
<tempdim_current_id>Identifiant d'entrée de la dimension actuelle.
<tempdim_current_world>Nom du monde de l'instance (tempdim_...).
<tempdim_players>Nombre de joueurs dans l'instance.
<tempdim_players_list>Noms des joueurs de l'instance, séparés par des virgules.

Dans les messages d'une définition, <dimension> est remplacé par le nom de l'entrée, et <command> dans le message de commande bloquée par la commande bloquée.

Entrées​

5 entrées, générées depuis la source de l'extension.

Actions2
Faits2
Manifestes1

Dépannage​

Unable to prepare the temporary dimension. Le modèle n'a pas pu être cloné. Comparez le nom du modèle dans templateWorlds avec le nom du monde Slime, vérifiez que le monde se trouve dans slime_worlds (BTC Core) ou qu'il est chargé (AdvancedSlimePaper), et lisez l'avertissement du journal pour connaître la cause. Sur les serveurs qui ne sont ni BTC Core ni AdvancedSlimePaper, le journal indique unsupported server platform for SlimeWorld.

Rien ne se passe et le journal indique no template configured. templateWorlds est vide ou ne contient que des noms vides.

No safe spawn was found in the temporary dimension. Aucun des points testés n'avait deux blocs d'air libres au-dessus d'un bloc solide autre que de la lave, du feu, un cactus ou du magma. Agrandissez la spawnZone, assurez-vous qu'elle couvre un sol solide du modèle (Y compris), et vérifiez que spawnBlockWhitelist contient le bloc du sol.

You are already in a temporary dimension. Un joueur ne peut être que dans une seule instance. Utilisez d'abord la commande ou l'action de sortie.

Une commande fonctionne encore à l'intérieur de la dimension. Écrivez le nom de la commande sans la barre oblique dans blacklistedCommands. La correspondance se fait sur le premier mot, sans tenir compte de la casse, et bloque aussi les formes name:command, mais pas les alias enregistrés sous un autre nom.

La commande de dimension n'existe pas après modification. Les commandes de dimension sont générées à partir des entrées : publiez la page, et vérifiez que commandName n'utilise que des caractères autorisés et n'entre pas en conflit avec une autre dimension.