Solved Adding a delay on a event.

Discussion in 'Plugin Development' started by StephenTheHero, May 26, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    StephenTheHero

    I'm trying to make it so when a players joins the server they get a message but I want the message to be sent a little bit after they actually join.

    Code:java
    1. package me.StephenTheHero.___.Listeners;
    2.  
    3. import me.StephenTheHero.___.MainFile;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.player.PlayerJoinEvent;
    10.  
    11. public class UpdateJoinListener implements Listener
    12. {
    13.  
    14.  
    15. @EventHandler
    16. public void onPlayerJoin(PlayerJoinEvent event)
    17. {
    18. Player player = event.getPlayer();
    19. if (player.isOp() || (player.hasPermission("____") || (player.hasPermission("___") && MainFile.update)))
    20. {
    21.  
    22. player.sendMessage(ChatColor.GREEN + "MESSAGE");
    23. player.sendMessage(ChatColor.GREEN + "MESSAGE2");
    24.  
    25. }
    26.  
    27. }
    28.  
    29. }


    I've replaced my plugins name with ____ just because I don't want to give away on what I'm working on.
     
  2. Offline

    minoneer

  3. Offline

    HungerCraftNL

    I'll give you an exemple:
    Code:java
    1. public MainClass plugin;
    2. public ThisClass(MainClass plugin){
    3. this.plugin = plugin;
    4. }
    5.  
    6. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
    7. public void run(){
    8. //Here your code that you want to run after the delay
    9. }
    10. }, 20L);//20L = 1 sec
     
  4. Offline

    StephenTheHero

    Doesn't work
    Firstly:
    Code:java
    1. public ThisClass(MainClass plugin){
    2. this.plugin = plugin;
    3. }

    Gives an error saying to remove the '}'
    and
    Code:java
    1. package me.StephenTheHero.____.Listeners;
    2.  
    3. import me.StephenTheHero.____.MainFile;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerJoinEvent;
    11.  
    12. public class UpdateJoinListener implements Listener
    13. {
    14.  
    15. public MainFile plugin;
    16. public UpdateJoinListener(MainFile plugin)
    17. {
    18.  
    19. this.plugin = plugin;
    20.  
    21. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
    22. {
    23.  
    24. public void run() {
    25.  
    26.  
    27. @EventHandler
    28. public void onPlayerJoin(PlayerJoinEvent event)
    29. {
    30. Player player = event.getPlayer();
    31. if (player.isOp() || (player.hasPermission("____.Update") || (player.hasPermission("____.*") && MainFile.update)))
    32. {
    33. player.sendMessage(ChatColor.GREEN + "MESSAGE");
    34. player.sendMessage(ChatColor.GREEN + "MESSAGE2");
    35. }
    36.  
    37. }
    38.  
    39. }
    40.  
    41.  
    42.  
    43.  
    44.  
    45. }, 20L);
    46.  
    47. }
    48.  
    49. }


    Gives an error saying

    [​IMG]

    Help?!?!
     
  5. Offline

    WhatAaCow

    StephenTheHero You just placed the event in the runnable, that's wrong.
    Code:java
    1. package me.StephenTheHero.____.Listeners;
    2.  
    3. import me.StephenTheHero.____.MainFile;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerJoinEvent;
    11.  
    12. public class UpdateJoinListener implements Listener {
    13. public MainFile plugin;
    14.  
    15. public UpdateJoinListener(MainFile plugin) {
    16. this.plugin = plugin;
    17. }
    18.  
    19. @EventHandler
    20. public void onPlayerJoin(final PlayerJoinEvent event) {
    21. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    22. public void run() {
    23. Player player = event.getPlayer();
    24. if (player.isOp() || (player.hasPermission("____.Update") || (player.hasPermission("____.*") && MainFile.update))) {
    25. player.sendMessage(ChatColor.GREEN + "MESSAGE");
    26. player.sendMessage(ChatColor.GREEN + "MESSAGE2");
    27. }
    28. }
    29. }, 20L);
    30. }
    31. }
     
  6. Offline

    StephenTheHero

    Oh! Thank you, I just got one more problem :(

    Code:java
    1. package me.StephenTheHero.UUID;
    2.  
    3. import java.io.IOException;
    4.  
    5. import me.StephenTheHero.UUID.Commands.UUIDCommand;
    6. import me.StephenTheHero.UUID.Listeners.UpdateJoinListener;
    7. import me.StephenTheHero.UUID.Metrics.Metrics;
    8. import me.StephenTheHero.UUID.Updater.Updater;
    9. import me.StephenTheHero.UUID.Updater.Updater.ReleaseType;
    10. import me.StephenTheHero.UUID.Updater.Updater.UpdateResult;
    11.  
    12. import org.bukkit.Bukkit;
    13. import org.bukkit.ChatColor;
    14. import org.bukkit.plugin.java.JavaPlugin;
    15.  
    16. public class MainFile extends JavaPlugin
    17. {
    18.  
    19.  
    20.  
    21. public static boolean update = false;
    22. public static String name = "";
    23. public static ReleaseType type = null;
    24. public static String version = "";
    25. public static String link = "";
    26. // You would want to make getter methods in your class, this is just for simplicity.
    27.  
    28.  
    29.  
    30. // Changes the name of the logger.
    31. //
    32. // public final Logger logger = Logger.getLogger("Minecraft");
    33.  
    34. //Events/Listeners
    35. UpdateJoinListener UpdateJoinListener = new UpdateJoinListener();
    36.  
    37. public void onEnable()
    38. {
    39.  
    40. // Config Settings
    41. // getConfig().addDefault("update-check", Boolean.valueOf(true));
    42. // getConfig().options().copyDefaults(true);
    43. // saveConfig();
    44.  
    45.  
    46. // Events/Listeners
    47. Bukkit.getPluginManager().registerEvents(UpdateJoinListener, this);

    [​IMG]
    How to I fix? Sorry if I'm being a pain, ask if you need more code etc.
     
  7. Offline

    HungerCraftNL

    PHP:
    UpdateJoinListener UpdateJoinListener = new UpdateJoinListener(this);
    The 'this' is the main class that extends the javaplugin.
     
  8. Offline

    StephenTheHero

    Thanks, I've solved my problem!

    Thanks everyone. :)
     
Thread Status:
Not open for further replies.

Share This Page