diff --git a/Minepacks/pom.xml b/Minepacks/pom.xml index 32fc28c..4e9c3aa 100644 --- a/Minepacks/pom.xml +++ b/Minepacks/pom.xml @@ -48,6 +48,13 @@ PluginLib ${pcgfPluginLibVersion} + + + com.github.technicallycoded + FoliaLib + 0.4.3 + compile + org.junit.jupiter @@ -143,6 +150,7 @@ at.pcgamingfreaks:Minepacks-API at.pcgamingfreaks:Minepacks-MagicValues at.pcgamingfreaks:PluginLib + com.github.technicallycoded:FoliaLib @@ -150,6 +158,10 @@ at.pcgf.libs at.pcgamingfreaks.MinepacksStandalone.libs + + com.tcoded.folialib + at.pcgamingfreaks.MinepacksStandalone.libs.folialib + at.pcgamingfreaks.Minepacks at.pcgamingfreaks.MinepacksStandalone diff --git a/Minepacks/resources/plugin.yml b/Minepacks/resources/plugin.yml index e99d469..dccf254 100644 --- a/Minepacks/resources/plugin.yml +++ b/Minepacks/resources/plugin.yml @@ -7,6 +7,7 @@ version: "${pluginVersion}" api-version: "1.13" depend: [${dependencies}] softdepend: [MVdWPlaceholderAPI, PlaceholderAPI ${soft-dependencies}] +folia-supported: true permissions: backpack.*: diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Backpack.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Backpack.java index b842836..f610eb3 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Backpack.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Backpack.java @@ -104,14 +104,16 @@ public Backpack(final OfflinePlayer owner, ItemStack[] backpack, final int ID) Minepacks.getInstance().getLogger().warning(owner.getName() + "'s backpack has to many items."); if(owner.isOnline()) { - Bukkit.getScheduler().runTask(Minepacks.getInstance(), () -> { + Minepacks.getScheduler().runNextTick(task -> { if(owner.isOnline()) { Player player = owner.getPlayer(); assert player != null; - Map left = player.getInventory().addItem(toMuch.toArray(new ItemStack[0])); - left.forEach((id, stack) -> player.getWorld().dropItemNaturally(player.getLocation(), stack)); - this.setChanged(); + Minepacks.getScheduler().runAtEntity(player, task1 -> { + Map left = player.getInventory().addItem(toMuch.toArray(new ItemStack[0])); + left.forEach((id, stack) -> player.getWorld().dropItemNaturally(player.getLocation(), stack)); + this.setChanged(); + }); } }); } diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CancellableRunnable.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CancellableRunnable.java new file mode 100644 index 0000000..96571f5 --- /dev/null +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CancellableRunnable.java @@ -0,0 +1,21 @@ +package at.pcgamingfreaks.Minepacks.Bukkit; + +import com.tcoded.folialib.impl.PlatformScheduler; +import com.tcoded.folialib.wrapper.task.WrappedTask; + +public abstract class CancellableRunnable { + protected WrappedTask task = null; + + public abstract void run(); + public abstract void schedule(); + + public void cancel() { + if (task != null) { + task.cancel(); + } + } + + protected PlatformScheduler getScheduler() { + return Minepacks.getScheduler(); + } +} \ No newline at end of file diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CooldownManager.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CooldownManager.java index ffd97cb..315cf93 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CooldownManager.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/CooldownManager.java @@ -24,14 +24,13 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.scheduler.BukkitRunnable; import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; import java.util.UUID; -public class CooldownManager extends BukkitRunnable implements Listener +public class CooldownManager extends CancellableRunnable implements Listener { private final Minepacks plugin; private final Map cooldowns = new HashMap<>(); @@ -47,8 +46,6 @@ public CooldownManager(Minepacks plugin) addOnJoin = plugin.getConfiguration().isCommandCooldownAddOnJoinEnabled(); clearOnLeave = plugin.getConfiguration().isCommandCooldownClearOnLeaveEnabled(); plugin.getServer().getPluginManager().registerEvents(this, plugin); - - runTaskTimer(plugin, plugin.getConfiguration().getCommandCooldownCleanupInterval(), plugin.getConfiguration().getCommandCooldownCleanupInterval()); } public void close() @@ -109,4 +106,9 @@ public void run() { cooldowns.entrySet().removeIf(entry -> entry.getValue() < System.currentTimeMillis()); } + + @Override + public void schedule() { + task = getScheduler().runTimer(this::run, plugin.getConfiguration().getCommandCooldownCleanupInterval(), plugin.getConfiguration().getCommandCooldownCleanupInterval()); + } } \ No newline at end of file diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/Migration/MigrationManager.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/Migration/MigrationManager.java index 9054c91..6db83de 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/Migration/MigrationManager.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/Migration/MigrationManager.java @@ -63,7 +63,7 @@ public void migrateDB(final String targetDatabaseType, final MigrationCallback c } //endregion //region Migrate data - plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> { + Minepacks.getScheduler().runAsync(task -> { MigrationResult migrationResult = null; try { @@ -80,7 +80,7 @@ public void migrateDB(final String targetDatabaseType, final MigrationCallback c //region Start the plugin again final MigrationResult migrationResultFinal = migrationResult; - plugin.getServer().getScheduler().runTask(plugin, () -> { + Minepacks.getScheduler().runNextTick(task1 -> { db.close(); // No need to reload the config try diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQL.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQL.java index 08a0e65..ede2229 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQL.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQL.java @@ -219,7 +219,7 @@ public void saveBackpack(final Backpack backpack) { final int newID = rs.getInt(fieldPlayerID); DBTools.runStatement(connection, queryInsertBp, newID, data, usedSerializer); - plugin.getServer().getScheduler().runTask(plugin, () -> backpack.setOwnerDatabaseId(newID)); + Minepacks.getScheduler().runNextTick(task -> backpack.setOwnerDatabaseId(newID)); } else { @@ -240,13 +240,13 @@ public void saveBackpack(final Backpack backpack) writeBackup(name, nameOrUUID, usedSerializer, data); } }; - if(asyncSave) Bukkit.getScheduler().runTaskAsynchronously(plugin, runnable); else runnable.run(); + if(asyncSave) Minepacks.getScheduler().runAsync(task -> runnable.run()); else runnable.run(); } @Override protected void loadBackpack(final OfflinePlayer player, final Callback callback) { - plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> { + Minepacks.getScheduler().runAsync(task -> { try(Connection conn = getConnection(); PreparedStatement ps = conn.prepareStatement(queryGetBP)) { final String playerUUID = getPlayerFormattedUUID(player); @@ -275,7 +275,7 @@ protected void loadBackpack(final OfflinePlayer player, final Callback writeBackup(player.getName(), playerUUID, version, data); } final Backpack backpack = (its != null) ? new Backpack(player, its, bpID) : null; - plugin.getServer().getScheduler().runTask(plugin, () -> { + Minepacks.getScheduler().runNextTick(task1 -> { if(backpack != null) { callback.onResult(backpack); @@ -289,7 +289,7 @@ protected void loadBackpack(final OfflinePlayer player, final Callback catch(SQLException e) { plugin.getLogger().log(Level.SEVERE, "Failed to load backpack! Error: {0}", e.getMessage()); - plugin.getServer().getScheduler().runTask(plugin, callback::onFail); + Minepacks.getScheduler().runNextTick(task1 -> callback.onFail()); } }); } @@ -304,20 +304,20 @@ public void syncCooldown(Player player, long cooldownTime) @Override public void getCooldown(final Player player, final Callback callback) { - plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> { + Minepacks.getScheduler().runAsync(asyncTask -> { try(Connection conn = getConnection(); PreparedStatement ps = conn.prepareStatement(queryGetCooldown)) { ps.setString(1, getPlayerFormattedUUID(player)); try(ResultSet rs = ps.executeQuery()) { final long time = (rs.next()) ? rs.getTimestamp(fieldCdTime).getTime() : 0; - plugin.getServer().getScheduler().runTask(plugin, () -> callback.onResult(time)); + Minepacks.getScheduler().runNextTick(task -> callback.onResult(time)); } } catch(SQLException e) { plugin.getLogger().log(Level.SEVERE, "Failed to load cooldown! Error: {0}", e.getMessage()); - plugin.getServer().getScheduler().runTask(plugin, () -> callback.onResult(0L)); + Minepacks.getScheduler().runNextTick(task -> callback.onResult(0L)); } }); } diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQLite.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQLite.java index 2c2965e..7e64fbd 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQLite.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/SQLite.java @@ -22,7 +22,6 @@ import at.pcgamingfreaks.Database.DBTools; import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks; import at.pcgamingfreaks.Version; -import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -124,7 +123,7 @@ protected void checkDB() @Override public void updatePlayer(final Player player) { - Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { + Minepacks.getScheduler().runAsync(task -> { runStatement(queryUpdatePlayerAdd, player.getName(), getPlayerFormattedUUID(player)); runStatement("UPDATE `" + tablePlayers + "` SET `" + fieldPlayerName + "`=? WHERE `" + fieldPlayerUUID + "`=?;", player.getName(), getPlayerFormattedUUID(player)); }); diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/Interval.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/Interval.java index c7d9772..e9df4ce 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/Interval.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/Interval.java @@ -20,16 +20,16 @@ import at.pcgamingfreaks.Minepacks.Bukkit.Backpack; import at.pcgamingfreaks.Minepacks.Bukkit.Database.Database; import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks; -import org.bukkit.Bukkit; +import com.tcoded.folialib.wrapper.task.WrappedTask; public class Interval extends UnCacheStrategy implements Runnable { - private final int taskID; + private final WrappedTask task; public Interval(Database cache) { super(cache); - taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Minepacks.getInstance(), this, Minepacks.getInstance().getConfiguration().getUnCacheDelay(), Minepacks.getInstance().getConfiguration().getUnCacheInterval()); + task = Minepacks.getScheduler().runTimer(this, Minepacks.getInstance().getConfiguration().getUnCacheDelay(), Minepacks.getInstance().getConfiguration().getUnCacheInterval()); } @Override @@ -47,7 +47,7 @@ public void run() @Override public void close() { - Bukkit.getScheduler().cancelTask(taskID); + Minepacks.getScheduler().cancelTask(task); super.close(); } } \ No newline at end of file diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/IntervalChecked.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/IntervalChecked.java index 06903b9..840be02 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/IntervalChecked.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/IntervalChecked.java @@ -21,19 +21,19 @@ import at.pcgamingfreaks.Minepacks.Bukkit.Database.Database; import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks; -import org.bukkit.Bukkit; +import com.tcoded.folialib.wrapper.task.WrappedTask; import org.bukkit.OfflinePlayer; public class IntervalChecked extends UnCacheStrategy implements Runnable { private final long delay; - private final int taskID; + private final WrappedTask task; public IntervalChecked(Database cache) { super(cache); long delayTicks = Minepacks.getInstance().getConfiguration().getUnCacheDelay(); - taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Minepacks.getInstance(), this, delayTicks, Minepacks.getInstance().getConfiguration().getUnCacheInterval()); + task = Minepacks.getScheduler().runTimer(this, delayTicks, Minepacks.getInstance().getConfiguration().getUnCacheInterval()); this.delay = delayTicks * 50L; } @@ -54,7 +54,7 @@ public void run() @Override public void close() { - Bukkit.getScheduler().cancelTask(taskID); + Minepacks.getScheduler().cancelTask(task); super.close(); } } \ No newline at end of file diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/OnDisconnectDelayed.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/OnDisconnectDelayed.java index 82033d6..d3455f0 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/OnDisconnectDelayed.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Database/UnCacheStrategies/OnDisconnectDelayed.java @@ -26,7 +26,6 @@ import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.scheduler.BukkitRunnable; public class OnDisconnectDelayed extends UnCacheStrategy implements Listener { @@ -45,21 +44,20 @@ public void playerLeaveEvent(PlayerQuitEvent event) final Backpack backpack = cache.getBackpack(event.getPlayer()); if(backpack != null) // We only uncache unmarried player. { - new BukkitRunnable() - { - @Override - public void run() + Minepacks.getScheduler().runLater(() -> { + if (!backpack.isOpen()) { - if(!backpack.isOpen()) + cache.unloadBackpack(backpack); + } else { + Minepacks.getScheduler().runLater(() -> { - cache.unloadBackpack(backpack); - } - else - { - this.runTaskLater(Minepacks.getInstance(), delay); - } + if (!backpack.isOpen()) + { + cache.unloadBackpack(backpack); + } + }, delay); } - }.runTaskLater(Minepacks.getInstance(), delay); + }, delay); } } diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/ItemsCollector.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/ItemsCollector.java index 4ef8a31..2d63b18 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/ItemsCollector.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/ItemsCollector.java @@ -24,16 +24,12 @@ import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import org.bukkit.scheduler.BukkitRunnable; -import org.bukkit.scheduler.BukkitTask; import java.util.*; -public class ItemsCollector extends BukkitRunnable -{ +public class ItemsCollector extends CancellableRunnable { private final Minepacks plugin; private final double radius; - private final BukkitTask task; private final ItemFilter itemFilter; /** @@ -59,8 +55,7 @@ public ItemsCollector(Minepacks plugin) this.isToggleable = plugin.getConfiguration().isFullInvToggleAllowed(); this.enabledOnJoin = plugin.getConfiguration().isFullInvEnabledOnJoin(); this.toggleList = new HashSet<>(); - - task = runTaskTimer(plugin, plugin.getConfiguration().getFullInvCheckInterval(), plugin.getConfiguration().getFullInvCheckInterval()); + schedule(); itemFilter = plugin.getItemFilter(); } @@ -81,50 +76,56 @@ public void run() { for(Player player : Bukkit.getServer().getOnlinePlayers()) { - if (!canUseAutoPickup(player)) continue; + Minepacks.getScheduler().runAtEntity(player, entityTask -> { + if (!canUseAutoPickup(player)) return; - // Inventory is full - if (player.getInventory().firstEmpty() != -1) continue; + // Inventory is full + if (player.getInventory().firstEmpty() != -1) return; - // Only check loaded backpacks (loading them would take too much time for a repeating task, the backpack will be loaded async soon enough) - Backpack backpack = (Backpack) plugin.getBackpackCachedOnly(player); - if (backpack == null) continue; + // Only check loaded backpacks (loading them would take too much time for a repeating task, the backpack will be loaded async soon enough) + Backpack backpack = (Backpack) plugin.getBackpackCachedOnly(player); + if (backpack == null) return; - List entities = player.getNearbyEntities(radius, radius, radius); - for(Entity entity : entities) - { - if(entity instanceof Item) + List entities = player.getNearbyEntities(radius, radius, radius); + for(Entity entity : entities) { - Item item = (Item) entity; - if (!item.isDead() && item.getPickupDelay() <= 0) + if(entity instanceof Item) { - Map leftover = player.getInventory().addItem(item.getItemStack()); - if (!leftover.isEmpty()) + Item item = (Item) entity; + if (!item.isDead() && item.getPickupDelay() <= 0) { - ItemStack itemStack = leftover.get(0); - if (itemStack == null || itemStack.getAmount() == 0 || (itemFilter != null && itemFilter.isItemBlocked(itemStack))) + Map leftover = player.getInventory().addItem(item.getItemStack()); + if (!leftover.isEmpty()) { - continue; + ItemStack itemStack = leftover.get(0); + if (itemStack == null || itemStack.getAmount() == 0 || (itemFilter != null && itemFilter.isItemBlocked(itemStack))) + { + continue; + } + leftover = backpack.addItems(itemStack); + } + if (!leftover.isEmpty()) + { + item.setItemStack(leftover.get(0)); + } + else + { + item.remove(); } - leftover = backpack.addItems(itemStack); - } - if (!leftover.isEmpty()) - { - item.setItemStack(leftover.get(0)); - } - else - { - item.remove(); } } } - } + }); } } - public void close() - { - task.cancel(); + @Override + public void schedule() { + task = getScheduler().runTimer(this::run, plugin.getConfiguration().getFullInvCheckInterval(), plugin.getConfiguration().getFullInvCheckInterval()); + } + + public void close() { + cancel(); } /** diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Listener/ItemShortcut.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Listener/ItemShortcut.java index f44e583..8b6e069 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Listener/ItemShortcut.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Listener/ItemShortcut.java @@ -25,7 +25,6 @@ import at.pcgamingfreaks.Minepacks.Bukkit.API.WorldBlacklistMode; import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks; import at.pcgamingfreaks.Minepacks.Bukkit.Permissions; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -150,21 +149,22 @@ private void removeItem(Player player) public void onJoin(PlayerJoinEvent event) { if(plugin.isDisabled(event.getPlayer()) != WorldBlacklistMode.None) return; - Bukkit.getScheduler().runTaskLater(plugin, () -> addItem(event.getPlayer()), 2L); + Minepacks.getScheduler().runAtEntityLater(event.getPlayer(), task -> addItem(event.getPlayer()), 2L); } @EventHandler(priority = EventPriority.MONITOR) public void onSpawn(PlayerRespawnEvent event) { if(plugin.isDisabled(event.getPlayer()) != WorldBlacklistMode.None) return; - Bukkit.getScheduler().runTaskLater(plugin, () -> addItem(event.getPlayer()), 2L); + Minepacks.getScheduler().runAtEntityLater(event.getPlayer(), task -> addItem(event.getPlayer()), 2L); } @EventHandler(priority = EventPriority.MONITOR) public void onWorldChange(final PlayerChangedWorldEvent event) { - Bukkit.getScheduler().runTaskLater(plugin, () -> { - Player player = event.getPlayer(); + Player player = event.getPlayer(); + + Minepacks.getScheduler().runAtEntityLater(player, () -> { if(!player.isOnline()) return; if(player.hasPermission(Permissions.USE) && plugin.isDisabled(player) == WorldBlacklistMode.None) addItem(player); @@ -271,7 +271,7 @@ public void onItemClick(InventoryClickEvent event) } else if(event.getClick() == ClickType.RIGHT || event.getClick() == ClickType.SHIFT_RIGHT) { - plugin.getServer().getScheduler().runTask(plugin, () -> { player.performCommand(openCommand); }); + Minepacks.getScheduler().runAtEntity(player, task -> player.performCommand(openCommand)); event.setCancelled(true); } else if(event.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY) diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Minepacks.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Minepacks.java index eae6c20..66d6b6c 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Minepacks.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/Minepacks.java @@ -43,6 +43,8 @@ import at.pcgamingfreaks.Util.StringUtils; import at.pcgamingfreaks.Version; +import com.tcoded.folialib.FoliaLib; +import com.tcoded.folialib.impl.PlatformScheduler; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.OfflinePlayer; @@ -65,6 +67,7 @@ public class Minepacks extends JavaPlugin implements MinepacksPlugin, IPlugin { @Getter private static Minepacks instance = null; + @Getter private static FoliaLib foliaLib = null; private ManagedUpdater updater = null; private Config config; @@ -110,6 +113,7 @@ public void onEnable() updater = new ManagedUpdater(this); instance = this; + foliaLib = new FoliaLib(this); config = new Config(this); updater.setChannel(config.getUpdateChannel()); if(config.useUpdater()) updater.update(); @@ -404,6 +408,9 @@ public ItemsCollector getItemsCollector() return collector; } + public static PlatformScheduler getScheduler() { + return foliaLib.getScheduler(); + } @Override public @NotNull Version getVersion() { diff --git a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/SpecialInfoWorker/SpecialInfoBase.java b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/SpecialInfoWorker/SpecialInfoBase.java index a71f7dd..1daf2b2 100644 --- a/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/SpecialInfoWorker/SpecialInfoBase.java +++ b/Minepacks/src/at/pcgamingfreaks/Minepacks/Bukkit/SpecialInfoWorker/SpecialInfoBase.java @@ -17,7 +17,7 @@ package at.pcgamingfreaks.Minepacks.Bukkit.SpecialInfoWorker; -import org.bukkit.Bukkit; +import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -40,7 +40,7 @@ public void onJoin(final PlayerJoinEvent event) { if(event.getPlayer().hasPermission(permission)) { - Bukkit.getScheduler().runTaskLater(plugin, () -> { + Minepacks.getScheduler().runAtEntityLater(event.getPlayer(), () -> { if(event.getPlayer().isOnline()) { sendMessage(event.getPlayer()); diff --git a/pom.xml b/pom.xml index cec87f9..e754a5d 100644 --- a/pom.xml +++ b/pom.xml @@ -62,6 +62,10 @@ spigot-nexus https://hub.spigotmc.org/nexus/content/groups/public/ + + jitpack + https://jitpack.io +