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 au moins les 2 premiers tutoriaux ou vous pourrez être perdus.
Créer un évent simple
Aujourd'hui on va voir comment créer un évent simple. Dans cette partie on aura pas besoin de créer de nouvelle classe, on va juste enregistrer l'évent « on ... » ainsi que les valeurs dedans (ex : event-player, event-location...).
Voici comment enregistrer votre évent :
Skript.registerEvent("Nom de votre évent", SimpleEvent.class, ClassBukkitDeVotreEvent.class, "event");
Pour le « Nom de votre évent », vous pouvez mettre ce que vous voulez.
Pour ClassBukkitDeVotreEvent.class, il faut remplacer ceci par la classe Bukkit de l'évent.
Pour « event », il faut remplacer par le code skript sans le « on ».
Par exemple on va recréer l'évent « on join ». Ça nous donne tout simplement :
Skript.registerEvent("Join Event", SimpleEvent.class, PlayerJoinEvent.class, "join");
Le problème reste qu'on ne peut toujours pas récupérer les infos. Pour se faire on va enregistrer les « event values ». Encore une fois pas besoin de créer de classe spéciale, on met ce code juste après le Skript.registerEvent(...).
Voici à quoi ressemble le bout de code pour enregistrer une valeur d'évenement :
EventValues.registerEventValue(ClassBukkitDeVotreEvent.class, Object.class, new Getter<Object, ClassBukkitDeVotreEvent.class>() {
public Object get(ClassBukkitDeVotreEvent e) {
return null;
}
}, 0);
La première chose à faire est de remplacer tous les ClassBukkitDeVotreEvent par la classe Bukkit qui contient votre événement.
Ensuite il faut définir le type d'objet que renvoie la valeur d’événement. Si on remplace tous les Object par Player, on pourra utiliser « event-player » en Skript. Si on remplace tous les Object par Location, on pourra utiliser « event-location » en Skript.
Pour finir la dernière chose à changer est le return. Il faut retourner l'objet en question, celui que vous voulez utiliser. Pour cela vous pourrez utiliser la variable e qui sera votre évent.
Reprenons notre exemple « on join ». Le code final (avec l'enregistrement + le return du joueur) donnera :
Skript.registerEvent("Join Event", SimpleEvent.class, PlayerJoinEvent.class, "join");
EventValues.registerEventValue(PlayerJoinEvent.class, Player.class, new Getter<Player, PlayerJoinEvent.class>() {
public Player get(PlayerJoinEvent e) {
return e.getPlayer();
}
}, 0);
Créer un évent complexe
Bientôt