diff --git a/build.gradle b/build.gradle index d2a63008bb..3dd7c4a21b 100644 --- a/build.gradle +++ b/build.gradle @@ -113,6 +113,7 @@ allprojects { implementation 'com.sk89q:squirrelid:0.1.0' implementation "io.papermc:paperlib:1.0.7" implementation 'org.bstats:bstats-bukkit:2.2.1' + implementation 'com.github.Anon8281:UniversalScheduler:0.1.3' testImplementation 'org.spigotmc:spigot-api:1.20.6-R0.1-SNAPSHOT' testImplementation 'com.sk89q.worldedit:worldedit-core:7.2.14' @@ -140,10 +141,12 @@ allprojects { include(dependency('io.papermc:paperlib')) include(dependency('com.sk89q:squirrelid')) include(dependency("org.bstats:")) + include(dependency("com.github.Anon8281:UniversalScheduler")) } relocate 'org.bstats', 'com.sk89q.craftbook.bukkit.bstats' relocate 'com.sk89q.squirrelid', 'com.sk89q.craftbook.util.profile' relocate 'io.papermc.lib', 'com.sk89q.craftbook.bukkit.paperlib' + relocate 'com.github.Anon8281.universalScheduler', 'com.sk89q.craftbook.universalScheduler' exclude 'GradleStart**' exclude '.cache' exclude 'LICENSE*' diff --git a/src/main/java/com/sk89q/craftbook/bukkit/BukkitCraftBookPlayer.java b/src/main/java/com/sk89q/craftbook/bukkit/BukkitCraftBookPlayer.java index 09c9f155ed..ba310994d5 100644 --- a/src/main/java/com/sk89q/craftbook/bukkit/BukkitCraftBookPlayer.java +++ b/src/main/java/com/sk89q/craftbook/bukkit/BukkitCraftBookPlayer.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.item.ItemType; +import io.papermc.lib.PaperLib; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -68,7 +69,7 @@ public boolean hasPermission(String perm) { @Override public void teleport(Location location) { - player.teleport(CraftBookBukkitUtil.toLocation(location)); + PaperLib.teleportAsync(player, CraftBookBukkitUtil.toLocation(location)); } @Override diff --git a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java index fea25cecaa..a12904e907 100644 --- a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java +++ b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java @@ -1,5 +1,7 @@ package com.sk89q.craftbook.bukkit; +import com.github.Anon8281.universalScheduler.UniversalScheduler; +import com.github.Anon8281.universalScheduler.scheduling.schedulers.TaskScheduler; import com.google.common.collect.Sets; import com.sk89q.bukkit.util.CommandsManagerRegistration; import com.sk89q.craftbook.CraftBookMechanic; @@ -215,6 +217,11 @@ public class CraftBookPlugin extends JavaPlugin { */ private NMSAdapter nmsAdapter; + /** + * Universal scheduler + */ + private static TaskScheduler scheduler; + public static final Map> availableMechanics; public boolean useLegacyCartSystem = false; @@ -347,7 +354,7 @@ public CraftBookMechanic getMechanic(Class clazz) { /** * Retrieve the UUID Mappings system of CraftBook. - * + * * @return The UUID Mappings System. */ public UUIDMappings getUUIDMappings() { @@ -384,6 +391,7 @@ public void setNmsAdapter(NMSAdapter nmsAdapter) { public void onEnable() { ItemSyntax.plugin = this; + scheduler = UniversalScheduler.getScheduler(this); nmsAdapter = new NMSAdapter(); @@ -497,8 +505,7 @@ public void playerJoin(PlayerJoinEvent event) { } if(!foundAMech) { - Bukkit.getScheduler().runTaskTimer(this, - () -> getLogger().warning(ChatColor.RED + "Warning! You have no mechanics enabled, the plugin will appear to do nothing until a feature is enabled!"), 20L, 20*60*5); + CraftBookPlugin.getScheduler().runTaskTimer(() -> getLogger().warning(ChatColor.RED + "Warning! You have no mechanics enabled, the plugin will appear to do nothing until a feature is enabled!"), 20L, 20*60*5); } PaperLib.suggestPaper(this); @@ -524,7 +531,7 @@ public void setupCraftBook() { languageManager = new LanguageManager(); languageManager.init(); - getServer().getScheduler().runTask(this, CompatabilityUtil::init); + getScheduler().runTask(CompatabilityUtil::init); mechanics = new ArrayList<>(); @@ -598,7 +605,7 @@ public void setupCraftBook() { /** * Enables the mechanic with the specified name. - * + * * @param mechanic The name of the mechanic. * @return If the mechanic could be found and enabled. */ @@ -649,7 +656,7 @@ public boolean enableMechanic(String mechanic) { /** * Disables the mechanic with the specified name. - * + * * @param mechanic The name of the mechanic. * @return If the mechanic could be found and disabled. */ @@ -685,7 +692,7 @@ public void registerGlobalEvents() { getServer().getPluginManager().registerEvents(managerAdapter, inst()); if(config.easterEggs) { - Bukkit.getScheduler().runTaskLater(this, new Runnable() { + CraftBookPlugin.getScheduler().runTaskLater(new Runnable() { @Override public void run () { @@ -852,7 +859,7 @@ private void setupSelfTriggered() { // Set up the clock for self-triggered ICs. - getServer().getScheduler().runTaskTimer(this, mechanicClock, 0, config.stThinkRate); + getScheduler().runTaskTimer(mechanicClock, 0, config.stThinkRate); getServer().getPluginManager().registerEvents(selfTriggerManager, this); } @@ -1075,7 +1082,7 @@ public void reloadConfiguration() throws Throwable { for(CraftBookMechanic mech : mechanics) mech.disable(); mechanics = null; - getServer().getScheduler().cancelTasks(inst()); + getScheduler().cancelTasks(inst()); HandlerList.unregisterAll(inst()); if(config.debugLogToFile) { @@ -1240,7 +1247,7 @@ public void setPersistentStorage(PersistentStorage storage) { /** * Parses more advanced portions of the Item Syntax. - * + * * @param item The item to parse * @return The parsed string. (Can be the same, and should be if nothing found) */ @@ -1259,4 +1266,8 @@ public final String parseItemSyntax(String item) { public static String getWikiDomain() { return "https://craftbook.enginehub.org/en/3.x"; } + + public static TaskScheduler getScheduler() { + return scheduler; + } } \ No newline at end of file diff --git a/src/main/java/com/sk89q/craftbook/bukkit/MechanicListenerAdapter.java b/src/main/java/com/sk89q/craftbook/bukkit/MechanicListenerAdapter.java index db0bc2b51e..f16943a65a 100644 --- a/src/main/java/com/sk89q/craftbook/bukkit/MechanicListenerAdapter.java +++ b/src/main/java/com/sk89q/craftbook/bukkit/MechanicListenerAdapter.java @@ -95,7 +95,7 @@ public void onPlayerInteract(final PlayerInteractEvent event) { return; } else { signClickTimer.add(event.getPlayer().getName()); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> signClickTimer.remove(event.getPlayer().getName()), CraftBookPlugin.inst().getConfiguration().signClickTimeout); + CraftBookPlugin.getScheduler().runTaskLater(() -> signClickTimer.remove(event.getPlayer().getName()), CraftBookPlugin.inst().getConfiguration().signClickTimeout); } } SignClickEvent ev = new SignClickEvent(event.getPlayer(), action, event.getItem(), block, event.getBlockFace()); @@ -345,7 +345,7 @@ private static void handleDirectWireInput(int x, int y, int z, Block sourceBlock CraftBookPlugin.inst().getServer().getPluginManager().callEvent(event); if(CraftBookPlugin.inst().useLegacyCartSystem) { - CraftBookPlugin.server().getScheduler().runTask(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTask(() -> { try { CartMechanismBlocks cmb = CartMechanismBlocks.find(event.getBlock()); CartBlockRedstoneEvent ev = new CartBlockRedstoneEvent(event.getBlock(), event.getSource(), event.getOldCurrent(), event.getNewCurrent(), cmb, CartBlockMechanism.getCart(cmb.rail)); diff --git a/src/main/java/com/sk89q/craftbook/core/st/SelfTriggeringManager.java b/src/main/java/com/sk89q/craftbook/core/st/SelfTriggeringManager.java index c207f30ecb..c2f7552dfa 100644 --- a/src/main/java/com/sk89q/craftbook/core/st/SelfTriggeringManager.java +++ b/src/main/java/com/sk89q/craftbook/core/st/SelfTriggeringManager.java @@ -161,7 +161,7 @@ public void onChunkLoad(final ChunkLoadEvent event) { if (!EventUtil.passesFilter(event)) return; - CraftBookPlugin.server().getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> registerSelfTrigger(event.getChunk()), 2); + CraftBookPlugin.getScheduler().runTaskLater(() -> registerSelfTrigger(event.getChunk()), 2); } @EventHandler(priority = EventPriority.HIGH) diff --git a/src/main/java/com/sk89q/craftbook/mechanics/BetterLeads.java b/src/main/java/com/sk89q/craftbook/mechanics/BetterLeads.java index b50663c816..948b6173f8 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterLeads.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterLeads.java @@ -68,7 +68,7 @@ else if (typeName == null) if(event.getRightClicked() instanceof Creature && ((Creature) event.getRightClicked()).getTarget() != null && ((Creature) event.getRightClicked()).getTarget().equals(event.getPlayer())) ((Creature) event.getRightClicked()).setTarget(null); //Rescan for a new target. event.setCancelled(true); - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), () -> { if(!((LivingEntity) event.getRightClicked()).setLeashHolder(event.getPlayer())) { CraftBookPlugin.logDebugMessage("Failed to leash entity!", "betterleads.allowed-mobs"); } @@ -136,7 +136,7 @@ public void onHitchBreakRandomly(final HangingBreakEvent event) { if(amountConnected == 0) { //Still needs to be used by further plugins in the event. We wouldn't want bukkit complaining now, would we? - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), event.getEntity()::remove); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), event.getEntity()::remove); } } @@ -170,7 +170,7 @@ public void onHitchBreak(final HangingBreakByEntityEvent event) { if(!leadsHitchPersists && amountConnected == 0) { //Still needs to be used by further plugins in the event. We wouldn't want bukkit complaining now, would we? - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), event.getEntity()::remove); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), event.getEntity()::remove); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/BetterPhysics.java b/src/main/java/com/sk89q/craftbook/mechanics/BetterPhysics.java index 916e9d5b92..9a38111ace 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterPhysics.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterPhysics.java @@ -54,7 +54,7 @@ public void onBlockUpdate(BlockPhysicsEvent event) { private static void checkForPhysics(Block block) { if(FallingLadders.isValid(block)) { - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), new FallingLadders(block)); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), new FallingLadders(block)); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java index e52a49eb63..ab3f37ff84 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java @@ -22,6 +22,7 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; +import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Tag; @@ -304,7 +305,7 @@ public void superSticky(final Block trigger, final Piston piston, final ChangedS for (int p = 0; p < amount; p++) { final int fp = p; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { for (int x = 1; x <= fblock + 2; x++) { int i = x; if (x == 1 && !InventoryUtil.doesBlockHaveInventory(trigger.getRelative(piston.getFacing(), i)) && fp == 0) { @@ -316,7 +317,7 @@ public void superSticky(final Block trigger, final Piston piston, final ChangedS } for (Entity ent : trigger.getRelative(piston.getFacing(), i).getChunk().getEntities()) { if (EntityUtil.isEntityInBlock(ent, trigger.getRelative(piston.getFacing(), i))) { - ent.teleport(ent.getLocation().subtract(piston.getFacing().getModX() * movemod, piston.getFacing().getModY() * movemod, piston.getFacing().getModZ() * movemod)); + PaperLib.teleportAsync(ent, ent.getLocation().subtract(piston.getFacing().getModX() * movemod, piston.getFacing().getModY() * movemod, piston.getFacing().getModZ() * movemod)); } } copyData(trigger.getRelative(piston.getFacing(), i + 1), trigger.getRelative(piston.getFacing(), i)); @@ -343,7 +344,7 @@ public void superPush(final Block trigger, final Piston piston, ChangedSign sign final int fblock = block; for (int p = 0; p < amount; p++) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { for (int x = fblock + 2; x >= 1; x--) { Block offset = trigger.getRelative(piston.getFacing(), x); Block next = trigger.getRelative(piston.getFacing(), x + 1); @@ -352,7 +353,7 @@ public void superPush(final Block trigger, final Piston piston, ChangedSign sign if (next.getType() == Material.AIR) { for (Entity ent : next.getChunk().getEntities()) { if (EntityUtil.isEntityInBlock(ent, offset)) { - ent.teleport(ent.getLocation().add(piston.getFacing().getModX() * movemod, piston.getFacing().getModY() * movemod, piston.getFacing().getModZ() * movemod)); + PaperLib.teleportAsync(ent, ent.getLocation().add(piston.getFacing().getModX() * movemod, piston.getFacing().getModY() * movemod, piston.getFacing().getModZ() * movemod)); } } if(copyData(offset, next)) diff --git a/src/main/java/com/sk89q/craftbook/mechanics/BetterPlants.java b/src/main/java/com/sk89q/craftbook/mechanics/BetterPlants.java index d39793a17f..a55b747e35 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterPlants.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterPlants.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import com.sk89q.craftbook.AbstractCraftBookMechanic; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.util.BlockUtil; @@ -24,14 +25,14 @@ public class BetterPlants extends AbstractCraftBookMechanic { - private BukkitTask growthTask; + private MyScheduledTask growthTask; @Override public boolean enable() { if(fernFarming) { tickedWorlds.addAll(Bukkit.getWorlds()); - growthTask = Bukkit.getScheduler().runTaskTimer(CraftBookPlugin.inst(), new GrowthTicker(), 2L, 2L); + growthTask = CraftBookPlugin.getScheduler().runTaskTimer( new GrowthTicker(), 2L, 2L); } return fernFarming; //Only enable if a mech is enabled @@ -54,7 +55,7 @@ public void onBlockBreak(final BlockBreakEvent event) { && ((Bisected) event.getBlock().getBlockData()).getHalf() == Bisected.Half.TOP && event.getBlock().getRelative(0, -1, 0).getType() == Material.LARGE_FERN && ((Bisected) event.getBlock().getRelative(0, -1, 0).getBlockData()).getHalf() == Bisected.Half.BOTTOM) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { event.getBlock().getWorld().dropItemNaturally(BlockUtil.getBlockCentre(event.getBlock()), new ItemStack(Material.FERN)); event.getBlock().getRelative(0, -1, 0).setType(Material.FERN); }, 2L); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Chair.java b/src/main/java/com/sk89q/craftbook/mechanics/Chair.java index f53e505269..564edde2d0 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Chair.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Chair.java @@ -22,6 +22,7 @@ import com.sk89q.worldedit.world.block.BlockCategories; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.item.ItemTypes; +import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.attribute.Attribute; @@ -96,9 +97,9 @@ private void addChair(final Player player, Block block, final Location chairLoc) // Attach the player to said arrow. final Entity far = ar; if(ar.isEmpty() && isNew) { - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), () -> { if (chairLoc != null) - player.teleport(chairLoc); + PaperLib.teleportAsync(player, chairLoc); far.addPassenger(player); }); } else if (ar.isEmpty()) { @@ -125,8 +126,8 @@ private void removeChair(final Player player) { ent.eject(); player.eject(); ent.remove(); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { - player.teleport(chairData.playerExitPoint); + CraftBookPlugin.getScheduler().runTaskLater(() -> { + PaperLib.teleportAsync(player, chairData.playerExitPoint); player.setSneaking(false); }, 5L); } @@ -290,7 +291,7 @@ public void run() { if (p == null || p.isDead() || !p.isValid()) { ChairData data = chairs.remove(pl.getKey()); if (data != null && data.chairEntity != null) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { data.chairEntity.eject(); data.chairEntity.remove(); }, 5); @@ -328,7 +329,7 @@ public boolean enable () { chairs = new ConcurrentHashMap<>(); - Bukkit.getScheduler().runTaskTimer(CraftBookPlugin.inst(), new ChairChecker(), 20L, 20L); + CraftBookPlugin.getScheduler().runTaskTimer(new ChairChecker(), 20L, 20L); try { Class.forName("com.comphenix.protocol.events.PacketListener"); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java index 5c92aa66ea..3bdedeeb76 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java @@ -16,6 +16,7 @@ package com.sk89q.craftbook.mechanics; +import com.github.Anon8281.universalScheduler.UniversalRunnable; import com.sk89q.craftbook.AbstractCraftBookMechanic; import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.CraftBookPlayer; @@ -31,6 +32,7 @@ import com.sk89q.craftbook.util.events.SourcedBlockRedstoneEvent; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.bukkit.BukkitAdapter; +import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -50,7 +52,6 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import java.util.HashMap; @@ -380,10 +381,10 @@ public void teleportPlayer(final CraftBookPlayer player, final Block floor, fina // Ejecting the player out of the vehicle will move // the player to the side, so we have to correct this. - bukkitPlayer.teleport(lastLocation); + PaperLib.teleportAsync(bukkitPlayer, lastLocation); } - new BukkitRunnable(){ + new UniversalRunnable(){ @Override public void run () { @@ -440,7 +441,7 @@ public void run () { // moving down into solid blocks works just fine. p.setVelocity(new Vector(0, -elevatorMoveSpeed, 0)); if (isSolidBlockOccludingMovement(p, playerVerticalMovement)) - p.teleport(p.getLocation().add(0, -elevatorMoveSpeed, 0)); + PaperLib.teleportAsync(p, p.getLocation().add(0, -elevatorMoveSpeed, 0)); break; default: // Player is not moving @@ -452,7 +453,7 @@ public void run () { } private void finishElevatingPlayer(Player p) { - p.teleport(newLocation); + PaperLib.teleportAsync(p, newLocation); teleportFinish(player, destination, shift); disableFlightMode(p); setPassengerIfPlayerWasInVehicle(player); @@ -465,11 +466,11 @@ private void finishElevatingPlayer(Player p) { if (player.isInsideVehicle()) { Entity teleportedVehicle = LocationUtil.ejectAndTeleportPlayerVehicle(player, newLocation); - player.setPosition(BukkitAdapter.adapt(newLocation).toVector(), newLocation.getPitch(), newLocation.getYaw()); + player.teleport(BukkitAdapter.adapt(newLocation)); LocationUtil.addVehiclePassengerDelayed(teleportedVehicle, player); } else { - player.setPosition(BukkitAdapter.adapt(newLocation).toVector(), newLocation.getPitch(), newLocation.getYaw()); + player.teleport(BukkitAdapter.adapt(newLocation)); } teleportFinish(player, destination, shift); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/HiddenSwitch.java b/src/main/java/com/sk89q/craftbook/mechanics/HiddenSwitch.java index 729d29abf8..bbe595686d 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/HiddenSwitch.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/HiddenSwitch.java @@ -180,7 +180,7 @@ private static void toggleSwitches(Block sign, BlockFace direction) { checkBlock.setBlockData(powerable); powerable.setPowered(false); Runnable turnOff = () -> checkBlock.setBlockData(powerable); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), turnOff, Tag.WOODEN_BUTTONS.getValues().contains(checkBlock.getType()) ? 30L : 20L); + CraftBookPlugin.getScheduler().runTaskLater(turnOff, Tag.WOODEN_BUTTONS.getValues().contains(checkBlock.getType()) ? 30L : 20L); } } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Payment.java b/src/main/java/com/sk89q/craftbook/mechanics/Payment.java index 4b74896629..488f23ec9d 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Payment.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Payment.java @@ -71,7 +71,7 @@ public void onRightClick(SignClickEvent event) { Block redstoneItem = back.getRelative(bface); player.print(player.translate("mech.pay.success") + money + ' ' + CraftBookPlugin.plugins.getEconomy().getName()); if (ICUtil.setState(redstoneItem, true, back)) - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), new TurnOff(redstoneItem, back), 20L); + CraftBookPlugin.getScheduler().runTaskLater(new TurnOff(redstoneItem, back), 20L); } else { CraftBookPlugin.plugins.getEconomy().depositPlayer(event.getPlayer().getName(), money); player.printError("mech.pay.failed-to-pay"); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Snow.java b/src/main/java/com/sk89q/craftbook/mechanics/Snow.java index bf9431e8ab..6a9144a502 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Snow.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Snow.java @@ -72,7 +72,7 @@ public boolean enable() { if(!isChunkUseful) continue; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowChunkHandler(chunk), getRandomDelay() * 20L); + CraftBookPlugin.getScheduler().runTaskLater(new SnowChunkHandler(chunk), getRandomDelay() * 20L); } } } @@ -129,7 +129,7 @@ public void onSnowballHit(ProjectileHitEvent event) { CraftBookPlayer player = CraftBookPlugin.inst().wrapPlayer((Player) event.getEntity().getShooter()); if (!player.hasPermission("craftbook.mech.snow.place")) return; } - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), new SnowHandler(block, 1)); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), new SnowHandler(block, 1)); } } @@ -142,7 +142,7 @@ public void onBlockPlace(BlockPlaceEvent event) { if(!EventUtil.passesFilter(event)) return; - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), new SnowHandler(event.getBlock(), 0)); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), new SnowHandler(event.getBlock(), 0)); } @EventHandler(priority = EventPriority.HIGH) @@ -178,7 +178,7 @@ else if(levelled.getLayers() > levelled.getMinimumLayers()) if (CraftBookPlugin.inst().getConfiguration().pedanticBlockChecks && !ProtectionUtil .canBuild(event.getPlayer(), event.getPlayer().getLocation(), false)) return; - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), new SnowHandler(event.getTo().getBlock(), -1)); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), new SnowHandler(event.getTo().getBlock(), -1)); } } } @@ -200,7 +200,7 @@ public void onBlockBreak(BlockBreakEvent event) { event.getBlock().getWorld().dropItemNaturally(BlockUtil.getBlockCentre(event.getBlock()), stack); if(realistic) { - for(BlockFace dir : UPDATE_FACES) Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(event.getBlock().getRelative(dir), 0, event.getBlock().getLocation().toVector().toBlockVector()), animationTicks); + for(BlockFace dir : UPDATE_FACES) CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(event.getBlock().getRelative(dir), 0, event.getBlock().getLocation().toVector().toBlockVector()), animationTicks); } } } @@ -213,7 +213,7 @@ public void onPhysicsUpdate(BlockPhysicsEvent event) { if(!EventUtil.passesFilter(event)) return; if((event.getBlock().getType() == Material.SNOW || event.getBlock().getType() == Material.SNOW_BLOCK) && CraftBookPlugin.inst().getRandom().nextInt(10) == 0) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(event.getBlock(), 0), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(event.getBlock(), 0), animationTicks); } @EventHandler(priority = EventPriority.HIGH) @@ -237,7 +237,7 @@ public void onChunkLoad(ChunkLoadEvent event) { if(!isChunkUseful) return; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowChunkHandler(event.getChunk()), getRandomDelay() * (event.getWorld().hasStorm() ? 20L : 10L)); + CraftBookPlugin.getScheduler().runTaskLater(new SnowChunkHandler(event.getChunk()), getRandomDelay() * (event.getWorld().hasStorm() ? 20L : 10L)); } private class SnowChunkHandler implements Runnable { @@ -266,7 +266,7 @@ public void run () { || isReplacable(highest)) { if (highest.getWorld().hasStorm() && highest.getType() != Material.ICE) { if (highest.getTemperature() < 0.15) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(highest, 1), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(highest, 1), animationTicks); } } else if (meltMode) { if (highest.getType() == Material.SNOW && meltPartial) { @@ -275,7 +275,7 @@ public void run () { } } if (highest.getTemperature() > 0.05) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(highest, -1), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(highest, -1), animationTicks); } } } @@ -285,7 +285,7 @@ public void run () { delay *= 50; } - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), this, delay); + CraftBookPlugin.getScheduler().runTaskLater(this, delay); } } @@ -331,12 +331,12 @@ public void run () { if(decreaseSnow(block, true)) amount++; if(amount < 0) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(block, amount), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(block, amount), animationTicks); } else { if(increaseSnow(block, realistic)) amount--; if(amount > 0) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(block, amount), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(block, amount), animationTicks); } } @@ -364,7 +364,7 @@ boolean disperse(Block snow) { if(queue.contains(new SnowBlock(block.getWorld().getName(), block.getX(), block.getY(), block.getZ()))) continue; if(block.getType() == Material.SNOW && snow.getType() == Material.SNOW && block.getData() >= snow.getData() && dir != BlockFace.DOWN && dir != BlockFace.UP) { if(block.getData() > snow.getData()+1) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(block, 0, snow.getLocation().toVector().toBlockVector()), + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(block, 0, snow.getLocation().toVector().toBlockVector()), animationTicks); } continue; @@ -447,7 +447,7 @@ boolean increaseSnow(Block snow, boolean disperse) { if(isReplacable(snow)) { snow.setType(Material.SNOW, false); if(disperse) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(snow, 0, from), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(snow, 0, from), animationTicks); return true; } else return false; @@ -465,7 +465,7 @@ boolean increaseSnow(Block snow, boolean disperse) { if(allowed) { snow.setType(Material.SNOW_BLOCK); if(disperse) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(snow, 0, from), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(snow, 0, from), animationTicks); return true; } else return false; @@ -477,7 +477,7 @@ boolean increaseSnow(Block snow, boolean disperse) { } if(disperse) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(snow, 0, from), animationTicks); + CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(snow, 0, from), animationTicks); return true; } @@ -510,7 +510,7 @@ boolean decreaseSnow(Block snow, boolean disperse) { snow.setBlockData(snowData); } if(disperse && realistic) { - for(BlockFace dir : UPDATE_FACES) Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SnowHandler(snow.getRelative(dir), 0, snow.getLocation().toVector().toBlockVector()), + for(BlockFace dir : UPDATE_FACES) CraftBookPlugin.getScheduler().runTaskLater(new SnowHandler(snow.getRelative(dir), 0, snow.getLocation().toVector().toBlockVector()), animationTicks); } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Sponge.java b/src/main/java/com/sk89q/craftbook/mechanics/Sponge.java index 0b69ba426f..287ffe778a 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Sponge.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Sponge.java @@ -68,7 +68,7 @@ public void onBlockBreak(BlockBreakEvent event) { if(!EventUtil.passesFilter(event)) return; - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), () -> addWater(event.getBlock())); + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), () -> addWater(event.getBlock())); } @EventHandler(priority = EventPriority.HIGH) diff --git a/src/main/java/com/sk89q/craftbook/mechanics/TreeLopper.java b/src/main/java/com/sk89q/craftbook/mechanics/TreeLopper.java index 9a4d52752a..135fb230ad 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/TreeLopper.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/TreeLopper.java @@ -83,7 +83,7 @@ public void onBlockBreak(BlockBreakEvent event) { } if(species != null && planted < maxSaplings(species)) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SaplingPlanter(usedBlock, species), 2); + CraftBookPlugin.getScheduler().runTaskLater(new SaplingPlanter(usedBlock, species), 2); planted ++; } @@ -145,7 +145,7 @@ else if (data instanceof Tree) } block.breakNaturally(event.getPlayer().getItemInHand()); if(species != null && planted < maxSaplings(species)) { - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new SaplingPlanter(block, species), 2); + CraftBookPlugin.getScheduler().runTaskLater(new SaplingPlanter(block, species), 2); planted ++; } visitedLocations.add(block.getLocation()); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Bridge.java b/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Bridge.java index df9da0893c..b481abf1ba 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Bridge.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Bridge.java @@ -171,7 +171,7 @@ public void onBlockRedstoneChange(final SourcedBlockRedstoneEvent event) { if (!SignUtil.isSign(event.getBlock())) return; if (!isApplicableSign(CraftBookBukkitUtil.toChangedSign(event.getBlock()).getLine(1))) return; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { try { flipState(event.getBlock(), null); } catch (InvalidMechanismException e) { diff --git a/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Door.java b/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Door.java index 95b7a248d4..335512bd4c 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Door.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Door.java @@ -170,7 +170,7 @@ public void onBlockRedstoneChange(final SourcedBlockRedstoneEvent event) { if (!SignUtil.isSign(event.getBlock())) return; if (!isApplicableSign(CraftBookBukkitUtil.toChangedSign(event.getBlock()).getLine(1))) return; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { try { flipState(event.getBlock(), null); } catch (InvalidMechanismException e) { diff --git a/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Gate.java b/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Gate.java index b8da38e08f..6d8f04f196 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Gate.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/area/simple/Gate.java @@ -335,7 +335,7 @@ public void onBlockRedstoneChange(final SourcedBlockRedstoneEvent event) { final ChangedSign sign = CraftBookBukkitUtil.toChangedSign(event.getBlock()); if (!sign.getLine(1).equals("[Gate]") && !sign.getLine(1).equals("[DGate]")) return; - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), + CraftBookPlugin.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> toggleGates(null, event.getBlock(), sign.getLine(1).equals("[DGate]"), event.getNewCurrent() > 0), 2); } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/boat/EmptyDecay.java b/src/main/java/com/sk89q/craftbook/mechanics/boat/EmptyDecay.java index 96c7cf40d9..92327db99e 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/boat/EmptyDecay.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/boat/EmptyDecay.java @@ -24,7 +24,7 @@ public void onVehicleExit(VehicleExitEvent event) { if (!(vehicle instanceof Boat)) return; - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), new Decay((Boat) vehicle), delay); + CraftBookPlugin.getScheduler().runTaskLater(new Decay((Boat) vehicle), delay); } @EventHandler(priority = EventPriority.HIGH) @@ -39,7 +39,7 @@ public void onChunkLoad(ChunkLoadEvent event) { continue; if (!ent.isEmpty()) continue; - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), new Decay((Boat) ent), delay); + CraftBookPlugin.getScheduler().runTaskLater(new Decay((Boat) ent), delay); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/boat/ExitRemover.java b/src/main/java/com/sk89q/craftbook/mechanics/boat/ExitRemover.java index f16c8c5689..81d8baaeea 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/boat/ExitRemover.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/boat/ExitRemover.java @@ -24,7 +24,7 @@ public void onVehicleExit(VehicleExitEvent event) { if (!(event.getVehicle() instanceof Boat)) return; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), new BoatRemover(event.getExited(), (Boat) event.getVehicle()), 2L); + CraftBookPlugin.getScheduler().runTaskLater(new BoatRemover(event.getExited(), (Boat) event.getVehicle()), 2L); } class BoatRemover implements Runnable { diff --git a/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java b/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java index 0a3c9a2fa1..17e4861f4e 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics.cauldron; +import com.github.Anon8281.universalScheduler.UniversalRunnable; import com.sk89q.craftbook.AbstractCraftBookMechanic; import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.CraftBookPlayer; @@ -15,6 +16,7 @@ import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.util.HandSide; +import io.papermc.lib.PaperLib; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; @@ -156,7 +158,7 @@ public void onItemDrop(final PlayerDropItemEvent event) { new ItemTracker(event.getItemDrop()).runTaskTimer(CraftBookPlugin.inst(), 1L, 1L); } - public class ItemTracker extends BukkitRunnable { + public class ItemTracker extends UniversalRunnable { private Location lastLocation; private Item item; @@ -196,7 +198,7 @@ else if(isCauldron(item.getLocation().getBlock().getRelative(BlockFace.DOWN))) return true; } - public class CauldronItemTracker extends BukkitRunnable { + public class CauldronItemTracker extends UniversalRunnable { private Item item; private Block block; @@ -219,9 +221,8 @@ public void run () { cancel(); return; } - - item.teleport(BlockUtil.getBlockCentre(block).add(0, 0.5, 0)); - item.setVelocity(new Vector(0,0.01,0)); + PaperLib.teleportAsync(item, BlockUtil.getBlockCentre(block).add(0, 0.5, 0)); + item.setVelocity(new Vector(0, 0.01, 0)); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/drops/legacy/LegacyCustomDrops.java b/src/main/java/com/sk89q/craftbook/mechanics/drops/legacy/LegacyCustomDrops.java index a9708211ae..99ed3ac363 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/drops/legacy/LegacyCustomDrops.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/drops/legacy/LegacyCustomDrops.java @@ -80,7 +80,7 @@ public boolean enable () { if(!blockDefinitions.exists() && !mobDefinitions.exists()) return true; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { customDrops = new LegacyCustomDropManager(CraftBookPlugin.inst().getDataFolder()); if(blockDefinitions.exists()) blockDefinitions.delete(); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/ICMechanic.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/ICMechanic.java index 007eb1f01a..0c632937d2 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/ICMechanic.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/ICMechanic.java @@ -241,7 +241,7 @@ public void onBlockRedstoneChange(final SourcedBlockRedstoneEvent event) { }; // FIXME: these should be registered with a global scheduler so we can end up with one runnable actually // running per set of inputs in a given time window. - CraftBookPlugin.server().getScheduler().runTaskLater(CraftBookPlugin.inst(), runnable, 2); + CraftBookPlugin.getScheduler().runTaskLater(runnable, 2); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Delayer.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Delayer.java index 5cc7b5816a..ae18709fed 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Delayer.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Delayer.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.scheduler.BukkitTask; @@ -18,7 +19,7 @@ */ public class Delayer extends AbstractIC { - private BukkitTask taskId; + private MyScheduledTask taskId; private long delay = 1; private boolean tickDelay; private boolean stayOnLow; @@ -54,7 +55,7 @@ public void trigger(final ChipState chip) { long tdelay = delay * 20; if (tickDelay) tdelay = delay; if (chip.getInput(0)) { - taskId = Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> chip.setOutput(0, true), tdelay); + taskId = CraftBookPlugin.getScheduler().runTaskLater(() -> chip.setOutput(0, true), tdelay); } else { if(taskId != null && !stayOnLow) taskId.cancel(); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/LowDelayer.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/LowDelayer.java index 472730311a..0715b9cab9 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/LowDelayer.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/LowDelayer.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.scheduler.BukkitTask; @@ -18,7 +19,7 @@ */ public class LowDelayer extends AbstractIC { - private BukkitTask taskId; + private MyScheduledTask taskId; public LowDelayer(Server server, ChangedSign block, ICFactory factory) { @@ -46,7 +47,7 @@ public void trigger(final ChipState chip) { taskId.cancel(); chip.setOutput(0, true); } else { - taskId = Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + taskId = CraftBookPlugin.getScheduler().runTaskLater(() -> { if (!chip.getInput(0)) { chip.setOutput(0, false); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotDelayer.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotDelayer.java index aa48f59e1a..6c4c8683b4 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotDelayer.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotDelayer.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.scheduler.BukkitTask; @@ -18,7 +19,7 @@ */ public class NotDelayer extends AbstractIC { - private BukkitTask taskId; + private MyScheduledTask taskId; public NotDelayer(Server server, ChangedSign block, ICFactory factory) { @@ -42,7 +43,7 @@ public void trigger(final ChipState chip) { long delay = Long.parseLong(getSign().getLine(2)); if (chip.getInput(0)) { - taskId = Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + taskId = CraftBookPlugin.getScheduler().runTaskLater(() -> { if (chip.getInput(0)) { chip.setOutput(0, false); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotLowDelayer.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotLowDelayer.java index 8ceeee1fbf..9b54298a76 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotLowDelayer.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/NotLowDelayer.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.scheduler.BukkitTask; @@ -18,7 +19,7 @@ */ public class NotLowDelayer extends AbstractIC { - private BukkitTask taskId; + private MyScheduledTask taskId; public NotLowDelayer(Server server, ChangedSign block, ICFactory factory) { @@ -46,7 +47,7 @@ public void trigger(final ChipState chip) { taskId.cancel(); chip.setOutput(0, false); } else { - taskId = Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + taskId = CraftBookPlugin.getScheduler().runTaskLater(() -> { if (!chip.getInput(0)) { chip.setOutput(0, true); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Pulser.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Pulser.java index 1703ad5944..1948195070 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Pulser.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/logic/Pulser.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import org.bukkit.Bukkit; import org.bukkit.Server; @@ -25,7 +26,7 @@ public class Pulser extends AbstractIC { private int pulseCount; private int pauseLength; - private int taskId; + private MyScheduledTask taskId; private boolean running; public Pulser(Server server, ChangedSign block, ICFactory factory) { @@ -86,15 +87,14 @@ private void startThread(ChipState chip) { if (running) return; // start a pulse task and run it every tick after the given delay // save the given task id - taskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(CraftBookPlugin.inst(), new PulseTask(chip, + taskId = CraftBookPlugin.getScheduler().scheduleSyncRepeatingTask(new PulseTask(chip, pulseLength, pulseCount, pauseLength), startDelay, 1L); running = true; } private void stopThread() { - - Bukkit.getScheduler().cancelTask(taskId); + taskId.cancel(); running = false; } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/BlockReplacer.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/BlockReplacer.java index ec8987da8a..da97e4e4ea 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/BlockReplacer.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/blocks/BlockReplacer.java @@ -80,12 +80,12 @@ public boolean replaceBlocks(final boolean on, final Block block, final Set replaceBlocks(on, b, traversedBlocks), delay); + CraftBookPlugin.getScheduler().runTaskLater(() -> replaceBlocks(on, b, traversedBlocks), delay); } else if (offBlock.equalsFuzzy(bState)) { if(on) { b.setBlockData(BukkitAdapter.adapt(onBlock), physics); } - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> replaceBlocks(on, b, traversedBlocks), delay); + CraftBookPlugin.getScheduler().runTaskLater(() -> replaceBlocks(on, b, traversedBlocks), delay); } } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/entity/TeleportReciever.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/entity/TeleportReciever.java index e060acc780..5d718c7c41 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/entity/TeleportReciever.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/entity/TeleportReciever.java @@ -8,6 +8,7 @@ import com.sk89q.craftbook.mechanics.ic.IC; import com.sk89q.craftbook.mechanics.ic.ICFactory; import com.sk89q.craftbook.util.Tuple2; +import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.block.Block; @@ -73,7 +74,7 @@ public boolean check() { while(block.getType().isSolid()) block = block.getRelative(0,1,0); - p.teleport(block.getLocation().add(0.5, 0.5, 0.5)); + PaperLib.teleportAsync(p, block.getLocation().add(0.5, 0.5, 0.5)); CraftBookPlugin.inst().wrapPlayer(p).print(welcome); TeleportTransmitter.lastKnownLocations.put(band, block.getLocation()); return true; diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/items/ItemFan.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/items/ItemFan.java index 07e1f076d7..edbb40f8f4 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/items/ItemFan.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/items/ItemFan.java @@ -1,5 +1,9 @@ package com.sk89q.craftbook.mechanics.ic.gates.world.items; +import com.sk89q.craftbook.ChangedSign; +import com.sk89q.craftbook.mechanics.ic.*; +import com.sk89q.craftbook.util.ItemUtil; +import io.papermc.lib.PaperLib; import org.bukkit.Server; import org.bukkit.block.Block; import org.bukkit.entity.Item; @@ -62,7 +66,7 @@ public boolean push() { Block aboveBlock = getBackBlock().getRelative(0, 1, 0); for (Item item : ItemUtil.getItemsAtBlock(aboveBlock)) { - item.teleport(item.getLocation().add(0, force, 0)); + PaperLib.teleportAsync(item, item.getLocation().add(0, force, 0)); returnValue = true; } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/FlameThrower.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/FlameThrower.java index 72a749b06f..95b6d43c25 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/FlameThrower.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/FlameThrower.java @@ -86,7 +86,7 @@ public void sendFlames(final boolean make) { for (int i = 0; i < distance; i++) { final int fi = i; - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { Block fire = block.getRelative(direction, 2+fi); if (make) { diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/Melody.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/Melody.java index 6c24f4df04..75d8758659 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/Melody.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/Melody.java @@ -141,7 +141,7 @@ public void trigger(ChipState chip) { pp.sendMessage(ChatColor.YELLOW + "Playing " + midiName + "..."); } if(!hasRun) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), player); + CraftBookPlugin.getScheduler().runTaskAsynchronously(getPlugin(), player); hasRun = true; } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/ProgrammableFireworkShow.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/ProgrammableFireworkShow.java index 048caf9d01..da08fb0885 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/ProgrammableFireworkShow.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/ProgrammableFireworkShow.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; import org.bukkit.Bukkit; import org.bukkit.Color; @@ -144,7 +145,7 @@ public class FireworkShowHandler { List lines = new ArrayList<>(); - BukkitTask task; + MyScheduledTask task; boolean fyrestone = false; @@ -197,7 +198,7 @@ public void startShow() { show = new BasicShowInterpreter(); else show = new FyrestoneInterpreter(); - task = Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), show); + task = CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), show); } private class FyrestoneInterpreter implements ShowInterpreter { @@ -297,7 +298,7 @@ else if (args[1].equalsIgnoreCase("star")) FyrestoneInterpreter nshow = new FyrestoneInterpreter(effects,currentBuilding,location,duration,builder); nshow.setRunning(isRunning); - task = Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), nshow, Long.parseLong(line.replace("wait ", ""))); + task = CraftBookPlugin.getScheduler().runTaskLater(nshow, Long.parseLong(line.replace("wait ", ""))); show = nshow; return; } else if (line.startsWith("sound ")) { @@ -353,7 +354,7 @@ else if (args[1].equalsIgnoreCase("star")) meta.setPower((int) duration * 2); firework.setFireworkMeta(meta); if(preciseDuration) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), firework::detonate, (long) (duration*10)); + CraftBookPlugin.getScheduler().runTaskLater(firework::detonate, (long) (duration*10)); } } } @@ -392,7 +393,7 @@ public void run() { if (bits[0].equalsIgnoreCase("wait")) { BasicShowInterpreter show = new BasicShowInterpreter(); - task = Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), show, + task = CraftBookPlugin.getScheduler().runTaskLater(show, Long.parseLong(bits[1])); return; } else if (bits[0].equalsIgnoreCase("launch")) { diff --git a/src/main/java/com/sk89q/craftbook/mechanics/items/CommandItems.java b/src/main/java/com/sk89q/craftbook/mechanics/items/CommandItems.java index ab23a42f39..0cd8bbe07d 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/items/CommandItems.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/items/CommandItems.java @@ -144,7 +144,7 @@ public boolean enable() { CraftBookPlugin.logger().info("Successfully added " + amount + " CommandItems!"); if(definitions.size() > 0) { - Bukkit.getScheduler().runTaskTimer(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskTimer( () -> { Iterator, Integer>> iterator = cooldownPeriods.entrySet().iterator(); while(iterator.hasNext()) { @@ -156,7 +156,7 @@ public boolean enable() { iterator.remove(); } }, 0, 20); - Bukkit.getScheduler().runTaskTimer(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskTimer( () -> { for(Player player : Bukkit.getOnlinePlayers()) { if(player.getInventory().getItemInMainHand().getType() != Material.AIR) performCommandItems(player.getInventory().getItemInMainHand(), player, null); @@ -272,7 +272,7 @@ public void onProjectileLaunch(final ProjectileLaunchEvent event) { final ItemStack item = ((Player) event.getEntity().getShooter()).getItemInHand(); final Player shooter = (Player) event.getEntity().getShooter(); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> performCommandItems(item, shooter, event), 5L); + CraftBookPlugin.getScheduler().runTaskLater(() -> performCommandItems(item, shooter, event), 5L); } @EventHandler(priority=EventPriority.HIGH) @@ -287,7 +287,7 @@ public void onProjectileHit(final ProjectileHitEvent event) { final ItemStack item = ((Player) event.getEntity().getShooter()).getItemInHand(); final Player shooter = (Player) event.getEntity().getShooter(); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> performCommandItems(item, shooter, event), 5L); + CraftBookPlugin.getScheduler().runTaskLater(() -> performCommandItems(item, shooter, event), 5L); } @EventHandler(priority=EventPriority.HIGH) @@ -375,7 +375,7 @@ public void onPlayerChat(AsyncPlayerChatEvent event) { if(!doChat || event.getPlayer().getItemInHand() == null) return; - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), () -> performCommandItems(event.getPlayer().getItemInHand(), event.getPlayer(), event)); } @@ -526,7 +526,7 @@ public void performCommandItems(ItemStack item, final Player player, final Event cooldownPeriods.put(new Tuple2<>(lplayer.getName(), comdef.name), comdef.cooldown); if(comdef.delayedCommands.length > 0) - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { for(String command : comdef.delayedCommands) doCommand(command, event, comdef, player); }, comdef.delay); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/minecart/EmptyDecay.java b/src/main/java/com/sk89q/craftbook/mechanics/minecart/EmptyDecay.java index 0bcf35d2d7..e460c40dab 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/minecart/EmptyDecay.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/minecart/EmptyDecay.java @@ -24,7 +24,7 @@ public void onVehicleExit(VehicleExitEvent event) { if (!(vehicle instanceof RideableMinecart)) return; - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), new Decay((RideableMinecart) vehicle), delay); + CraftBookPlugin.getScheduler().runTaskLater(new Decay((RideableMinecart) vehicle), delay); } @EventHandler(priority = EventPriority.HIGH) @@ -39,7 +39,7 @@ public void onChunkLoad(ChunkLoadEvent event) { continue; if (!ent.isEmpty()) continue; - CraftBookPlugin.inst().getServer().getScheduler().runTaskLater(CraftBookPlugin.inst(), new Decay((RideableMinecart) ent), delay); + CraftBookPlugin.getScheduler().runTaskLater(new Decay((RideableMinecart) ent), delay); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/minecart/ExitRemover.java b/src/main/java/com/sk89q/craftbook/mechanics/minecart/ExitRemover.java index 87de0a935f..94a2520d41 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/minecart/ExitRemover.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/minecart/ExitRemover.java @@ -32,7 +32,7 @@ public void onVehicleExit(final VehicleExitEvent event) { return; } - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { if (event.getVehicle().isDead() || !event.getVehicle().isValid()) return; diff --git a/src/main/java/com/sk89q/craftbook/mechanics/minecart/TemporaryCart.java b/src/main/java/com/sk89q/craftbook/mechanics/minecart/TemporaryCart.java index 8c32c344a2..d65b9830e5 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/minecart/TemporaryCart.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/minecart/TemporaryCart.java @@ -79,7 +79,7 @@ public void onPlayerDismount(final VehicleExitEvent event) { if(!minecarts.contains(event.getVehicle())) return; - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), event.getVehicle()::remove, 2L); + CraftBookPlugin.getScheduler().runTaskLater(event.getVehicle()::remove, 2L); } @EventHandler(priority = EventPriority.HIGH) @@ -91,7 +91,7 @@ public void onVehicleDestroy(final VehicleDestroyEvent event) { if (minecarts.contains(event.getVehicle())) { event.setCancelled(true); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), event.getVehicle()::remove, 2L); + CraftBookPlugin.getScheduler().runTaskLater(event.getVehicle()::remove, 2L); } } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartEjector.java b/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartEjector.java index 1289eebaae..803d8a7642 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartEjector.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartEjector.java @@ -7,6 +7,7 @@ import com.sk89q.craftbook.util.SignUtil; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.world.block.BlockTypes; +import io.papermc.lib.PaperLib; import org.bukkit.block.Block; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; @@ -40,7 +41,7 @@ public void onVehicleImpact(CartBlockImpactEvent event) { // the cart also comes to a dead halt at the time of writing, and i have no idea why. List passengers = event.getMinecart().getPassengers(); event.getMinecart().eject(); - passengers.forEach(ent -> ent.teleport(CraftBookBukkitUtil.center(ejectTarget.getLocation()))); + passengers.forEach(ent -> PaperLib.teleportAsync(ent, CraftBookBukkitUtil.center(ejectTarget.getLocation()))); // notice! // if a client tries to board a cart immediately before it crosses an ejector, diff --git a/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartStation.java b/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartStation.java index a094bd5c79..22d34eb6bc 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartStation.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/minecart/blocks/CartStation.java @@ -12,6 +12,7 @@ import com.sk89q.craftbook.util.SignUtil; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.world.block.BlockTypes; +import io.papermc.lib.PaperLib; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -64,7 +65,7 @@ public void stationInteraction(Minecart cart, CartMechanismBlocks blocks) { // recenter it Location l = blocks.rail.getLocation().add(0.5, 0.5, 0.5); if (!cart.getLocation().equals(l)) { - cart.teleport(l); + PaperLib.teleportAsync(cart, l); } // recentering and parking almost completely prevents more than one cart from getting onto the same // station. @@ -113,7 +114,7 @@ public void onVehicleEnter(CartBlockEnterEvent event) { // recenter it Location l = event.getBlocks().rail.getLocation().add(0.5, 0.5, 0.5); if (!event.getMinecart().getLocation().equals(l)) { - event.getMinecart().teleport(l); + PaperLib.teleportAsync(event.getMinecart(), l); } // recentering and parking almost completely prevents more than one cart from getting onto the same // station. diff --git a/src/main/java/com/sk89q/craftbook/util/CartUtil.java b/src/main/java/com/sk89q/craftbook/util/CartUtil.java index 9eef90c2db..99080348f7 100644 --- a/src/main/java/com/sk89q/craftbook/util/CartUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/CartUtil.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.util; +import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -62,9 +63,9 @@ else if(type == EntityType.COMMAND_BLOCK_MINECART) { if (!passengers.isEmpty()) { cart.eject(); for (Entity passenger : passengers) { - passenger.teleport(destination); + PaperLib.teleportAsync(passenger, destination); } - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTask(() -> { for (Entity passenger : passengers) { toCart.addPassenger(passenger); passenger.setVelocity(cart.getVelocity()); diff --git a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java index cbc45c44cf..cc4fbf90a0 100644 --- a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java @@ -1,11 +1,13 @@ package com.sk89q.craftbook.util; +import com.github.Anon8281.universalScheduler.UniversalRunnable; import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.CraftBookPlayer; import com.sk89q.craftbook.bukkit.BukkitCraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; import com.sk89q.worldedit.math.Vector3; +import io.papermc.lib.PaperLib; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.Material; @@ -339,14 +341,14 @@ public static Entity ejectAndTeleportPlayerVehicle(CraftBookPlayer player, Locat // Vehicle must eject the passenger first, // otherwise vehicle.teleport() will not have any effect. vehicle.eject(); - vehicle.teleport(newLocation); + PaperLib.teleportAsync(vehicle, newLocation); return vehicle; } /** * Adds the player to the vehicle. Execution is delayed - * by six ticks through a {@link BukkitRunnable} because + * by six ticks through a {@link UniversalRunnable} because * it doesn't work otherwise. * * @param vehicle The vehicle that will set the player as a passenger. @@ -365,7 +367,7 @@ public static void addVehiclePassengerDelayed(Entity vehicle, CraftBookPlayer pl // vehicle.teleport() seems to have a delay. Calling vehicle.setPassenger() // without the delayed runnable will not set the passenger. - new BukkitRunnable(){ + new UniversalRunnable(){ @Override public void run () { vehicle.addPassenger(bukkitPlayer); diff --git a/src/main/java/com/sk89q/craftbook/util/jinglenote/Playlist.java b/src/main/java/com/sk89q/craftbook/util/jinglenote/Playlist.java index 58e0ee0bba..ec16501a44 100644 --- a/src/main/java/com/sk89q/craftbook/util/jinglenote/Playlist.java +++ b/src/main/java/com/sk89q/craftbook/util/jinglenote/Playlist.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.util.jinglenote; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; import com.sk89q.craftbook.mechanics.ic.ICManager; @@ -29,7 +30,7 @@ public class Playlist { private List lines = new ArrayList<>(); - private BukkitTask task; + private MyScheduledTask task; protected PlaylistInterpreter show = new PlaylistInterpreter(); @@ -79,7 +80,7 @@ public void startPlaylist() { if (task != null) task.cancel(); show = new PlaylistInterpreter(); - task = Bukkit.getScheduler().runTaskAsynchronously(CraftBookPlugin.inst(), show); + task = CraftBookPlugin.getScheduler().runTaskAsynchronously(CraftBookPlugin.inst(), show); } public void stopPlaylist() { @@ -217,7 +218,7 @@ public void run () { show.lastPlayers = lastPlayers; show.sequencer = sequencer; show.jNote = jNote; - task = Bukkit.getScheduler().runTaskLaterAsynchronously(CraftBookPlugin.inst(), show, Long.parseLong(StringUtils.replace(line, "wait ", ""))); + task = CraftBookPlugin.getScheduler().runTaskLaterAsynchronously(CraftBookPlugin.inst(), show, Long.parseLong(StringUtils.replace(line, "wait ", ""))); } return; } else if (line.startsWith("midi ")) { diff --git a/src/main/java/com/sk89q/craftbook/util/jinglenote/StringJingleSequencer.java b/src/main/java/com/sk89q/craftbook/util/jinglenote/StringJingleSequencer.java index c1a7784195..d5829236a5 100644 --- a/src/main/java/com/sk89q/craftbook/util/jinglenote/StringJingleSequencer.java +++ b/src/main/java/com/sk89q/craftbook/util/jinglenote/StringJingleSequencer.java @@ -1,5 +1,6 @@ package com.sk89q.craftbook.util.jinglenote; +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import org.bukkit.Bukkit; @@ -15,7 +16,7 @@ public class StringJingleSequencer implements JingleSequencer { private int delay; private int position; - private int taskID; + private MyScheduledTask taskID; private boolean isPlaying; private boolean playedBefore = false; @@ -38,10 +39,10 @@ public void run() throws InterruptedException { isPlaying = true; playedBefore = true; - taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(CraftBookPlugin.inst(), () -> { + taskID = CraftBookPlugin.getScheduler().scheduleSyncRepeatingTask(() -> { if (position >= song.size() || !isPlaying || players.isEmpty()) { - Bukkit.getScheduler().cancelTask(taskID); + taskID.cancel(); isPlaying = false; return; } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index fd73072247..2777c939c2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,4 +4,5 @@ version: "${internalVersion}" dev-url: https://dev.bukkit.org/projects/craftbook softdepend: [WorldEdit, WorldGuard, ProtocolLib, Vault] api-version: 1.18 +folia-supported: true commands: