Aller au contenu
Nashoba

Tuto Addon #4 - Créer une expression

Messages recommandés

Sommaire:

  1. Base de l'addon
  2. Créer un effet
  3. Créer une condition
  4. Créer une expression
  5. Créer un évent
  6. 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é par Nashoba

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.