Aller au contenu

Tuto Addon #3 - Créer une condition


Messages recommandés

Posté(e) (modifié)

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 commencer, assurez-vous d'avoir suivi les 2 premiers tutoriaux sinon vous serez perdu ^^

 

Créer une condition

 

Pour créer une condition, c'est très similaire à un effet. Voici le code de base :

package votre.package;

import javax.annotation.Nullable;

import org.bukkit.event.Event;

public class VotreClass extends Condition {

   @SuppressWarnings("unchecked")
   @Override
   public boolean init(Expression<?>[] expr, int i, Kleenean kl, ParseResult pr) {
       return true;
   }

   @Override
   public String toString(@Nullable Event e, boolean b) {
       return null;
   }

   @Override
   public boolean check(Event e) {
       return true;
   }

}
 

Pour remplir la condition init(), si vous avez suivi cette partie dans « Créer un effet » vous devez savoir faire, sinon je vous renvoie à cette partie.

La fonction toString(), pareil.

Pour la fonction check(), elle doit renvoyer true ou false. Si vous renvoyez false, la condition ne sera pas passée, si vous renvoyer true, elle sera bonne. Dans cette fonction vous pouvez ajouter tout le code que vous voulez mais au final, vous devez renvoyer true ou false.

 

Exemple : Une condition qui test si un nombre est pair.

package votre.package;

import javax.annotation.Nullable;

import org.bukkit.event.Event;

public class CondNombrePair extends Condition {

   private Expression<Number> nombre;

   @SuppressWarnings("unchecked")
   @Override
   public boolean init(Expression<?>[] expr, int i, Kleenean kl, ParseResult pr) {
       nombre = (Expression<Number>) expr[0];
       return true;
   }

    @Override
   public String toString(@Nullable Event e, boolean b) {
       return "nombre pair";
   }

   @Override
   public boolean check(Event e) {
       if(number.getSingle(e).intValue() % 2 == 0) {
           return true;
       }
       else {
           return false;
       }
   }

}
 

Pour enregistrer votre pattern, utilisez le code suivant :

Skript.registerCondition(VotreClass.class, pattern);
 

Pour mon exemple j'obtiens :

Skript.registerCondition(CondNombrePair.class, "%number% is even");
 
Modifié par Nashoba

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.