Development Assistance event not cancelling itself.

Discussion in 'Plugin Help/Development/Requests' started by tuskiomi, Jun 9, 2015.

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

    tuskiomi

    Hello All.
    I have a plugin that sets up repeating events that self-terminate. However, the events don't seem to stop, and remain in memory. I can provide some general code:
    Code:
    
    public class example extends JavaPlugin implements Listener{
        List<Integer> eventIdBuffer = new ArrayList<Integer>();
        public void onEnable(){
            this.getServer().getPluginManager().registerEvents(this, this);
           
        }
        
        @EventHandler
        public void combust(EntityCombustEvent e){
                            eventIdBuffer.add(getServer().getScheduler().scheduleSyncRepeatingTask(this, fooMethod(e.getEntity().getLocation().add(0, 4, 0)), 1, 10));
                      
            }
    
        protected void unschedule() {
            getServer().getPlayer(playert).sendMessage("stopped task: "+eventIdBuffer.get(0));
            getServer().getScheduler().cancelTask(eventIdBuffer.get(0));
           
        }
    
        private Runnable fooMethod(Location l) {
    
    
                return new Runnable(){
                    int step = 0;
                    @Override
                    public void run() {
                        if(step >45)
                        unschedule();
                        step++; //unscheduling code
                        
                        doThings();
    
                    }};
           
        }
           
        }
    
    by princible, this should remove itself from the que when it's done (when step is bigger than 45), correct?
     
  2. @tuskiomi Use BukkitRunnables instead, they have a cancel method.
     
  3. Offline

    tuskiomi

    so when I want to stop the Bukkit runnable do I call the cancel method, or do I have to manually cancel it like above?
    edit: also, If I override the method, can I still cancel it using cancel or do I have to put a snippet of code in?
     
  4. @tuskiomi You call the cancel method to call it. You can still call the super's method even if you override it by using super.cancel()
     
    tuskiomi likes this.
  5. Offline

    tuskiomi

    of course. And it's depreciated. so do we know if it'll keep being updated?

    getting a stack now.

    Code:
    java.lang.IllegalStateException: Not scheduled yet
            at org.bukkit.scheduler.BukkitRunnable.getTaskId(BukkitRunnable.java:134
    ) ~[craftbukkit.jar:git-Bukkit-0a645a2]
            at org.bukkit.scheduler.BukkitRunnable.cancel(BukkitRunnable.java:18) ~[
    craftbukkit.jar:git-Bukkit-0a645a2]
            at com.tuskiomi.plugins.LethamyrPortals$1.run(LethamyrPortals.java:117)
    ~[?:?]
            at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftTask.run(CraftTask.java
    :53) ~[craftbukkit.jar:git-Bukkit-0a645a2]
            at org.bukkit.craftbukkit.v1_8_R2.scheduler.CraftScheduler.mainThreadHea
    rtbeat(CraftScheduler.java:349) [craftbukkit.jar:git-Bukkit-0a645a2]
            at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:6
    77) [craftbukkit.jar:git-Bukkit-0a645a2]
            at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:3
    36) [craftbukkit.jar:git-Bukkit-0a645a2]
            at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:6
    26) [craftbukkit.jar:git-Bukkit-0a645a2]
            at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java
    :534) [craftbukkit.jar:git-Bukkit-0a645a2]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_40]
    >
    line 117: else{cancel();}

    EDIT by Timtower: merged posts
     
    Last edited by a moderator: Jun 9, 2015
  6. Online

    timtower Administrator Administrator Moderator

    Moved to Bukkit alternatives.
     
  7. Offline

    tuskiomi

    @timtower wait, isn't this bukkit development? why was this moved?
     
  8. Online

    timtower Administrator Administrator Moderator

    @tuskiomi You are using 1.8, not released by Bukkit, so an alternative.
     
Thread Status:
Not open for further replies.

Share This Page