From 5e7833ca77797174af7d5dcf640cb87180510b3b Mon Sep 17 00:00:00 2001 From: anon8281 Date: Mon, 26 Jun 2023 00:14:00 +0300 Subject: [PATCH 1/6] Folia Support --- build.gradle | 3 + settings.gradle | 2 +- .../craftbook/bukkit/CraftBookPlugin.java | 123 +++++------------- .../bukkit/MechanicListenerAdapter.java | 4 +- .../core/st/SelfTriggeringManager.java | 2 +- .../craftbook/mechanics/BetterLeads.java | 6 +- .../craftbook/mechanics/BetterPhysics.java | 2 +- .../craftbook/mechanics/BetterPistons.java | 4 +- .../craftbook/mechanics/BetterPlants.java | 7 +- .../com/sk89q/craftbook/mechanics/Chair.java | 8 +- .../sk89q/craftbook/mechanics/Elevator.java | 4 +- .../craftbook/mechanics/HiddenSwitch.java | 2 +- .../sk89q/craftbook/mechanics/Payment.java | 2 +- .../com/sk89q/craftbook/mechanics/Snow.java | 34 ++--- .../com/sk89q/craftbook/mechanics/Sponge.java | 2 +- .../sk89q/craftbook/mechanics/TreeLopper.java | 4 +- .../mechanics/area/simple/Bridge.java | 2 +- .../craftbook/mechanics/area/simple/Door.java | 2 +- .../craftbook/mechanics/area/simple/Gate.java | 2 +- .../craftbook/mechanics/boat/EmptyDecay.java | 4 +- .../craftbook/mechanics/boat/ExitRemover.java | 2 +- .../mechanics/cauldron/ImprovedCauldron.java | 69 +++++----- .../drops/legacy/LegacyCustomDrops.java | 2 +- .../craftbook/mechanics/ic/ICMechanic.java | 2 +- .../mechanics/ic/gates/logic/Delayer.java | 5 +- .../mechanics/ic/gates/logic/LowDelayer.java | 5 +- .../mechanics/ic/gates/logic/NotDelayer.java | 17 +-- .../ic/gates/logic/NotLowDelayer.java | 17 +-- .../mechanics/ic/gates/logic/Pulser.java | 8 +- .../ic/gates/world/blocks/BlockReplacer.java | 4 +- .../world/miscellaneous/FlameThrower.java | 2 +- .../ic/gates/world/miscellaneous/Melody.java | 2 +- .../ProgrammableFireworkShow.java | 50 +++---- .../mechanics/items/CommandItems.java | 12 +- .../mechanics/minecart/EmptyDecay.java | 4 +- .../mechanics/minecart/ExitRemover.java | 2 +- .../mechanics/minecart/TemporaryCart.java | 4 +- .../com/sk89q/craftbook/util/CartUtil.java | 2 +- .../sk89q/craftbook/util/LocationUtil.java | 9 +- .../craftbook/util/jinglenote/Playlist.java | 19 +-- .../jinglenote/StringJingleSequencer.java | 7 +- src/main/resources/plugin.yml | 1 + 42 files changed, 185 insertions(+), 279 deletions(-) diff --git a/build.gradle b/build.gradle index 2b7fd77e34..ab88eea4c8 100644 --- a/build.gradle +++ b/build.gradle @@ -97,6 +97,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-R0.1-SNAPSHOT' testImplementation 'com.sk89q.worldedit:worldedit-core:7.2.14' @@ -144,10 +145,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/settings.gradle b/settings.gradle index 6dfb11722d..8c0203ad4f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'craftbook' \ No newline at end of file +rootProject.name = 'CraftBook' \ No newline at end of file diff --git a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java index fea25cecaa..173135d385 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; @@ -9,35 +11,7 @@ import com.sk89q.craftbook.core.LanguageManager; import com.sk89q.craftbook.core.st.MechanicClock; import com.sk89q.craftbook.core.st.SelfTriggeringManager; -import com.sk89q.craftbook.mechanics.AIMechanic; -import com.sk89q.craftbook.mechanics.Ammeter; -import com.sk89q.craftbook.mechanics.BetterLeads; -import com.sk89q.craftbook.mechanics.BetterPhysics; -import com.sk89q.craftbook.mechanics.BetterPistons; -import com.sk89q.craftbook.mechanics.BetterPlants; -import com.sk89q.craftbook.mechanics.Bookcase; -import com.sk89q.craftbook.mechanics.BounceBlocks; -import com.sk89q.craftbook.mechanics.Chair; -import com.sk89q.craftbook.mechanics.ChunkAnchor; -import com.sk89q.craftbook.mechanics.CommandSigns; -import com.sk89q.craftbook.mechanics.CookingPot; -import com.sk89q.craftbook.mechanics.Elevator; -import com.sk89q.craftbook.mechanics.GlowStone; -import com.sk89q.craftbook.mechanics.HiddenSwitch; -import com.sk89q.craftbook.mechanics.JackOLantern; -import com.sk89q.craftbook.mechanics.LightStone; -import com.sk89q.craftbook.mechanics.LightSwitch; -import com.sk89q.craftbook.mechanics.MapChanger; -import com.sk89q.craftbook.mechanics.Marquee; -import com.sk89q.craftbook.mechanics.Netherrack; -import com.sk89q.craftbook.mechanics.PaintingSwitch; -import com.sk89q.craftbook.mechanics.Payment; -import com.sk89q.craftbook.mechanics.RedstoneJukebox; -import com.sk89q.craftbook.mechanics.Snow; -import com.sk89q.craftbook.mechanics.Sponge; -import com.sk89q.craftbook.mechanics.Teleporter; -import com.sk89q.craftbook.mechanics.TreeLopper; -import com.sk89q.craftbook.mechanics.XPStorer; +import com.sk89q.craftbook.mechanics.*; import com.sk89q.craftbook.mechanics.area.Area; import com.sk89q.craftbook.mechanics.area.simple.Bridge; import com.sk89q.craftbook.mechanics.area.simple.Door; @@ -56,54 +30,20 @@ import com.sk89q.craftbook.mechanics.ic.ICMechanic; import com.sk89q.craftbook.mechanics.items.CommandItemDefinition; import com.sk89q.craftbook.mechanics.items.CommandItems; -import com.sk89q.craftbook.mechanics.minecart.CollisionEntry; -import com.sk89q.craftbook.mechanics.minecart.ConstantSpeed; -import com.sk89q.craftbook.mechanics.minecart.EmptyDecay; -import com.sk89q.craftbook.mechanics.minecart.EmptySlowdown; -import com.sk89q.craftbook.mechanics.minecart.FallModifier; -import com.sk89q.craftbook.mechanics.minecart.ItemPickup; -import com.sk89q.craftbook.mechanics.minecart.MobBlocker; -import com.sk89q.craftbook.mechanics.minecart.MoreRails; -import com.sk89q.craftbook.mechanics.minecart.NoCollide; -import com.sk89q.craftbook.mechanics.minecart.PlaceAnywhere; -import com.sk89q.craftbook.mechanics.minecart.RailPlacer; -import com.sk89q.craftbook.mechanics.minecart.TemporaryCart; -import com.sk89q.craftbook.mechanics.minecart.VisionSteering; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartBlockMechanism; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartBooster; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartDeposit; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartDispenser; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartEjector; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartLift; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartMaxSpeed; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartMessenger; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartReverser; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartSorter; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartStation; -import com.sk89q.craftbook.mechanics.minecart.blocks.CartTeleporter; +import com.sk89q.craftbook.mechanics.minecart.*; +import com.sk89q.craftbook.mechanics.minecart.blocks.*; import com.sk89q.craftbook.mechanics.pipe.Pipes; import com.sk89q.craftbook.mechanics.signcopier.SignCopier; import com.sk89q.craftbook.mechanics.variables.VariableManager; -import com.sk89q.craftbook.util.ArrayUtil; -import com.sk89q.craftbook.util.CompatabilityUtil; -import com.sk89q.craftbook.util.ItemSyntax; -import com.sk89q.craftbook.util.RegexUtil; -import com.sk89q.craftbook.util.UUIDMappings; +import com.sk89q.craftbook.util.*; import com.sk89q.craftbook.util.compat.companion.CompanionPlugins; import com.sk89q.craftbook.util.compat.nms.NMSAdapter; import com.sk89q.craftbook.util.persistent.PersistentStorage; -import com.sk89q.minecraft.util.commands.CommandException; -import com.sk89q.minecraft.util.commands.CommandPermissionsException; -import com.sk89q.minecraft.util.commands.CommandUsageException; -import com.sk89q.minecraft.util.commands.CommandsManager; -import com.sk89q.minecraft.util.commands.MissingNestedCommandException; -import com.sk89q.minecraft.util.commands.SimpleInjector; -import com.sk89q.minecraft.util.commands.WrappedCommandException; +import com.sk89q.minecraft.util.commands.*; import com.sk89q.util.yaml.YAMLFormat; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.wepif.PermissionsResolverManager; import io.papermc.lib.PaperLib; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Chunk; import org.bukkit.Server; @@ -119,24 +59,11 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.io.Writer; +import javax.annotation.Nullable; +import java.io.*; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Random; -import java.util.TreeMap; +import java.util.*; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Function; import java.util.jar.JarFile; @@ -144,7 +71,6 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.zip.ZipEntry; -import javax.annotation.Nullable; public class CraftBookPlugin extends JavaPlugin { @@ -215,6 +141,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 +278,7 @@ public CraftBookMechanic getMechanic(Class clazz) { /** * Retrieve the UUID Mappings system of CraftBook. - * + * * @return The UUID Mappings System. */ public UUIDMappings getUUIDMappings() { @@ -384,6 +315,7 @@ public void setNmsAdapter(NMSAdapter nmsAdapter) { public void onEnable() { ItemSyntax.plugin = this; + SCHEDULER = UniversalScheduler.getScheduler(this); nmsAdapter = new NMSAdapter(); @@ -497,8 +429,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 +455,7 @@ public void setupCraftBook() { languageManager = new LanguageManager(); languageManager.init(); - getServer().getScheduler().runTask(this, CompatabilityUtil::init); + getScheduler().runTask(CompatabilityUtil::init); mechanics = new ArrayList<>(); @@ -598,7 +529,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 +580,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 +616,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 +783,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 +1006,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 +1171,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 +1190,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..38176bb1da 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java @@ -304,7 +304,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) { @@ -343,7 +343,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); 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..95804370ef 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Chair.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Chair.java @@ -96,7 +96,7 @@ 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); far.addPassenger(player); @@ -125,7 +125,7 @@ private void removeChair(final Player player) { ent.eject(); player.eject(); ent.remove(); - Bukkit.getScheduler().runTaskLater(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTaskLater(() -> { player.teleport(chairData.playerExitPoint); player.setSneaking(false); }, 5L); @@ -290,7 +290,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 +328,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..55c4160c46 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; @@ -50,7 +51,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; @@ -383,7 +383,7 @@ public void teleportPlayer(final CraftBookPlayer player, final Block floor, fina bukkitPlayer.teleport(lastLocation); } - new BukkitRunnable(){ + new UniversalRunnable(){ @Override public void run () { 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 79348ae92e..c141a7d4be 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 e0d3fc1c02..55ae38f70d 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 83c0675624..95fffef3bb 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; @@ -33,8 +34,6 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; -import org.bukkit.material.Cauldron; -import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import java.io.File; @@ -69,14 +68,14 @@ public void disable() { @EventHandler(priority = EventPriority.HIGH) public void onSignChange(SignChangeEvent event) { - if(!EventUtil.passesFilter(event)) return; + if (!EventUtil.passesFilter(event)) return; if (!event.getLine(1).equalsIgnoreCase("[Cauldron]")) return; CraftBookPlayer player = CraftBookPlugin.inst().wrapPlayer(event.getPlayer()); if (!player.hasPermission("craftbook.mech.cauldron")) { - if(CraftBookPlugin.inst().getConfiguration().showPermissionMessages) + if (CraftBookPlugin.inst().getConfiguration().showPermissionMessages) player.printError("mech.create-permission"); SignUtil.cancelSign(event); return; @@ -91,14 +90,14 @@ private boolean isCauldron(Block block) { return false; } if (block.getType() == Material.WATER_CAULDRON && (block.getRelative(BlockFace.DOWN).getType() == Material.FIRE || block.getRelative(BlockFace.DOWN).getType() == Material.LAVA)) { - if(requireSign) { + if (requireSign) { BlockFace[] faces = new BlockFace[]{BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST, BlockFace.WEST}; boolean found = false; - for(BlockFace face : faces) { + for (BlockFace face : faces) { Block sign = block.getRelative(face); - if(SignUtil.isWallSign(sign)) { + if (SignUtil.isWallSign(sign)) { ChangedSign s = CraftBookBukkitUtil.toChangedSign(sign); - if(s.getLine(1).equals("[Cauldron]")) { + if (s.getLine(1).equals("[Cauldron]")) { found = true; break; } @@ -122,25 +121,25 @@ private boolean isCauldron(Block block) { @EventHandler(priority = EventPriority.HIGH) public void onRightClick(PlayerInteractEvent event) { - if(event.getAction() != Action.RIGHT_CLICK_BLOCK || event.getHand() != EquipmentSlot.HAND) return; + if (event.getAction() != Action.RIGHT_CLICK_BLOCK || event.getHand() != EquipmentSlot.HAND) return; - if(!EventUtil.passesFilter(event)) return; + if (!EventUtil.passesFilter(event)) return; - if(!isCauldron(event.getClickedBlock())) return; + if (!isCauldron(event.getClickedBlock())) return; CraftBookPlayer player = CraftBookPlugin.inst().wrapPlayer(event.getPlayer()); - if(performCauldron(event.getClickedBlock(), player)) + if (performCauldron(event.getClickedBlock(), player)) event.setCancelled(true); } @EventHandler(priority = EventPriority.HIGH) public void onRedstoneUpdate(SourcedBlockRedstoneEvent event) { - if(!allowRedstone) return; + if (!allowRedstone) return; - if(!EventUtil.passesFilter(event)) return; + if (!EventUtil.passesFilter(event)) return; - if(!isCauldron(event.getBlock())) return; + if (!isCauldron(event.getBlock())) return; performCauldron(event.getBlock(), null); } @@ -148,15 +147,16 @@ public void onRedstoneUpdate(SourcedBlockRedstoneEvent event) { @EventHandler(priority = EventPriority.HIGH) public void onItemDrop(final PlayerDropItemEvent event) { - if(!itemTracking) return; + if (!itemTracking) return; - if(!event.getPlayer().hasPermission("craftbook.mech.cauldron.use")) return; //If they can't use cauldrons, don't track it. - if(!EventUtil.passesFilter(event)) return; + if (!event.getPlayer().hasPermission("craftbook.mech.cauldron.use")) + return; //If they can't use cauldrons, don't track it. + if (!EventUtil.passesFilter(event)) return; 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; @@ -169,9 +169,9 @@ public ItemTracker(Item item) { } @Override - public void run () { + public void run() { - if(item == null) { + if (item == null) { cancel(); return; } @@ -184,9 +184,9 @@ public void run () { public boolean trackCauldronItem(Item item) { Block cauldron; - if(isCauldron(item.getLocation().getBlock())) + if (isCauldron(item.getLocation().getBlock())) cauldron = item.getLocation().getBlock(); - else if(isCauldron(item.getLocation().getBlock().getRelative(BlockFace.DOWN))) + else if (isCauldron(item.getLocation().getBlock().getRelative(BlockFace.DOWN))) cauldron = item.getLocation().getBlock().getRelative(BlockFace.DOWN); else return false; @@ -196,7 +196,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; @@ -208,27 +208,27 @@ public CauldronItemTracker(Block block, Item item) { } @Override - public void run () { + public void run() { - if(item == null) { + if (item == null) { cancel(); return; } - if(!isCauldron(block)) { + if (!isCauldron(block)) { cancel(); return; } item.teleport(BlockUtil.getBlockCentre(block).add(0, 0.5, 0)); - item.setVelocity(new Vector(0,0.01,0)); + item.setVelocity(new Vector(0, 0.01, 0)); } } public boolean performCauldron(Block block, CraftBookPlayer player) { if (player != null && !player.hasPermission("craftbook.mech.cauldron.use")) { - if(CraftBookPlugin.inst().getConfiguration().showPermissionMessages) + if (CraftBookPlugin.inst().getConfiguration().showPermissionMessages) player.printError("mech.use-permission"); return false; } @@ -245,10 +245,11 @@ public boolean performCauldron(Block block, CraftBookPlayer player) { if (!useSpoons || player == null && allowRedstone) { cook(block, recipe, items); - if(player != null) player.print("You have cooked the " + ChatColor.AQUA + recipe.getName() + ChatColor.YELLOW + " recipe."); + if (player != null) + player.print("You have cooked the " + ChatColor.AQUA + recipe.getName() + ChatColor.YELLOW + " recipe."); block.getWorld().createExplosion(block.getRelative(BlockFace.UP).getLocation(), 0.0F, false); return true; - } else if(player != null) { // Spoons + } else if (player != null) { // Spoons if (isItemSpoon(BukkitAdapter.adapt(player.getItemInHand(HandSide.MAIN_HAND).getType()))) { double chance = getSpoonChance(((BukkitCraftBookPlayer) player).getPlayer().getItemInHand(), recipe.getChance()); double ran = CraftBookPlugin.inst().getRandom().nextDouble(); @@ -264,7 +265,7 @@ public boolean performCauldron(Block block, CraftBookPlayer player) { } } } catch (UnknownRecipeException e) { - if(player != null) player.printError(e.getMessage()); + if (player != null) player.printError(e.getMessage()); } return false; @@ -283,7 +284,7 @@ public static double getSpoonChance(ItemStack item, double chance) { double toGo = temp = 1 - temp; double tenth = toGo / 10; int multiplier = 0; - switch(id) { + switch (id) { case WOODEN_SHOVEL: multiplier = 1; break; @@ -358,7 +359,7 @@ public UnknownRecipeException(String message) { private boolean requireSign; @Override - public void loadConfiguration (YAMLProcessor config, String path) { + public void loadConfiguration(YAMLProcessor config, String path) { config.setComment(path + "spoons", "Require spoons to cook cauldron recipes."); useSpoons = config.getBoolean(path + "spoons", true); 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..759a0ebc3d 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,24 +1,17 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; -import org.bukkit.Bukkit; -import org.bukkit.Server; -import org.bukkit.scheduler.BukkitTask; - +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.AbstractIC; -import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; -import com.sk89q.craftbook.mechanics.ic.ChipState; -import com.sk89q.craftbook.mechanics.ic.IC; -import com.sk89q.craftbook.mechanics.ic.ICFactory; -import com.sk89q.craftbook.mechanics.ic.ICVerificationException; +import com.sk89q.craftbook.mechanics.ic.*; +import org.bukkit.Server; /** * @author Silthus */ public class NotDelayer extends AbstractIC { - private BukkitTask taskId; + private MyScheduledTask taskId; public NotDelayer(Server server, ChangedSign block, ICFactory factory) { @@ -42,7 +35,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..096378b907 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,24 +1,17 @@ package com.sk89q.craftbook.mechanics.ic.gates.logic; -import org.bukkit.Bukkit; -import org.bukkit.Server; -import org.bukkit.scheduler.BukkitTask; - +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.AbstractIC; -import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; -import com.sk89q.craftbook.mechanics.ic.ChipState; -import com.sk89q.craftbook.mechanics.ic.IC; -import com.sk89q.craftbook.mechanics.ic.ICFactory; -import com.sk89q.craftbook.mechanics.ic.ICVerificationException; +import com.sk89q.craftbook.mechanics.ic.*; +import org.bukkit.Server; /** * @author Silthus */ public class NotLowDelayer extends AbstractIC { - private BukkitTask taskId; + private MyScheduledTask taskId; public NotLowDelayer(Server server, ChangedSign block, ICFactory factory) { @@ -46,7 +39,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/miscellaneous/FlameThrower.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/miscellaneous/FlameThrower.java index 3cc3aa72c3..34315929d8 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 c9556cb001..30cad99908 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 @@ -1,39 +1,21 @@ package com.sk89q.craftbook.mechanics.ic.gates.world.miscellaneous; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; +import com.sk89q.craftbook.ChangedSign; +import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.FireworkEffect; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.Sound; +import com.sk89q.craftbook.mechanics.ic.*; +import com.sk89q.craftbook.util.RegexUtil; +import org.bukkit.*; import org.bukkit.entity.EntityType; import org.bukkit.entity.Firework; import org.bukkit.inventory.meta.FireworkMeta; -import org.bukkit.scheduler.BukkitTask; -import com.sk89q.craftbook.ChangedSign; -import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; -import com.sk89q.craftbook.mechanics.ic.AbstractSelfTriggeredIC; -import com.sk89q.craftbook.mechanics.ic.ChipState; -import com.sk89q.craftbook.mechanics.ic.IC; -import com.sk89q.craftbook.mechanics.ic.ICFactory; -import com.sk89q.craftbook.mechanics.ic.ICManager; -import com.sk89q.craftbook.mechanics.ic.ICVerificationException; -import com.sk89q.craftbook.mechanics.ic.RestrictedIC; -import com.sk89q.craftbook.util.RegexUtil; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class ProgrammableFireworkShow extends AbstractSelfTriggeredIC { @@ -144,7 +126,7 @@ public class FireworkShowHandler { List lines = new ArrayList<>(); - BukkitTask task; + MyScheduledTask task; boolean fyrestone = false; @@ -197,7 +179,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 +279,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 +335,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 +374,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/util/CartUtil.java b/src/main/java/com/sk89q/craftbook/util/CartUtil.java index 0413a7e796..8a316d1358 100644 --- a/src/main/java/com/sk89q/craftbook/util/CartUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/CartUtil.java @@ -64,7 +64,7 @@ else if(type == EntityType.MINECART_COMMAND) { for (Entity passenger : passengers) { passenger.teleport(destination); } - Bukkit.getScheduler().runTask(CraftBookPlugin.inst(), () -> { + CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), () -> { 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..21f34cec5f 100644 --- a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java @@ -1,5 +1,6 @@ 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; @@ -14,8 +15,6 @@ import org.bukkit.block.BlockFace; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - import java.util.HashSet; /** @@ -346,7 +345,7 @@ public static Entity ejectAndTeleportPlayerVehicle(CraftBookPlayer player, Locat /** * 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,11 +364,11 @@ 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); } - }.runTaskLater(CraftBookPlugin.inst(), runnableDelayInTicks); + }.runTaskLater(CraftBookPlugin.inst(),runnableDelayInTicks); } } 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..3a4e9b3a2b 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; @@ -7,29 +8,23 @@ import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitTask; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; +import javax.sound.midi.InvalidMidiDataException; +import javax.sound.midi.MidiUnavailableException; +import java.io.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import javax.sound.midi.InvalidMidiDataException; -import javax.sound.midi.MidiUnavailableException; - public class Playlist { private String playlist; private List lines = new ArrayList<>(); - private BukkitTask task; + private MyScheduledTask task; protected PlaylistInterpreter show = new PlaylistInterpreter(); @@ -79,7 +74,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 +212,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: From 61e78cac58265f54203569e390b1f5c440d2c191 Mon Sep 17 00:00:00 2001 From: anon8281 Date: Mon, 26 Jun 2023 03:38:16 +0300 Subject: [PATCH 2/6] Important? --- settings.gradle | 2 +- .../java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/settings.gradle b/settings.gradle index 8c0203ad4f..6dfb11722d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'CraftBook' \ No newline at end of file +rootProject.name = 'craftbook' \ No newline at end of file diff --git a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java index 173135d385..b8186717ba 100644 --- a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java +++ b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java @@ -144,7 +144,7 @@ public class CraftBookPlugin extends JavaPlugin { /** * Universal scheduler */ - private static TaskScheduler SCHEDULER; + private static TaskScheduler scheduler; public static final Map> availableMechanics; @@ -315,7 +315,7 @@ public void setNmsAdapter(NMSAdapter nmsAdapter) { public void onEnable() { ItemSyntax.plugin = this; - SCHEDULER = UniversalScheduler.getScheduler(this); + scheduler = UniversalScheduler.getScheduler(this); nmsAdapter = new NMSAdapter(); @@ -1192,6 +1192,6 @@ public static String getWikiDomain() { } public static TaskScheduler getScheduler() { - return SCHEDULER; + return scheduler; } } \ No newline at end of file From 4ed09fdbccf829df5d67af6de02086ba5c0dbfbe Mon Sep 17 00:00:00 2001 From: anon8281 Date: Mon, 26 Jun 2023 04:49:11 +0300 Subject: [PATCH 3/6] Async teleports --- .../bukkit/BukkitCraftBookPlayer.java | 3 ++- .../craftbook/mechanics/BetterPistons.java | 23 ++++------------- .../com/sk89q/craftbook/mechanics/Chair.java | 5 ++-- .../sk89q/craftbook/mechanics/Elevator.java | 25 ++++++------------- .../sk89q/craftbook/mechanics/Teleporter.java | 7 +----- .../mechanics/cauldron/ImprovedCauldron.java | 4 +-- .../gates/world/entity/TeleportReciever.java | 9 +++---- .../ic/gates/world/items/ItemFan.java | 14 ++++------- .../minecart/blocks/CartEjector.java | 3 ++- .../minecart/blocks/CartStation.java | 9 ++++--- .../com/sk89q/craftbook/util/CartUtil.java | 17 ++++--------- .../sk89q/craftbook/util/LocationUtil.java | 3 ++- 12 files changed, 42 insertions(+), 80 deletions(-) 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/mechanics/BetterPistons.java b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java index 38176bb1da..af29b9e535 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java @@ -6,30 +6,17 @@ import com.sk89q.craftbook.CraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.util.BlockSyntax; -import com.sk89q.craftbook.util.EntityUtil; -import com.sk89q.craftbook.util.EventUtil; -import com.sk89q.craftbook.util.InventoryUtil; -import com.sk89q.craftbook.util.LocationUtil; -import com.sk89q.craftbook.util.ProtectionUtil; -import com.sk89q.craftbook.util.RegexUtil; -import com.sk89q.craftbook.util.SignUtil; -import com.sk89q.craftbook.util.Tuple2; +import com.sk89q.craftbook.util.*; import com.sk89q.craftbook.util.events.SourcedBlockRedstoneEvent; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.blocks.Blocks; import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.world.block.BaseBlock; -import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; -import org.bukkit.Bukkit; +import io.papermc.lib.PaperLib; import org.bukkit.Material; import org.bukkit.Tag; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.BlockState; -import org.bukkit.block.DoubleChest; -import org.bukkit.block.Sign; +import org.bukkit.block.*; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Powerable; import org.bukkit.block.data.type.Chest; @@ -316,7 +303,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)); @@ -352,7 +339,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/Chair.java b/src/main/java/com/sk89q/craftbook/mechanics/Chair.java index 95804370ef..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; @@ -98,7 +99,7 @@ private void addChair(final Player player, Block block, final Location chairLoc) if(ar.isEmpty() && isNew) { CraftBookPlugin.getScheduler().runTask(CraftBookPlugin.inst(), () -> { if (chairLoc != null) - player.teleport(chairLoc); + PaperLib.teleportAsync(player, chairLoc); far.addPassenger(player); }); } else if (ar.isEmpty()) { @@ -126,7 +127,7 @@ private void removeChair(final Player player) { player.eject(); ent.remove(); CraftBookPlugin.getScheduler().runTaskLater(() -> { - player.teleport(chairData.playerExitPoint); + PaperLib.teleportAsync(player, chairData.playerExitPoint); player.setSneaking(false); }, 5L); } diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java index 55c4160c46..8ae48ee0e7 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java @@ -23,20 +23,13 @@ import com.sk89q.craftbook.bukkit.BukkitCraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.util.EventUtil; -import com.sk89q.craftbook.util.LocationUtil; -import com.sk89q.craftbook.util.ProtectionUtil; -import com.sk89q.craftbook.util.RegexUtil; -import com.sk89q.craftbook.util.SignUtil; +import com.sk89q.craftbook.util.*; import com.sk89q.craftbook.util.events.SignClickEvent; import com.sk89q.craftbook.util.events.SourcedBlockRedstoneEvent; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.bukkit.BukkitAdapter; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.OfflinePlayer; -import org.bukkit.Tag; +import io.papermc.lib.PaperLib; +import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.data.type.Switch; @@ -53,11 +46,7 @@ import org.bukkit.inventory.EquipmentSlot; import org.bukkit.util.Vector; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Locale; -import java.util.UUID; +import java.util.*; /** * The default elevator mechanism -- wall signs in a vertical column that teleport the player vertically when triggered. @@ -380,7 +369,7 @@ 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 UniversalRunnable(){ @@ -440,7 +429,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 +441,7 @@ public void run () { } private void finishElevatingPlayer(Player p) { - p.teleport(newLocation); + PaperLib.teleportAsync(p, newLocation); teleportFinish(player, destination, shift); disableFlightMode(p); setPassengerIfPlayerWasInVehicle(player); diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java b/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java index ba0eafb265..9f4a17fbc3 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java @@ -5,12 +5,7 @@ import com.sk89q.craftbook.CraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.util.EventUtil; -import com.sk89q.craftbook.util.LocationUtil; -import com.sk89q.craftbook.util.ParsingUtil; -import com.sk89q.craftbook.util.ProtectionUtil; -import com.sk89q.craftbook.util.RegexUtil; -import com.sk89q.craftbook.util.SignUtil; +import com.sk89q.craftbook.util.*; import com.sk89q.craftbook.util.events.SignClickEvent; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.util.Location; 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 95fffef3bb..26dcf1d874 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java @@ -16,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; @@ -219,8 +220,7 @@ public void run() { cancel(); return; } - - item.teleport(BlockUtil.getBlockCentre(block).add(0, 0.5, 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/ic/gates/world/entity/TeleportReciever.java b/src/main/java/com/sk89q/craftbook/mechanics/ic/gates/world/entity/TeleportReciever.java index e060acc780..745ca59a47 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 @@ -2,12 +2,9 @@ import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; -import com.sk89q.craftbook.mechanics.ic.AbstractSelfTriggeredIC; -import com.sk89q.craftbook.mechanics.ic.ChipState; -import com.sk89q.craftbook.mechanics.ic.IC; -import com.sk89q.craftbook.mechanics.ic.ICFactory; +import com.sk89q.craftbook.mechanics.ic.*; 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 +70,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..61999732d2 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,17 +1,13 @@ 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; -import com.sk89q.craftbook.ChangedSign; -import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; -import com.sk89q.craftbook.mechanics.ic.AbstractSelfTriggeredIC; -import com.sk89q.craftbook.mechanics.ic.ChipState; -import com.sk89q.craftbook.mechanics.ic.IC; -import com.sk89q.craftbook.mechanics.ic.ICFactory; -import com.sk89q.craftbook.util.ItemUtil; - public class ItemFan extends AbstractSelfTriggeredIC { public ItemFan(Server server, ChangedSign sign, ICFactory factory) { @@ -62,7 +58,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/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..7eb77812c4 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 @@ -1,7 +1,5 @@ package com.sk89q.craftbook.mechanics.minecart.blocks; -import static com.sk89q.craftbook.util.CartUtil.stop; - import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.mechanics.minecart.events.CartBlockEnterEvent; import com.sk89q.craftbook.mechanics.minecart.events.CartBlockImpactEvent; @@ -12,6 +10,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; @@ -21,6 +20,8 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; +import static com.sk89q.craftbook.util.CartUtil.stop; + public class CartStation extends CartBlockMechanism { @Override @@ -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 8a316d1358..94db9c3f67 100644 --- a/src/main/java/com/sk89q/craftbook/util/CartUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/CartUtil.java @@ -1,23 +1,16 @@ package com.sk89q.craftbook.util; -import org.bukkit.Bukkit; +import com.sk89q.craftbook.bukkit.CraftBookPlugin; +import io.papermc.lib.PaperLib; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Minecart; -import org.bukkit.entity.minecart.CommandMinecart; -import org.bukkit.entity.minecart.ExplosiveMinecart; -import org.bukkit.entity.minecart.HopperMinecart; -import org.bukkit.entity.minecart.PoweredMinecart; -import org.bukkit.entity.minecart.RideableMinecart; -import org.bukkit.entity.minecart.SpawnerMinecart; -import org.bukkit.entity.minecart.StorageMinecart; +import org.bukkit.entity.minecart.*; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; -import com.sk89q.craftbook.bukkit.CraftBookPlugin; - import java.util.List; public final class CartUtil { @@ -62,9 +55,9 @@ else if(type == EntityType.MINECART_COMMAND) { if (!passengers.isEmpty()) { cart.eject(); for (Entity passenger : passengers) { - passenger.teleport(destination); + PaperLib.teleportAsync(passenger, destination); } - CraftBookPlugin.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 21f34cec5f..4f3135b3e4 100644 --- a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java @@ -7,6 +7,7 @@ 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; @@ -338,7 +339,7 @@ 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; } From 4a61007a23ee38120e1829dd30966d830b0640ec Mon Sep 17 00:00:00 2001 From: anon8281 Date: Mon, 26 Jun 2023 05:36:44 +0300 Subject: [PATCH 4/6] Elevators fix --- src/main/java/com/sk89q/craftbook/mechanics/Elevator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java index 8ae48ee0e7..8756c36905 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java @@ -454,11 +454,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); From 372ab8952c5588273210e303b1915ce7aeaea8bf Mon Sep 17 00:00:00 2001 From: anon8281 Date: Mon, 26 Jun 2023 14:12:13 +0300 Subject: [PATCH 5/6] Formatting clean --- .../craftbook/bukkit/CraftBookPlugin.java | 92 +++++++++++++++++-- .../craftbook/mechanics/BetterPistons.java | 18 +++- .../sk89q/craftbook/mechanics/Elevator.java | 18 +++- .../sk89q/craftbook/mechanics/Teleporter.java | 7 +- .../mechanics/cauldron/ImprovedCauldron.java | 56 +++++------ .../mechanics/ic/gates/logic/NotDelayer.java | 12 ++- .../ic/gates/logic/NotLowDelayer.java | 12 ++- .../gates/world/entity/TeleportReciever.java | 6 +- .../ic/gates/world/items/ItemFan.java | 8 ++ .../ProgrammableFireworkShow.java | 39 ++++++-- .../minecart/blocks/CartStation.java | 4 +- .../com/sk89q/craftbook/util/CartUtil.java | 12 ++- .../sk89q/craftbook/util/LocationUtil.java | 2 + .../craftbook/util/jinglenote/Playlist.java | 12 ++- 14 files changed, 234 insertions(+), 64 deletions(-) diff --git a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java index b8186717ba..a12904e907 100644 --- a/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java +++ b/src/main/java/com/sk89q/craftbook/bukkit/CraftBookPlugin.java @@ -11,7 +11,35 @@ import com.sk89q.craftbook.core.LanguageManager; import com.sk89q.craftbook.core.st.MechanicClock; import com.sk89q.craftbook.core.st.SelfTriggeringManager; -import com.sk89q.craftbook.mechanics.*; +import com.sk89q.craftbook.mechanics.AIMechanic; +import com.sk89q.craftbook.mechanics.Ammeter; +import com.sk89q.craftbook.mechanics.BetterLeads; +import com.sk89q.craftbook.mechanics.BetterPhysics; +import com.sk89q.craftbook.mechanics.BetterPistons; +import com.sk89q.craftbook.mechanics.BetterPlants; +import com.sk89q.craftbook.mechanics.Bookcase; +import com.sk89q.craftbook.mechanics.BounceBlocks; +import com.sk89q.craftbook.mechanics.Chair; +import com.sk89q.craftbook.mechanics.ChunkAnchor; +import com.sk89q.craftbook.mechanics.CommandSigns; +import com.sk89q.craftbook.mechanics.CookingPot; +import com.sk89q.craftbook.mechanics.Elevator; +import com.sk89q.craftbook.mechanics.GlowStone; +import com.sk89q.craftbook.mechanics.HiddenSwitch; +import com.sk89q.craftbook.mechanics.JackOLantern; +import com.sk89q.craftbook.mechanics.LightStone; +import com.sk89q.craftbook.mechanics.LightSwitch; +import com.sk89q.craftbook.mechanics.MapChanger; +import com.sk89q.craftbook.mechanics.Marquee; +import com.sk89q.craftbook.mechanics.Netherrack; +import com.sk89q.craftbook.mechanics.PaintingSwitch; +import com.sk89q.craftbook.mechanics.Payment; +import com.sk89q.craftbook.mechanics.RedstoneJukebox; +import com.sk89q.craftbook.mechanics.Snow; +import com.sk89q.craftbook.mechanics.Sponge; +import com.sk89q.craftbook.mechanics.Teleporter; +import com.sk89q.craftbook.mechanics.TreeLopper; +import com.sk89q.craftbook.mechanics.XPStorer; import com.sk89q.craftbook.mechanics.area.Area; import com.sk89q.craftbook.mechanics.area.simple.Bridge; import com.sk89q.craftbook.mechanics.area.simple.Door; @@ -30,20 +58,54 @@ import com.sk89q.craftbook.mechanics.ic.ICMechanic; import com.sk89q.craftbook.mechanics.items.CommandItemDefinition; import com.sk89q.craftbook.mechanics.items.CommandItems; -import com.sk89q.craftbook.mechanics.minecart.*; -import com.sk89q.craftbook.mechanics.minecart.blocks.*; +import com.sk89q.craftbook.mechanics.minecart.CollisionEntry; +import com.sk89q.craftbook.mechanics.minecart.ConstantSpeed; +import com.sk89q.craftbook.mechanics.minecart.EmptyDecay; +import com.sk89q.craftbook.mechanics.minecart.EmptySlowdown; +import com.sk89q.craftbook.mechanics.minecart.FallModifier; +import com.sk89q.craftbook.mechanics.minecart.ItemPickup; +import com.sk89q.craftbook.mechanics.minecart.MobBlocker; +import com.sk89q.craftbook.mechanics.minecart.MoreRails; +import com.sk89q.craftbook.mechanics.minecart.NoCollide; +import com.sk89q.craftbook.mechanics.minecart.PlaceAnywhere; +import com.sk89q.craftbook.mechanics.minecart.RailPlacer; +import com.sk89q.craftbook.mechanics.minecart.TemporaryCart; +import com.sk89q.craftbook.mechanics.minecart.VisionSteering; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartBlockMechanism; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartBooster; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartDeposit; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartDispenser; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartEjector; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartLift; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartMaxSpeed; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartMessenger; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartReverser; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartSorter; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartStation; +import com.sk89q.craftbook.mechanics.minecart.blocks.CartTeleporter; import com.sk89q.craftbook.mechanics.pipe.Pipes; import com.sk89q.craftbook.mechanics.signcopier.SignCopier; import com.sk89q.craftbook.mechanics.variables.VariableManager; -import com.sk89q.craftbook.util.*; +import com.sk89q.craftbook.util.ArrayUtil; +import com.sk89q.craftbook.util.CompatabilityUtil; +import com.sk89q.craftbook.util.ItemSyntax; +import com.sk89q.craftbook.util.RegexUtil; +import com.sk89q.craftbook.util.UUIDMappings; import com.sk89q.craftbook.util.compat.companion.CompanionPlugins; import com.sk89q.craftbook.util.compat.nms.NMSAdapter; import com.sk89q.craftbook.util.persistent.PersistentStorage; -import com.sk89q.minecraft.util.commands.*; +import com.sk89q.minecraft.util.commands.CommandException; +import com.sk89q.minecraft.util.commands.CommandPermissionsException; +import com.sk89q.minecraft.util.commands.CommandUsageException; +import com.sk89q.minecraft.util.commands.CommandsManager; +import com.sk89q.minecraft.util.commands.MissingNestedCommandException; +import com.sk89q.minecraft.util.commands.SimpleInjector; +import com.sk89q.minecraft.util.commands.WrappedCommandException; import com.sk89q.util.yaml.YAMLFormat; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.wepif.PermissionsResolverManager; import io.papermc.lib.PaperLib; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Chunk; import org.bukkit.Server; @@ -59,11 +121,24 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin; -import javax.annotation.Nullable; -import java.io.*; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import java.util.*; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Random; +import java.util.TreeMap; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Function; import java.util.jar.JarFile; @@ -71,6 +146,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.zip.ZipEntry; +import javax.annotation.Nullable; public class CraftBookPlugin extends JavaPlugin { diff --git a/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java index af29b9e535..ab3f37ff84 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/BetterPistons.java @@ -6,17 +6,31 @@ import com.sk89q.craftbook.CraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.util.*; +import com.sk89q.craftbook.util.BlockSyntax; +import com.sk89q.craftbook.util.EntityUtil; +import com.sk89q.craftbook.util.EventUtil; +import com.sk89q.craftbook.util.InventoryUtil; +import com.sk89q.craftbook.util.LocationUtil; +import com.sk89q.craftbook.util.ProtectionUtil; +import com.sk89q.craftbook.util.RegexUtil; +import com.sk89q.craftbook.util.SignUtil; +import com.sk89q.craftbook.util.Tuple2; import com.sk89q.craftbook.util.events.SourcedBlockRedstoneEvent; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.blocks.Blocks; import com.sk89q.worldedit.bukkit.BukkitAdapter; 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; -import org.bukkit.block.*; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.BlockState; +import org.bukkit.block.DoubleChest; +import org.bukkit.block.Sign; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Powerable; import org.bukkit.block.data.type.Chest; diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java index 8756c36905..3bdedeeb76 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Elevator.java @@ -23,13 +23,21 @@ import com.sk89q.craftbook.bukkit.BukkitCraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.util.*; +import com.sk89q.craftbook.util.EventUtil; +import com.sk89q.craftbook.util.LocationUtil; +import com.sk89q.craftbook.util.ProtectionUtil; +import com.sk89q.craftbook.util.RegexUtil; +import com.sk89q.craftbook.util.SignUtil; import com.sk89q.craftbook.util.events.SignClickEvent; 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.*; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.data.type.Switch; @@ -46,7 +54,11 @@ import org.bukkit.inventory.EquipmentSlot; import org.bukkit.util.Vector; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Locale; +import java.util.UUID; /** * The default elevator mechanism -- wall signs in a vertical column that teleport the player vertically when triggered. diff --git a/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java b/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java index 9f4a17fbc3..ba0eafb265 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/Teleporter.java @@ -5,7 +5,12 @@ import com.sk89q.craftbook.CraftBookPlayer; import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.util.*; +import com.sk89q.craftbook.util.EventUtil; +import com.sk89q.craftbook.util.LocationUtil; +import com.sk89q.craftbook.util.ParsingUtil; +import com.sk89q.craftbook.util.ProtectionUtil; +import com.sk89q.craftbook.util.RegexUtil; +import com.sk89q.craftbook.util.SignUtil; import com.sk89q.craftbook.util.events.SignClickEvent; import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.util.Location; 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 26dcf1d874..b0d2adfd75 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java @@ -35,6 +35,8 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; +import org.bukkit.material.Cauldron; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import java.io.File; @@ -69,14 +71,14 @@ public void disable() { @EventHandler(priority = EventPriority.HIGH) public void onSignChange(SignChangeEvent event) { - if (!EventUtil.passesFilter(event)) return; + if(!EventUtil.passesFilter(event)) return; if (!event.getLine(1).equalsIgnoreCase("[Cauldron]")) return; CraftBookPlayer player = CraftBookPlugin.inst().wrapPlayer(event.getPlayer()); if (!player.hasPermission("craftbook.mech.cauldron")) { - if (CraftBookPlugin.inst().getConfiguration().showPermissionMessages) + if(CraftBookPlugin.inst().getConfiguration().showPermissionMessages) player.printError("mech.create-permission"); SignUtil.cancelSign(event); return; @@ -91,14 +93,14 @@ private boolean isCauldron(Block block) { return false; } if (block.getType() == Material.WATER_CAULDRON && (block.getRelative(BlockFace.DOWN).getType() == Material.FIRE || block.getRelative(BlockFace.DOWN).getType() == Material.LAVA)) { - if (requireSign) { + if(requireSign) { BlockFace[] faces = new BlockFace[]{BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST, BlockFace.WEST}; boolean found = false; - for (BlockFace face : faces) { + for(BlockFace face : faces) { Block sign = block.getRelative(face); - if (SignUtil.isWallSign(sign)) { + if(SignUtil.isWallSign(sign)) { ChangedSign s = CraftBookBukkitUtil.toChangedSign(sign); - if (s.getLine(1).equals("[Cauldron]")) { + if(s.getLine(1).equals("[Cauldron]")) { found = true; break; } @@ -122,25 +124,25 @@ private boolean isCauldron(Block block) { @EventHandler(priority = EventPriority.HIGH) public void onRightClick(PlayerInteractEvent event) { - if (event.getAction() != Action.RIGHT_CLICK_BLOCK || event.getHand() != EquipmentSlot.HAND) return; + if(event.getAction() != Action.RIGHT_CLICK_BLOCK || event.getHand() != EquipmentSlot.HAND) return; - if (!EventUtil.passesFilter(event)) return; + if(!EventUtil.passesFilter(event)) return; - if (!isCauldron(event.getClickedBlock())) return; + if(!isCauldron(event.getClickedBlock())) return; CraftBookPlayer player = CraftBookPlugin.inst().wrapPlayer(event.getPlayer()); - if (performCauldron(event.getClickedBlock(), player)) + if(performCauldron(event.getClickedBlock(), player)) event.setCancelled(true); } @EventHandler(priority = EventPriority.HIGH) public void onRedstoneUpdate(SourcedBlockRedstoneEvent event) { - if (!allowRedstone) return; + if(!allowRedstone) return; - if (!EventUtil.passesFilter(event)) return; + if(!EventUtil.passesFilter(event)) return; - if (!isCauldron(event.getBlock())) return; + if(!isCauldron(event.getBlock())) return; performCauldron(event.getBlock(), null); } @@ -148,11 +150,10 @@ public void onRedstoneUpdate(SourcedBlockRedstoneEvent event) { @EventHandler(priority = EventPriority.HIGH) public void onItemDrop(final PlayerDropItemEvent event) { - if (!itemTracking) return; + if(!itemTracking) return; - if (!event.getPlayer().hasPermission("craftbook.mech.cauldron.use")) - return; //If they can't use cauldrons, don't track it. - if (!EventUtil.passesFilter(event)) return; + if(!event.getPlayer().hasPermission("craftbook.mech.cauldron.use")) return; //If they can't use cauldrons, don't track it. + if(!EventUtil.passesFilter(event)) return; new ItemTracker(event.getItemDrop()).runTaskTimer(CraftBookPlugin.inst(), 1L, 1L); } @@ -170,9 +171,9 @@ public ItemTracker(Item item) { } @Override - public void run() { + public void run () { - if (item == null) { + if(item == null) { cancel(); return; } @@ -185,9 +186,9 @@ public void run() { public boolean trackCauldronItem(Item item) { Block cauldron; - if (isCauldron(item.getLocation().getBlock())) + if(isCauldron(item.getLocation().getBlock())) cauldron = item.getLocation().getBlock(); - else if (isCauldron(item.getLocation().getBlock().getRelative(BlockFace.DOWN))) + else if(isCauldron(item.getLocation().getBlock().getRelative(BlockFace.DOWN))) cauldron = item.getLocation().getBlock().getRelative(BlockFace.DOWN); else return false; @@ -209,7 +210,7 @@ public CauldronItemTracker(Block block, Item item) { } @Override - public void run() { + public void run () { if (item == null) { cancel(); @@ -245,11 +246,10 @@ public boolean performCauldron(Block block, CraftBookPlayer player) { if (!useSpoons || player == null && allowRedstone) { cook(block, recipe, items); - if (player != null) - player.print("You have cooked the " + ChatColor.AQUA + recipe.getName() + ChatColor.YELLOW + " recipe."); + if(player != null) player.print("You have cooked the " + ChatColor.AQUA + recipe.getName() + ChatColor.YELLOW + " recipe."); block.getWorld().createExplosion(block.getRelative(BlockFace.UP).getLocation(), 0.0F, false); return true; - } else if (player != null) { // Spoons + } else if(player != null) { // Spoons if (isItemSpoon(BukkitAdapter.adapt(player.getItemInHand(HandSide.MAIN_HAND).getType()))) { double chance = getSpoonChance(((BukkitCraftBookPlayer) player).getPlayer().getItemInHand(), recipe.getChance()); double ran = CraftBookPlugin.inst().getRandom().nextDouble(); @@ -265,7 +265,7 @@ public boolean performCauldron(Block block, CraftBookPlayer player) { } } } catch (UnknownRecipeException e) { - if (player != null) player.printError(e.getMessage()); + if(player != null) player.printError(e.getMessage()); } return false; @@ -284,7 +284,7 @@ public static double getSpoonChance(ItemStack item, double chance) { double toGo = temp = 1 - temp; double tenth = toGo / 10; int multiplier = 0; - switch (id) { + switch(id) { case WOODEN_SHOVEL: multiplier = 1; break; @@ -359,7 +359,7 @@ public UnknownRecipeException(String message) { private boolean requireSign; @Override - public void loadConfiguration(YAMLProcessor config, String path) { + public void loadConfiguration (YAMLProcessor config, String path) { config.setComment(path + "spoons", "Require spoons to cook cauldron recipes."); useSpoons = config.getBoolean(path + "spoons", true); 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 759a0ebc3d..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,10 +1,18 @@ 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; + import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.*; -import org.bukkit.Server; +import com.sk89q.craftbook.mechanics.ic.AbstractIC; +import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; +import com.sk89q.craftbook.mechanics.ic.ChipState; +import com.sk89q.craftbook.mechanics.ic.IC; +import com.sk89q.craftbook.mechanics.ic.ICFactory; +import com.sk89q.craftbook.mechanics.ic.ICVerificationException; /** * @author Silthus 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 096378b907..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,10 +1,18 @@ 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; + import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.*; -import org.bukkit.Server; +import com.sk89q.craftbook.mechanics.ic.AbstractIC; +import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; +import com.sk89q.craftbook.mechanics.ic.ChipState; +import com.sk89q.craftbook.mechanics.ic.IC; +import com.sk89q.craftbook.mechanics.ic.ICFactory; +import com.sk89q.craftbook.mechanics.ic.ICVerificationException; /** * @author Silthus 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 745ca59a47..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 @@ -2,7 +2,11 @@ import com.sk89q.craftbook.ChangedSign; import com.sk89q.craftbook.bukkit.CraftBookPlugin; -import com.sk89q.craftbook.mechanics.ic.*; +import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; +import com.sk89q.craftbook.mechanics.ic.AbstractSelfTriggeredIC; +import com.sk89q.craftbook.mechanics.ic.ChipState; +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; 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 61999732d2..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 @@ -8,6 +8,14 @@ import org.bukkit.block.Block; import org.bukkit.entity.Item; +import com.sk89q.craftbook.ChangedSign; +import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; +import com.sk89q.craftbook.mechanics.ic.AbstractSelfTriggeredIC; +import com.sk89q.craftbook.mechanics.ic.ChipState; +import com.sk89q.craftbook.mechanics.ic.IC; +import com.sk89q.craftbook.mechanics.ic.ICFactory; +import com.sk89q.craftbook.util.ItemUtil; + public class ItemFan extends AbstractSelfTriggeredIC { public ItemFan(Server server, ChangedSign sign, ICFactory factory) { 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 30cad99908..99a93f6d7a 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 @@ -1,21 +1,40 @@ package com.sk89q.craftbook.mechanics.ic.gates.world.miscellaneous; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask; -import com.sk89q.craftbook.ChangedSign; -import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.bukkit.util.CraftBookBukkitUtil; -import com.sk89q.craftbook.mechanics.ic.*; -import com.sk89q.craftbook.util.RegexUtil; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.Color; +import org.bukkit.FireworkEffect; +import org.bukkit.Location; +import org.bukkit.Server; +import org.bukkit.Sound; import org.bukkit.entity.EntityType; import org.bukkit.entity.Firework; import org.bukkit.inventory.meta.FireworkMeta; +import org.bukkit.scheduler.BukkitTask; -import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.sk89q.craftbook.ChangedSign; +import com.sk89q.craftbook.bukkit.CraftBookPlugin; +import com.sk89q.craftbook.mechanics.ic.AbstractICFactory; +import com.sk89q.craftbook.mechanics.ic.AbstractSelfTriggeredIC; +import com.sk89q.craftbook.mechanics.ic.ChipState; +import com.sk89q.craftbook.mechanics.ic.IC; +import com.sk89q.craftbook.mechanics.ic.ICFactory; +import com.sk89q.craftbook.mechanics.ic.ICManager; +import com.sk89q.craftbook.mechanics.ic.ICVerificationException; +import com.sk89q.craftbook.mechanics.ic.RestrictedIC; +import com.sk89q.craftbook.util.RegexUtil; public class ProgrammableFireworkShow extends AbstractSelfTriggeredIC { 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 7eb77812c4..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 @@ -1,5 +1,7 @@ package com.sk89q.craftbook.mechanics.minecart.blocks; +import static com.sk89q.craftbook.util.CartUtil.stop; + import com.sk89q.craftbook.bukkit.CraftBookPlugin; import com.sk89q.craftbook.mechanics.minecart.events.CartBlockEnterEvent; import com.sk89q.craftbook.mechanics.minecart.events.CartBlockImpactEvent; @@ -20,8 +22,6 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; -import static com.sk89q.craftbook.util.CartUtil.stop; - public class CartStation extends CartBlockMechanism { @Override diff --git a/src/main/java/com/sk89q/craftbook/util/CartUtil.java b/src/main/java/com/sk89q/craftbook/util/CartUtil.java index 94db9c3f67..b7f40ebd2b 100644 --- a/src/main/java/com/sk89q/craftbook/util/CartUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/CartUtil.java @@ -1,16 +1,24 @@ package com.sk89q.craftbook.util; -import com.sk89q.craftbook.bukkit.CraftBookPlugin; import io.papermc.lib.PaperLib; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Minecart; -import org.bukkit.entity.minecart.*; +import org.bukkit.entity.minecart.CommandMinecart; +import org.bukkit.entity.minecart.ExplosiveMinecart; +import org.bukkit.entity.minecart.HopperMinecart; +import org.bukkit.entity.minecart.PoweredMinecart; +import org.bukkit.entity.minecart.RideableMinecart; +import org.bukkit.entity.minecart.SpawnerMinecart; +import org.bukkit.entity.minecart.StorageMinecart; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; +import com.sk89q.craftbook.bukkit.CraftBookPlugin; + import java.util.List; public final class CartUtil { diff --git a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java index 4f3135b3e4..c991c3a889 100644 --- a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java @@ -16,6 +16,8 @@ import org.bukkit.block.BlockFace; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + import java.util.HashSet; /** 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 3a4e9b3a2b..ec16501a44 100644 --- a/src/main/java/com/sk89q/craftbook/util/jinglenote/Playlist.java +++ b/src/main/java/com/sk89q/craftbook/util/jinglenote/Playlist.java @@ -8,16 +8,22 @@ import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitTask; -import javax.sound.midi.InvalidMidiDataException; -import javax.sound.midi.MidiUnavailableException; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import javax.sound.midi.InvalidMidiDataException; +import javax.sound.midi.MidiUnavailableException; + public class Playlist { private String playlist; From bcc3ed1cea6ee2564a295cd4130a80047a81fc1d Mon Sep 17 00:00:00 2001 From: anon8281 Date: Mon, 26 Jun 2023 14:24:23 +0300 Subject: [PATCH 6/6] Formatting fixes 2 --- .../craftbook/mechanics/cauldron/ImprovedCauldron.java | 6 +++--- src/main/java/com/sk89q/craftbook/util/LocationUtil.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) 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 b0d2adfd75..da5820a365 100644 --- a/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java +++ b/src/main/java/com/sk89q/craftbook/mechanics/cauldron/ImprovedCauldron.java @@ -212,12 +212,12 @@ public CauldronItemTracker(Block block, Item item) { @Override public void run () { - if (item == null) { + if(item == null) { cancel(); return; } - if (!isCauldron(block)) { + if(!isCauldron(block)) { cancel(); return; } @@ -229,7 +229,7 @@ public void run () { public boolean performCauldron(Block block, CraftBookPlayer player) { if (player != null && !player.hasPermission("craftbook.mech.cauldron.use")) { - if (CraftBookPlugin.inst().getConfiguration().showPermissionMessages) + if(CraftBookPlugin.inst().getConfiguration().showPermissionMessages) player.printError("mech.use-permission"); return false; } diff --git a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java index c991c3a889..cc4fbf90a0 100644 --- a/src/main/java/com/sk89q/craftbook/util/LocationUtil.java +++ b/src/main/java/com/sk89q/craftbook/util/LocationUtil.java @@ -372,6 +372,6 @@ public static void addVehiclePassengerDelayed(Entity vehicle, CraftBookPlayer pl public void run () { vehicle.addPassenger(bukkitPlayer); } - }.runTaskLater(CraftBookPlugin.inst(),runnableDelayInTicks); + }.runTaskLater(CraftBookPlugin.inst(), runnableDelayInTicks); } }