Nashoba 254 Posté : 18 septembre 2016 (modifié) Sommaire: Base de l'addon Créer un effet Créer une condition Créer une expression Créer un évent Créer un type --------------------------- Avant de continuer, assurez-vous d'avoir suivi les précédents tutoriaux ou vous pourrez être perdus. Créer une expression Cette partie va être plus longue et plus complexe. Une expression je vous le rappelle renvoie un objet, n'importe lequel. Une expression peut être aussi « settable », c'est-à-dire que l'ont peut utiliser « add %object% to %object% » (le premier est votre expression et le deuxième ce que vous ajoutez), « remove %object% from %object% », « set %object% to %object% », « reset %object% » ou « remove all from %object% ». Tout d'abord voici le code de base de votre class : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Voyons les fonctions 1 par 1 : isSingle() : Si vous renvoyez false, c'est que ce que vous renvoyez avec votre expression est une liste (plusieurs objets), si vous renvoyer true, vous ne renvoyez qu'un seul objet. getReturnType() : Permet à Skript d'obtenir la class du type d'objet que vous renvoyez (ex : String.class, Integer.class, Player.class...). init() : Si vous avez suivi le reste du tuto, vous la connaissez. toString() : Vous connaissez aussi. get() : Permet d'obtenir l'objet de l'expression. /!\ Vous devez renvoyer une liste obligatoirement, si vous renvoyez false à la fonction isSingle(), vous devez renvoyer une liste à un seul élément. Dans votre class, la première chose à faire est de remplacer tous les « Object » par le type d'objet que vous voulez renvoyer (ex : String, Integer, Player, NPC, UUID, Long...). Comme exemple je vais faire une expression qui renvoie le nom du joueur, ça renvoie donc un String (texte). Dans ma classe ça me donne : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Maintenant voyons la fonction get(). Dans le « return new String[]{ } » je dois ajouter le nom du joueur dans la liste. J'obtiens donc le code suivant : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Maintenant voyons voir pour une expression « settable ». On va rajouter 2 nouvelles fonctions dans notre class : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. La fonction change() est appelée quand l'objet doit être changé. Vous avez 3 paramètres dedans : e : Vous le connaissez (pour récupérer une variable private avec getSingle(e)) delta : L'objet que vous devrez ajouter (vous devrez le cast) mode : Le type de changement : add, remove, reset... La fonction acceptChange() doit renvoyer les class des objets que vous acceptez lors d'un changement. Par exemple si vous souhaitez pouvoir ajouter uniquement des nombres en fonction de certains mode, il faut faire une condition avec le type de mode et renvoyer Number.class. Exemple : Avec le plugin PayerPoints, pouvoir récupérer les points du joueur et pouvour en add, remove, reset ou set : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Maintenant il ne nous reste plus qu'à enregistrer l'expression dans Skript : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. La seule chose en plus des autres patterns est « Object.class ». Vous devez mettre à la place le type d'objet que vous renvoyez dans votre expression. Par exemple avec l'exemple précédent j'obtiens : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Modifié 26 juillet 2018 par Nashoba Partager ce message Lien à poster Partager sur d’autres sites