diff --git a/README.md b/README.md index f78c534..5824e33 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ # PlayerKits2 https://www.spigotmc.org/resources/playerkits-2-fully-configurable-kits-1-8-1-20.112616/ + +# Unofficial Discord + +https://discord.gg/aT9z7q7hX8 + +# Building instructions + +mvn clean install +# Folia inquisitors + +[Folia-Inquisitors](https://github.com/orgs/Folia-Inquisitors/repositories) +[KaspianDev](https://github.com/KaspianDev) +[HSGamer](https://github.com/HSGamer) diff --git a/pom.xml b/pom.xml index eee19a1..0d8833e 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ placeholderapi - https://repo.extendedclip.com/content/repositories/placeholderapi/ + https://repo.extendedclip.com/releases/ jitpack.io @@ -43,7 +43,7 @@ me.clip placeholderapi - 2.11.1 + 2.11.6 provided @@ -64,6 +64,26 @@ 4.0.3 compile + + io.github.projectunified + minelib-scheduler-common + 1.2.1 + + + io.github.projectunified + minelib-scheduler-entity + 1.2.1 + + + io.github.projectunified + minelib-scheduler-async + 1.2.1 + + + io.github.projectunified + minelib-scheduler-global + 1.2.1 + @@ -89,7 +109,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.5.2 @@ -107,6 +127,10 @@ com.zaxxer.hikari.** + + io.github.projectunified.minelib + pk.ajneb97.libs.minelib + diff --git a/src/main/java/pk/ajneb97/database/MySQLConnection.java b/src/main/java/pk/ajneb97/database/MySQLConnection.java index 304d0c3..4487197 100644 --- a/src/main/java/pk/ajneb97/database/MySQLConnection.java +++ b/src/main/java/pk/ajneb97/database/MySQLConnection.java @@ -1,8 +1,9 @@ package pk.ajneb97.database; +import io.github.projectunified.minelib.scheduler.async.AsyncScheduler; +import io.github.projectunified.minelib.scheduler.global.GlobalScheduler; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.model.PlayerData; @@ -115,7 +116,7 @@ public void createTables() { } public void getPlayer(String uuid,PlayerCallback callback){ - new BukkitRunnable(){ + AsyncScheduler.get(plugin).run(new Runnable(){ @Override public void run() { PlayerData player = null; @@ -154,21 +155,21 @@ public void run() { } PlayerData finalPlayer = player; - new BukkitRunnable(){ + GlobalScheduler.get(plugin).run(new Runnable(){ @Override public void run() { callback.onDone(finalPlayer); } - }.runTask(plugin); + }); } catch (SQLException e) { e.printStackTrace(); } } - }.runTaskAsynchronously(plugin); + }); } public void createPlayer(PlayerData player,SimpleCallback callback){ - new BukkitRunnable(){ + AsyncScheduler.get(plugin).run(new Runnable(){ @Override public void run() { try(Connection connection = getConnection()){ @@ -180,21 +181,21 @@ public void run() { statement.setString(2, player.getName()); statement.executeUpdate(); - new BukkitRunnable(){ + GlobalScheduler.get(plugin).run(new Runnable(){ @Override public void run() { callback.onDone(); } - }.runTask(plugin); + }); } catch (SQLException e) { e.printStackTrace(); } } - }.runTaskAsynchronously(plugin); + }); } public void updatePlayerName(PlayerData player){ - new BukkitRunnable(){ + AsyncScheduler.get(plugin).run(new Runnable(){ @Override public void run() { try(Connection connection = getConnection()){ @@ -209,11 +210,11 @@ public void run() { e.printStackTrace(); } } - }.runTaskAsynchronously(plugin); + }); } public void updateKit(PlayerData player,PlayerDataKit kit,boolean mustCreate){ - new BukkitRunnable(){ + AsyncScheduler.get(plugin).run(new Runnable(){ @Override public void run() { try(Connection connection = getConnection()){ @@ -246,11 +247,11 @@ public void run() { e.printStackTrace(); } } - }.runTaskAsynchronously(plugin); + }); } public void resetKit(String uuid,String kitName,boolean all){ - new BukkitRunnable(){ + AsyncScheduler.get(plugin).run(new Runnable(){ @Override public void run() { try(Connection connection = getConnection()){ @@ -274,6 +275,6 @@ public void run() { e.printStackTrace(); } } - }.runTaskAsynchronously(plugin); + }); } } diff --git a/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java b/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java index 850e10b..654e8d4 100644 --- a/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java +++ b/src/main/java/pk/ajneb97/libs/actionbar/ActionBarAPI.java @@ -1,10 +1,10 @@ package pk.ajneb97.libs.actionbar; +import io.github.projectunified.minelib.scheduler.entity.EntityScheduler; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.managers.MessagesManager; import pk.ajneb97.utils.OtherUtils; @@ -80,23 +80,13 @@ public static void sendActionBar(final Player player, final String message, int if (duration > 0) { // Sends empty message at the end of the duration. Allows messages shorter than 3 seconds, ensures precision. - new BukkitRunnable() { - @Override - public void run() { - sendActionBar(player, ""); - } - }.runTaskLater(plugin, duration + 1); + EntityScheduler.get(plugin, player).runLater(() -> sendActionBar(player, ""), duration + 1); } // Re-sends the messages every 3 seconds so it doesn't go away from the player's screen. while (duration > 40) { duration -= 40; - new BukkitRunnable() { - @Override - public void run() { - sendActionBar(player, message); - } - }.runTaskLater(plugin, (long) duration); + EntityScheduler.get(plugin, player).runLater(() -> sendActionBar(player, message), duration); } } diff --git a/src/main/java/pk/ajneb97/listeners/InventoryEditListener.java b/src/main/java/pk/ajneb97/listeners/InventoryEditListener.java index ea5be53..87ae1af 100644 --- a/src/main/java/pk/ajneb97/listeners/InventoryEditListener.java +++ b/src/main/java/pk/ajneb97/listeners/InventoryEditListener.java @@ -1,5 +1,6 @@ package pk.ajneb97.listeners; +import io.github.projectunified.minelib.scheduler.entity.EntityScheduler; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -9,7 +10,6 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.managers.edit.InventoryEditManager; import pk.ajneb97.model.inventory.InventoryPlayer; @@ -76,12 +76,9 @@ public void onChat(AsyncPlayerChatEvent event){ InventoryPlayer inventoryPlayer = invManager.getInventoryPlayer(player); if(inventoryPlayer != null) { event.setCancelled(true); - new BukkitRunnable(){ - @Override - public void run() { - invManager.writeChat(inventoryPlayer, ChatColor.stripColor(event.getMessage())); - } - }.runTaskLater(plugin,1L); + EntityScheduler.get(plugin, player).run( + () -> invManager.writeChat(inventoryPlayer, ChatColor.stripColor(event.getMessage())) + ); } } } diff --git a/src/main/java/pk/ajneb97/managers/InventoryManager.java b/src/main/java/pk/ajneb97/managers/InventoryManager.java index 190734b..a337972 100644 --- a/src/main/java/pk/ajneb97/managers/InventoryManager.java +++ b/src/main/java/pk/ajneb97/managers/InventoryManager.java @@ -2,7 +2,6 @@ import org.bukkit.Bukkit; import org.bukkit.Material; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; @@ -285,14 +284,14 @@ public void clickOnOpenInventoryItem(InventoryPlayer inventoryPlayer,String open public void clickOnCommandItem(InventoryPlayer inventoryPlayer,String itemCommands){ String[] sep = itemCommands.split("\\|"); - ConsoleCommandSender sender = Bukkit.getConsoleSender(); for(String c : sep) { if(c.startsWith("msg %player% ")) { inventoryPlayer.getPlayer().sendMessage(MessagesManager.getColoredMessage(c.replace("msg %player% ", ""))); }else if(c.equals("close_inventory")){ inventoryPlayer.getPlayer().closeInventory(); }else{ - Bukkit.dispatchCommand(sender, c.replace("%player%", inventoryPlayer.getPlayer().getName())); + String command = c.replace("%player%", inventoryPlayer.getPlayer().getName()); + ActionUtils.consoleCommand(plugin, command); } } } diff --git a/src/main/java/pk/ajneb97/managers/KitsManager.java b/src/main/java/pk/ajneb97/managers/KitsManager.java index 736ee41..0177f1b 100644 --- a/src/main/java/pk/ajneb97/managers/KitsManager.java +++ b/src/main/java/pk/ajneb97/managers/KitsManager.java @@ -397,10 +397,10 @@ public void executeAction(Player player,String actionText){ ActionUtils.message(player,actionLine); break; case "console_command": - ActionUtils.consoleCommand(actionLine); + ActionUtils.consoleCommand(plugin, actionLine); break; case "player_command": - ActionUtils.playerCommand(player,actionLine); + ActionUtils.playerCommand(plugin, player,actionLine); break; case "playsound": ActionUtils.playSound(player,actionLine); diff --git a/src/main/java/pk/ajneb97/managers/MigrationManager.java b/src/main/java/pk/ajneb97/managers/MigrationManager.java index 5c75479..316409d 100644 --- a/src/main/java/pk/ajneb97/managers/MigrationManager.java +++ b/src/main/java/pk/ajneb97/managers/MigrationManager.java @@ -1,8 +1,8 @@ package pk.ajneb97.managers; +import io.github.projectunified.minelib.scheduler.async.AsyncScheduler; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.configs.KitsConfigManager; import pk.ajneb97.configs.PlayersConfigManager; @@ -23,15 +23,12 @@ public MigrationManager(PlayerKits2 plugin){ } public void migrate(CommandSender sender){ - new BukkitRunnable(){ - @Override - public void run() { - migrateKits(sender); - migratePlayers(sender); + AsyncScheduler.get(plugin).run(() -> { + migrateKits(sender); + migratePlayers(sender); - sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &aMigration completed.")); - } - }.runTaskAsynchronously(plugin); + sender.sendMessage(PlayerKits2.prefix+MessagesManager.getColoredMessage(" &aMigration completed.")); + }); } public void migrateKits(CommandSender sender){ diff --git a/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java b/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java index c19928e..a5ea88e 100644 --- a/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java +++ b/src/main/java/pk/ajneb97/managers/edit/InventoryEditPositionManager.java @@ -1,5 +1,6 @@ package pk.ajneb97.managers.edit; +import io.github.projectunified.minelib.scheduler.entity.EntityScheduler; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.inventory.ClickType; @@ -7,7 +8,6 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.managers.*; import pk.ajneb97.model.Kit; @@ -146,13 +146,12 @@ public void clickInventory(InventoryPlayer inventoryPlayer, ItemStack item, int public void closeInventory(InventoryPlayer inventoryPlayer){ boolean mustReturn = Boolean.parseBoolean(inventoryPlayer.getInventoryName().split(";")[2]); if(mustReturn){ - new BukkitRunnable(){ - @Override - public void run() { - inventoryPlayer.restoreSavedInventoryContents(); - inventoryEditManager.openInventory(inventoryPlayer); - } - }.runTaskLater(plugin,1L); + EntityScheduler.get(plugin, inventoryPlayer.getPlayer()).run( + () -> { + inventoryPlayer.restoreSavedInventoryContents(); + inventoryEditManager.openInventory(inventoryPlayer); + } + ); } } } diff --git a/src/main/java/pk/ajneb97/tasks/InventoryUpdateTaskManager.java b/src/main/java/pk/ajneb97/tasks/InventoryUpdateTaskManager.java index 53be133..ed56524 100644 --- a/src/main/java/pk/ajneb97/tasks/InventoryUpdateTaskManager.java +++ b/src/main/java/pk/ajneb97/tasks/InventoryUpdateTaskManager.java @@ -1,9 +1,9 @@ package pk.ajneb97.tasks; +import io.github.projectunified.minelib.scheduler.global.GlobalScheduler; import org.bukkit.Material; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.scheduler.BukkitRunnable; import pk.ajneb97.PlayerKits2; import pk.ajneb97.managers.*; import pk.ajneb97.model.inventory.InventoryPlayer; @@ -20,12 +20,7 @@ public InventoryUpdateTaskManager(PlayerKits2 plugin){ } public void start(){ - new BukkitRunnable(){ - @Override - public void run() { - execute(); - } - }.runTaskTimer(plugin,0L,20L); + GlobalScheduler.get(plugin).runTimer(this::execute, 0L, 20L); } public void execute(){ diff --git a/src/main/java/pk/ajneb97/tasks/PlayerDataSaveTask.java b/src/main/java/pk/ajneb97/tasks/PlayerDataSaveTask.java index e573487..5bf8217 100644 --- a/src/main/java/pk/ajneb97/tasks/PlayerDataSaveTask.java +++ b/src/main/java/pk/ajneb97/tasks/PlayerDataSaveTask.java @@ -1,6 +1,6 @@ package pk.ajneb97.tasks; -import org.bukkit.scheduler.BukkitRunnable; +import io.github.projectunified.minelib.scheduler.async.AsyncScheduler; import pk.ajneb97.PlayerKits2; public class PlayerDataSaveTask { @@ -16,20 +16,16 @@ public void end() { end = true; } - public void start(int seconds) { - long ticks = seconds* 20L; - - new BukkitRunnable() { - @Override - public void run() { - if(end) { - this.cancel(); - }else { - execute(); - } + public void start(int minutes) { + long ticks = minutes*60*20; + AsyncScheduler.get(plugin).runTimer(() -> { + if(end) { + return false; + }else { + execute(); + return true; } - - }.runTaskTimerAsynchronously(plugin, 0L, ticks); + }, 0L, ticks); } public void execute() { diff --git a/src/main/java/pk/ajneb97/utils/ActionUtils.java b/src/main/java/pk/ajneb97/utils/ActionUtils.java index a1eacea..359af6a 100644 --- a/src/main/java/pk/ajneb97/utils/ActionUtils.java +++ b/src/main/java/pk/ajneb97/utils/ActionUtils.java @@ -11,6 +11,7 @@ import pk.ajneb97.libs.actionbar.ActionBarAPI; import pk.ajneb97.libs.titles.TitleAPI; import pk.ajneb97.managers.MessagesManager; +import io.github.projectunified.minelib.scheduler.global.GlobalScheduler; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -22,13 +23,15 @@ public static void message(Player player,String actionLine) { player.sendMessage(MessagesManager.getColoredMessage(actionLine)); } - public static void consoleCommand(String actionLine){ - ConsoleCommandSender sender = Bukkit.getConsoleSender(); - Bukkit.dispatchCommand(sender, actionLine); + public static void consoleCommand(PlayerKits2 plugin, String actionLine){ + GlobalScheduler.get(plugin).run(() -> { + ConsoleCommandSender sender = Bukkit.getConsoleSender(); + Bukkit.dispatchCommand(sender, actionLine); + }); } - public static void playerCommand(Player player, String actionLine){ - player.performCommand(actionLine); + public static void playerCommand(PlayerKits2 plugin, Player player, String actionLine){ + GlobalScheduler.get(plugin).run(() -> player.performCommand(actionLine)); } public static void playSound(Player player,String actionLine){ diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 2c0f8c8..c17b8b5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,6 +4,7 @@ name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI] author: Ajneb97 +folia-supported: true commands: kit: