public class MyPlugin {
public static MyPlugin instance;
public MyPlugin() {
instance = this;
}
@Override
public void onEnable() {
// On enregistre nos évènements, détectés par l'annotation @EventHandler
this.getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler // On marque cette méthode afin d'indiquer à Bukkit que c'est le point d'entrée d'un évènement
public void onPlayerRespawn(PlayerRespawnEvent e) {
// On récupère le plugin
MyPlugin plugin = MyPlugin.instance;
// On récupère le serveur sur lequel le plugin se situe (hello bungeecord)
Server server = plugin.getServer();
// On récupère le planificateur du serveur
BukkitScheduler scheduler = server.getScheduler();
// On planifie une nouvelle tâche
// Synchrone car si on modifie une entité hors de son thread et que celui-ci la tick crash
scheduler.scheduleSyncDelayedTask(/* le plugin qui planifie la tâche */ MyPlugin.instance, /* la tâche à exécuter */ new Runnable() {
@Override
public void run() {
// On téléporte le joueur de l'évènement - celui qui a ressuscité - à notre lieu magique
e.getEntity().teleport(kindOfMagicLocation);
}
}, /* le délai, en ticks (1/20s), on suffixe L car c'est rigolo */ 20L);
}
}