Anon8281 / UniversalScheduler

Universal scheduling lib for Folia/Spigot/Bukkit/etc. plugins
MIT License
40 stars 7 forks source link

cancel(): java.lang.IllegalStateException: Not scheduled yet #7

Closed h14turkiye closed 2 months ago

h14turkiye commented 2 months ago
public void sell(Player player, final int amount) {
        UniversalRunnable universalRunnable = new UniversalRunnable()  {

            @SuppressWarnings("deprecation")
            @Override
            public void run() {
                Bukkit.broadcastMessage("a");
                Boolean sell = inner(player, amount);
                if(sell == null) {
                    Bukkit.broadcastMessage("b");
                    return;
                }
                if(sell) {
                    HashMap<Integer, ItemStack> map = player.getInventory().addItem(new ItemStack(getItem()).asQuantity(64));
                    for (final ItemStack item : map.values()) {
                        player.getWorld().dropItemNaturally(player.getLocation(), item);
                    }
                    player.sendMessage(Seller.getLocaleAPI().getLocaleForKey(player, "sell.success"));
                }
                cancel();
            }
        };
        MyScheduledTask runTaskTimer = Seller.getScheduler().runTaskTimer(universalRunnable, 1, 10);
    }
[22:23:16] [Server thread/WARN]: [Seller] Global task for Seller v0.1 generated an exception
java.lang.IllegalStateException: Not scheduled yet
    at OzCore.jar/com.github.Anon8281.universalScheduler.UniversalRunnable.checkScheduled(UniversalRunnable.java:138) ~[OzCore.jar:?]
    at OzCore.jar/com.github.Anon8281.universalScheduler.UniversalRunnable.cancel(UniversalRunnable.java:12) ~[OzCore.jar:?]
    at Seller.jar/com.honefor.seller.models.Merchandise$1.run(Merchandise.java:170) ~[Seller.jar:?]
    at OzCore.jar/com.github.Anon8281.universalScheduler.foliaScheduler.FoliaScheduler.lambda$runTaskTimer$2(FoliaScheduler.java:65) ~[OzCore.jar:?]
    at io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler$GlobalScheduledTask.run(FoliaGlobalRegionScheduler.java:179) ~[paper-1.20.6.jar:?]
    at io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler.tick(FoliaGlobalRegionScheduler.java:37) ~[paper-1.20.6.jar:?]
    at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1702) ~[paper-1.20.6.jar:1.20.6-140-9e7f6c3]
    at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:467) ~[paper-1.20.6.jar:1.20.6-140-9e7f6c3]
    at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1571) ~[paper-1.20.6.jar:1.20.6-140-9e7f6c3]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1231) ~[paper-1.20.6.jar:1.20.6-140-9e7f6c3]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:323) ~[paper-1.20.6.jar:1.20.6-140-9e7f6c3]
    at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

a and b spam.

Anon8281 commented 2 months ago

Why do you use UniversalRunnable inside of Scheduler? Looks like you should try universalRunnable.runTaskTimer

https://github.com/Anon8281/UniversalScheduler/blob/8ca05bc85ebf48e0eea896d456709934ba24c05c/src/main/java/com/github/Anon8281/universalScheduler/UniversalRunnable.java#L109

h14turkiye commented 2 months ago

ah yeah mb will try

h14turkiye commented 2 months ago

Working, thank you.