Créer un plugin
Une fois avoir respecté tous les pré-requis et installé toutes les dépendances tu vas pouvoir développer ton premier plugin.
Les couches du plugin
Avant de commencer le développement d'un plugin pour DTwo, il est crucial de comprendre sa structure en deux couches distinctes : le backend et le frontend. Cette distinction aide à maintenir la clarté et la facilité de maintenance de l'application.
Un plugin backend concerne toutes les opérations qui se déroulent en arrière-plan. Cela inclut la logique de traitement des données, les interactions avec le serveur du jeu, et tout ce qui est relatif à la manipulation des informations sans interaction directe avec l'utilisateur.
Un plugin frontend, quant à lui, est responsable de l'interface utilisateur. Cela concerne tout ce que l'utilisateur peut voir et avec quoi il peut interagir, comme les boutons, les menus, et les affichages graphiques.
Lorsque vous développez un plugin qui nécessite des modifications à la fois du backend et du frontend, vous devez créer deux plugins distincts, chacun sous forme d'une bibliothèque de liens dynamiques (DLL) séparée :
Plugin Backend (DLL) : Ce plugin gère toute la logique de fond, les opérations de données, et les interactions non-visuelles. Son objectif est de s'assurer que les fonctionnalités nécessaires sont traitées en arrière-plan sans interférer avec l'expérience utilisateur directe.
Plugin Frontend (DLL) : Ce plugin est exclusivement dédié à l'interface utilisateur. Il doit être développé de manière à ne contenir aucune fonctionnalité de backend pour éviter les complications et les mélanges de responsabilités.
Il est impératif de maintenir une séparation claire entre ces deux aspects lors du développement des plugins pour DTwo. Cette approche non seulement simplifie le développement et la maintenance, mais assure également que les améliorations ou les corrections peuvent être effectuées de manière ciblée sans impact négatif sur l'autre partie du plugin.
Créer un plugin Backend
Créer la classe MyPlugin
Créer une classe MyPlugin.cs (nom au choix) qui hérite de "Plugin
" (vous pouvez nommer la classer comme vous le souhaitez)
Intéragir avec les événements du jeu (dans la classe MyPlugin)
Un évent est appelé lorsqu'une fenêtre reçoit un paquet (un message), la méthode doit prendre le nom de cet évent (correspondant au nom du message), préfixe de "On
" et être accompagné de l'attribut "[DofusEvent]
".
Les évents peuvent être hybrides (fonctionner avec toutes les versions du jeu, ou alors cibler une version en particulier).
Dans le cas où vous souhaitez un event hybride, il faudra que le type de votre message correspondent au namespace "Dtwo.API.Hybride.Network.Messages
".
A savoir que dans votre plugin, vous un évent sera appelé pour CHAQUE fenêtre le recevant. Par exemple, dans le cas de 'OnPartyJoinMessage
', si plusieurs fenêtres (personnages) appartiennent au même groupe, l'évent sera appelé autant de fois que vous avez de personnage dans ce groupe.
Il est important de prendre cela en compte lorsque vous souhaitez que les itérations dans votre méthode ne soient exécutées qu'une seule pendant l'évent.
Compiler / Publier le plugin
Faites un clic droit sur votre projet > Compiler, puis rendez-vous dans le dossier où la dll a été créée.
Dans le dossier "
plugins
" de l'application (compilée), créer un dossier qui aura le même nom que votre plugin, exemple : "MyPlugin
", et mettez-y la dll, et toutes les dll nécessaires à la compilation (autre que les dll Dtwo)Créer un fichier json dans le même dossier, portant le même nom que votre dll, suffixé de "
.infos
" (ex :Dtwo.Plugins.MyPlugin.Infos.json
)
Vous pouvez lancer l'application et tester ! Vous pouvez debug le plugin en lançant l'application via visual studio en debug.
Aller plus loin
TODO
Créer un plugin Frontend
Dans la majorité des cas (et c'est fortement conseillé), votre plugin "frontend" est accompagné d'un plugin "backend", vous n'aurez pas à vous soucier des évents, et actions à effectuer en jeu; mais seulement la partie interface utilisateur.
Créer la classe MyPluginView
Créer la classe MyPluginView.cs qui hérite de "PluginView
", il est conseillé de préfixé par le nom du plugin "frontend", et suffixer par "view".
Créer une page
Faites un clic droit sur votre "projet > Ajouter un Element > Razor component
",
nommez votre classe "MainPage
" (donnez lui le nom que vous souhaitez)
Référencer la page dans l'application
Une fois la page créée, il faut la référencer dans l'app, dans votre fichier MyPluginView.cs
:
Compiler / Publier le plugin
Mêmes opérations que pour un plugin backend, en veillant à respecter les conventions de nommage.
Dans le cas où vous avez du contenu inclut dans wwwroot
vous devrez l'inclure dans le wwroot
de l'app (wwwroot/plugins/<Nom de votre Plugin>
)
Aller plus loin
TODO
Last updated