MMOItems
Vue d'ensemble
MMOItems connecte le plugin MMOItems à TypeWriter. Vous choisissez un objet par son type MMOItems (par exemple SWORD) et son id, et TypeWriter peut le donner, le retirer, le compter, ou réagir lorsqu'un joueur le fabrique, l'utilise, l'équipe ou y sertit une gemme.
L'extension fournit aussi un Advanced Tooltip System. Il réécrit à la volée le lore des objets MMOItems, sous forme de paquets envoyés au joueur : un même objet peut ainsi afficher plusieurs pages, une marque « prérequis remplis » en direct et une comparaison de statistiques avec un autre objet. L'objet stocké n'est jamais modifié.
Tout se configure dans le panel web : les types et identifiants d'objets sont suggérés à partir de votre configuration MMOItems.
Fonctionnalités
- Donner et retirer des objets — distribuez ou retirez des objets MMOItems, pour un joueur ou un groupe entier, à partir d'une liste ou d'un fact.
- Comptage d'objets — un fact compte les objets correspondants dans l'inventaire (armure, seconde main et curseur compris) et/ou la main principale.
- Événement et objectif d'utilisation — réagissez au clic droit ou à la consommation d'un objet MMOItems.
- Événement et objectif de fabrication — réagissez aux objets fabriqués dans une station de fabrication MMOItems, avec un filtre de station facultatif.
- Événement et objectif de gemme — réagissez à une gemme appliquée à un objet, filtrée par objet cible et gemme.
- Objectif d'équipement — comptez les pièces MMOItems enfilées dans un emplacement d'armure.
- Objectif de lancement de capacité — comptez les lancements d'une capacité MMOItems.
- Objectif de possession d'objets — se termine lorsque le joueur détient assez d'objets sélectionnés, avec des modifiers de complétion.
- Variable d'objet — utilisez un objet MMOItems partout où un objet est attendu.
- Infobulles avancées — lore multipage, marques de prérequis, comparaison de statistiques et icônes de catégorie.
Installation
- Installez MMOItems et sa bibliothèque MythicLib. Installez aussi MMOCore si vous voulez que les marques de prérequis du système d'infobulles vérifient la classe, le niveau et les métiers.
- Installez l'extension officielle TypeWriter Quest (les objectifs en ont besoin).
- Obtenez l'extension depuis les boutiques (voir les boutons du panneau de résumé ci-dessus) et placez le JAR dans
plugins/Typewriter/extensions/. - Redémarrez le serveur. TypeWriter 0.9 s'appuie sur PacketEvents, que le système d'infobulles utilise pour réécrire le lore des objets.
Premiers pas
Récompensez les joueurs avec une épée lorsqu'ils fabriquent une potion dans une station d'alchimie :
- Dans le panel web TypeWriter, ouvrez une page sequence et ajoutez une action Give MMOItem.
- Laissez
itemsvide. Définissezitemavec untype(par exempleSWORD) et unid(par exempleSTEEL_BLADE), etamountsur1. - Ouvrez une page static et ajoutez un Craft Objective. Renseignez
quest,display,amount, et un fact persistant dansfactpour stocker la progression. - Dans
items, ajoutez l'objet MMOItems fabriqué (vide signifie n'importe quel objet) et, si nécessaire,stationIdsavec l'identifiant de station MMOItems. - Définissez
onCompletesur l'action Give MMOItem et publiez.
Pour ne réagir qu'une fois sans suivre la progression, utilisez plutôt le Craft Event et reliez l'action Give dans ses triggers.
Les événements et les infobulles ignorent les joueurs en mode Créatif. Testez avec un joueur en mode Survie ou Aventure.
Fonctionnement
La correspondance des objets compare le type et l'id MMOItems, sans tenir compte de la casse. Un type et un id vides correspondent à n'importe quel objet MMOItems. Les objets qui ne sont pas des objets MMOItems ne correspondent jamais.
Les objectifs basés sur le champ fact (fabrication, utilisation, équipement, gemme, lancement de capacité, ouverture de l'établi) écrivent leur progression dans un fact persistant (cachable), et déclenchent onComplete une fois lorsque amount est atteint.
Infobulles avancées
Ajoutez une entrée Advanced Tooltip System sur une page manifest et publiez. Elle s'applique à chaque objet MMOItems de l'inventaire, de la barre d'accès rapide et des conteneurs, pour tous les joueurs hors mode Créatif.
La pagination et le lore avancé ne s'appliquent qu'en survie et en aventure. En créatif, le lore d'origine de MMOItems est affiché tel quel, balises comprises, car le client créatif renvoie les objets tels qu'il les affiche et réécrire le lore altérerait l'objet réel.
Si le système est désactivé, si overrideDefaultLore est désactivé ou si aucune entrée n'est publiée, les balises sont retirées et tout le lore reste sur une seule page.
Modifiez le lore de vos objets MMOItems (dans l'éditeur d'objets MMOItems ou sa configuration) et ajoutez ces balises :
| Balise | Effet |
|---|---|
<page_break> | Commence une nouvelle page. Les pages vides sont supprimées. |
<category_image> | Remplacée par l'icône définie dans categoryImages pour le type d'objet. |
<pagination_indicator> | Remplacée par paginationIndicator. |
<comparison_indicator> | Remplacée par comparisonIndicator. |
<requirement_met> et <requirement_not_met> | Une seule des deux s'affiche, en utilisant requirementMetSymbol ou requirementNotMetSymbol. |
<comparison_value> et <comparison_sign> | La différence de statistique avec l'objet de référence de la comparaison, et un + lorsqu'elle est positive. |
Les pages et la comparaison sont pilotées par des touches, définies avec paginationKeybind (SWAP_OFFHAND par défaut, la touche F) et comparisonKeybind (SNEAK par défaut). Les valeurs acceptées sont SWAP_OFFHAND, DROP, SNEAK, SHIFT_LEFT, SHIFT_RIGHT, LEFT_CLICK, RIGHT_CLICK et MIDDLE_CLICK.
- Appuyer sur la touche de pagination sur un objet MMOItems annule toujours l'action vanilla (échange, lâcher, clic) pour éviter les accidents, même pour les objets d'une seule page. Les pages reviennent à la page 1 après la dernière, avec un court délai entre deux appuis.
- Appuyer sur la touche de comparaison sur un objet le définit comme référence de comparaison. Appuyer à nouveau sur le même objet l'efface. Seuls les objets du même type MMOItems sont comparés, et la référence est effacée à la fermeture de l'inventaire.
- Les prérequis sont vérifiés à partir des données MMOCore : niveau, classe, niveau de métier et permission. Si un prérequis échoue, chaque
<requirement_not_met>s'affiche.
Format d'affichage des objectifs
La ligne d'un objectif dans le suivi de quêtes n'est pas figée dans le code. Elle est lue depuis des snippets TypeWriter, modifiés dans plugins/Typewriter/snippets.yml. Placeholders : <display> (le champ display de l'objectif), <current> et <required> ; les placeholders PlaceholderAPI sont aussi interprétés.
| Snippet | Utilisé par | Par défaut |
|---|---|---|
advancedQuest.display | Objectifs Craft, Use, Equip, Gem Stone, Ability Cast et Open Crafting Table, tant qu'ils sont en cours | <display> (<current>/<required>), dans des tons de gris |
advancedQuest.completed | Les mêmes objectifs, une fois amount atteint | ✔, puis le <display> barré et la progression |
mmoitems.countObjective.display | Mmoitems Count Objective, tant qu'il est en cours | <display> (<current>/<required>), dans des tons de gris |
mmoitems.countObjective.completed | Le même objectif, une fois amount atteint | <display> barré en vert, puis la progression |
Les deux clés advancedQuest.* sont partagées avec les autres extensions d'objectifs BTC : une seule modification restyle toutes ces extensions.
Entrées
16 entrées, générées depuis la source de l'extension.
Actions3
- Give Mmoitem ActionGive MMOItem
- Open Crafting Table ActionOpen Crafting Table
- Remove Mmoitem ActionRemove MMOItem
Événements3
- Mmoitems Gem Stone Apply EventMMOItems Gem Stone Apply Event
- Mmoitems Item Craft EventMMOItems Item Craft Event
- Use Mmoitem EventUse MMOItem Event
Objectifs7
- Mmoitems Ability Cast ObjectiveCast MMOItems abilities
- Mmoitems Count ObjectiveIdentify and count specific MMOItems from a fact
- Mmoitems Gem Stone Apply ObjectiveMMOItems Gem Stone Apply Objective
- Mmoitems Item Craft ObjectiveMMOItems Item Craft Objective
- Mmoitems Item Equip ObjectiveEquip MMOItems
- Open Crafting Table ObjectiveOpen Crafting Table Objective
- Use Mmoitem ObjectiveUse MMOItem Objective
Faits1
- Mmoitems Count FactCount MMOItems in player's inventory or hand
Variables1
- Mmoitem VariableMMOItem Identifier
Manifestes1
- Advanced Tooltip ConfigAdvanced Tooltip System
Dépannage
La liste des types ou identifiants d'objets est vide dans le panel. Les listes proviennent de la configuration MMOItems du serveur en cours d'exécution. Assurez-vous que MMOItems est chargé et possède au moins un modèle de ce type, puis rouvrez la page dans le panel.
Give MMOItem ne fait rien. L'action exécute mmoitems give <type> <id> <player> <amount> depuis la console. Un type inconnu ignore l'objet silencieusement : vérifiez donc l'orthographe du type. Si fact est défini, seuls les objets fournis par ce fact (et correspondant à item / items lorsqu'ils sont renseignés) sont donnés, avec le amount de l'action.
Remove MMOItem ne retire rien. Par défaut, seul l'inventaire est analysé (checkInventory est activé, checkHand est désactivé). L'analyse de l'inventaire inclut l'armure, la seconde main et le curseur. Activez checkHand pour retirer d'abord de la main principale.
Un objectif de fabrication n'avance jamais. Par défaut, seules les recettes instantanées et la file de fabrication sont comptées. detectUpgradeRecipe existe mais les résultats d'amélioration ne sont jamais comptés par le code actuel. Vérifiez aussi l'identifiant de station (stationIds, fusionné avec l'ancien stationId) et qu'un fact persistant est relié dans fact.
Les événements et objectifs ne se déclenchent pas en Créatif. Les événements d'utilisation, de fabrication et de gemme se terminent immédiatement pour les joueurs en mode Créatif, et le système d'infobulles leur est désactivé. Testez en Survie.
Les balises du tooltip s'affichent en texte, ou les pages ne changent pas. Vérifiez d'abord que le joueur n'est pas en créatif, où le lore est laissé tel quel. Les pages ne changent que si une entrée Advanced Tooltip System est publiée avec isEnabled et overrideDefaultLore activés ; sinon les balises sont retirées et le lore reste sur une seule page. Si la touche F par défaut entre en conflit avec un autre plugin, choisissez une autre touche dans paginationKeybind.
Les marques de prérequis s'affichent toujours comme remplies. La vérification lit les données de joueur MMOCore. Sans MMOCore (ou pour un joueur sans profil), la vérification se rabat sur « remplie ».
Extensions associées
- MMOCore — classes, métiers et compétences de la même suite RPG de Phoenix Development.
- MMO Inventory — intégration de MMOInventory, utilisable comme fact fournisseur d'objets pour les actions Give et Remove.