diff --git a/pom.xml b/pom.xml index d485582..a8af319 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ com.github.broken1arrow.Utility-Library:serialize-utility* com.github.broken1arrow.Utility-Library:color-conversion* com.github.broken1arrow.Utility-Library:log-and-validate* + space.arim.morepaperlib:morepaperlib* @@ -50,6 +51,10 @@ org.broken.arrow ${dependencys_path} + + space.arim.morepaperlib + ${dependencys_path} + @@ -85,6 +90,11 @@ https://repo.codemc.io/repository/maven-public/ default + + + arim-mvn-lgpl3 + https://mvn-repo.arim.space/lesser-gpl3/ + @@ -140,6 +150,13 @@ 2.10.1 compile + + + space.arim.morepaperlib + morepaperlib + 0.4.3 + compile + diff --git a/src/main/java/com/dutchjelly/bukkitadapter/Adapter.java b/src/main/java/com/dutchjelly/bukkitadapter/Adapter.java index 72d8eb5..29fd188 100644 --- a/src/main/java/com/dutchjelly/bukkitadapter/Adapter.java +++ b/src/main/java/com/dutchjelly/bukkitadapter/Adapter.java @@ -1,6 +1,7 @@ package com.dutchjelly.bukkitadapter; +import com.dutchjelly.craftenhance.CraftEnhance; import com.dutchjelly.craftenhance.crafthandling.recipes.FurnaceRecipe; import com.dutchjelly.craftenhance.exceptions.ConfigError; import com.dutchjelly.craftenhance.gui.util.SkullCreator; @@ -324,12 +325,12 @@ public static void DiscoverRecipes(final Player player, final List recip if (recipe instanceof ShapedRecipe) { final ShapedRecipe shaped = (ShapedRecipe) recipe;; if (shaped.getKey().getNamespace().contains("craftenhance")) { - player.discoverRecipe(shaped.getKey()); + CraftEnhance.getMorePaperLib().scheduling().entitySpecificScheduler(player).run(() -> player.discoverRecipe(shaped.getKey()), null); } } else if (recipe instanceof ShapelessRecipe) { final ShapelessRecipe shapeless = (ShapelessRecipe) recipe; if (shapeless.getKey().getNamespace().contains("craftenhance")) { - player.discoverRecipe(shapeless.getKey()); + CraftEnhance.getMorePaperLib().scheduling().entitySpecificScheduler(player).run(() -> player.discoverRecipe(shapeless.getKey()), null); } } } diff --git a/src/main/java/com/dutchjelly/craftenhance/CraftEnhance.java b/src/main/java/com/dutchjelly/craftenhance/CraftEnhance.java index a450981..8f28478 100644 --- a/src/main/java/com/dutchjelly/craftenhance/CraftEnhance.java +++ b/src/main/java/com/dutchjelly/craftenhance/CraftEnhance.java @@ -48,6 +48,7 @@ import org.bukkit.configuration.serialization.ConfigurationSerialization; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; +import space.arim.morepaperlib.MorePaperLib; import java.io.File; import java.util.Arrays; @@ -62,7 +63,9 @@ public static CraftEnhance self() { return plugin; } - private Metrics metrics; + private Metrics metrics; + @Getter + private static MorePaperLib morePaperLib; @Getter private FileManager fm; @Getter @@ -89,6 +92,7 @@ public static CraftEnhance self() { @Override public void onEnable() { plugin = this; + morePaperLib = new MorePaperLib(this); //The file manager needs serialization, so firstly register the classes. registerSerialization(); versionChecker = VersionChecker.init(this); @@ -99,7 +103,7 @@ public void onEnable() { Debug.init(this); if (isReloding) - Bukkit.getScheduler().runTaskAsynchronously(this, () -> loadPluginData(isReloding)); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().run(() -> loadPluginData(isReloding)); else { this.loadPluginData(false); loadRecipes(); @@ -117,7 +121,7 @@ public void onEnable() { for (int i = 0; i < 4; i++) Messenger.Message("WARN: The installed version isn't tested to work with this version of the server."); } - Bukkit.getScheduler().runTaskAsynchronously(this, versionChecker::runUpdateCheck); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().run(versionChecker::runUpdateCheck); if (metrics == null) { final int metricsId = 9023; @@ -129,9 +133,9 @@ public void onEnable() { public void reload() { isReloding = true; - Bukkit.getScheduler().runTaskAsynchronously(this, () -> { + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().run(() -> { this.onDisable(); - Bukkit.getScheduler().runTask(this, () -> { + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(() -> { RecipeLoader.clearInstance(); reloadConfig(); this.onEnable(); @@ -241,7 +245,7 @@ private void loadPluginData(final Boolean isReloding) { menuSettingsCache = new MenuSettingsCache(this); if (isReloding) - Bukkit.getScheduler().runTask(this, this::loadRecipes); + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(this::loadRecipes); } private void loadRecipes() { diff --git a/src/main/java/com/dutchjelly/craftenhance/crafthandling/RecipeInjector.java b/src/main/java/com/dutchjelly/craftenhance/crafthandling/RecipeInjector.java index 47d728f..63b85e3 100644 --- a/src/main/java/com/dutchjelly/craftenhance/crafthandling/RecipeInjector.java +++ b/src/main/java/com/dutchjelly/craftenhance/crafthandling/RecipeInjector.java @@ -179,7 +179,7 @@ public void handleCrafting(final PrepareItemCraftEvent craftEvent) { Debug.Send(Type.Crafting, "Recipe matches, injecting " + wbRecipe.getResult().toString()); if (makeItemsadderCompatible && containsModeldata(inv)) { Debug.Send(Type.Crafting, "This recipe contains Modeldata and will be crafted if the recipe is not cancelled."); - Bukkit.getScheduler().runTask(self(), () -> { + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(() -> { if (wbRecipe.matches(inv.getMatrix())) { final BeforeCraftOutputEvent beforeCraftOutputEvent = new BeforeCraftOutputEvent(eRecipe, wbRecipe, wbRecipe.getResult().clone()); if (beforeCraftOutputEvent.isCancelled()) { diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/GuiManager.java b/src/main/java/com/dutchjelly/craftenhance/gui/GuiManager.java index 9f1605c..c9443ca 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/GuiManager.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/GuiManager.java @@ -95,7 +95,7 @@ public boolean chatWaiting(final AsyncPlayerChatEvent e){ final UUID id = e.getPlayer().getUniqueId(); if (!chatWaitingCopy.containsKey(id)) return false; - Bukkit.getScheduler().runTask(getMain(), () -> { + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(() -> { final IChatInputHandler callback = chatWaitingCopy.get(id).getSecond(); if (callback.handle(e.getMessage())) return; final MenuHolder gui = chatWaitingCopy.get(id).getFirst(); @@ -109,14 +109,14 @@ public boolean chatWaitingOld(final AsyncPlayerChatEvent e){ final UUID id = e.getPlayer().getUniqueId(); if (!chatWaiting.containsKey(id)) return false; - Bukkit.getScheduler().runTask(getMain(), () -> { + CraftEnhance.getMorePaperLib().scheduling().entitySpecificScheduler(e.getPlayer()).run(() -> { final IChatInputHandler callback = chatWaiting.get(id).getSecond(); if (callback.handle(e.getMessage())) return; final GUIElement gui = chatWaiting.get(id).getFirst(); if (gui != null) openGUI(e.getPlayer(), gui); chatWaiting.remove(id); - }); + }, null); return true; } public void openGUI(final Player p, final GUIElement gui) { diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/customcrafting/CustomCraftingTable.java b/src/main/java/com/dutchjelly/craftenhance/gui/customcrafting/CustomCraftingTable.java index b194246..c635c1e 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/customcrafting/CustomCraftingTable.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/customcrafting/CustomCraftingTable.java @@ -62,7 +62,7 @@ public void handleEventRest(InventoryClickEvent e) { } Debug.Send("player clicked inside recipe content"); - Bukkit.getScheduler().runTask(CraftEnhance.self(), () -> { + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(() -> { //Call event in next tick (after the click has finished) Bukkit.getServer().getPluginManager().callEvent(new CustomPrepareCraftEvent(this)); }); @@ -208,9 +208,8 @@ public void handleDragging(InventoryDragEvent e){ if(e.getRawSlots().size() == validDrags.size()){ if(updatedMatrix) - Bukkit.getScheduler().runTask(CraftEnhance.self(), () -> - Bukkit.getServer().getPluginManager().callEvent(new CustomPrepareCraftEvent(this)) - ); + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(() -> + Bukkit.getServer().getPluginManager().callEvent(new CustomPrepareCraftEvent(this))); return; } @@ -242,10 +241,10 @@ public void handleDragging(InventoryDragEvent e){ Debug.Send("player dropped " + dropped + " item"); ItemStack newCursor = e.getOldCursor().clone(); if(dropped == newCursor.getAmount()) - Bukkit.getScheduler().runTask(CraftEnhance.self(), () -> e.getView().setCursor(null)); + CraftEnhance.getMorePaperLib().scheduling().entitySpecificScheduler(e.getWhoClicked()).run(() -> e.getView().setCursor(null), null); else { newCursor.setAmount(newCursor.getAmount() - dropped); - Bukkit.getScheduler().runTask(CraftEnhance.self(), () -> e.getView().setCursor(newCursor)); + CraftEnhance.getMorePaperLib().scheduling().entitySpecificScheduler(e.getWhoClicked()).run(() -> e.getView().setCursor(newCursor), null); } if(updatedMatrix){ diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/guis/ChangeCategoryItem.java b/src/main/java/com/dutchjelly/craftenhance/gui/guis/ChangeCategoryItem.java index b9576e1..5a04926 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/guis/ChangeCategoryItem.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/guis/ChangeCategoryItem.java @@ -1,6 +1,7 @@ package com.dutchjelly.craftenhance.gui.guis; import com.dutchjelly.bukkitadapter.Adapter; +import com.dutchjelly.craftenhance.CraftEnhance; import com.dutchjelly.craftenhance.files.CategoryData; import com.dutchjelly.craftenhance.files.MenuSettingsCache; import com.dutchjelly.craftenhance.gui.guis.editors.RecipesViewerCategorysSettings; @@ -20,6 +21,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; +import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; @@ -94,7 +96,7 @@ public boolean run(final MenuButtonData value, final Inventory menu, final Playe final CategoryData newCategoryData = self().getCategoryDataCache().of(this.category, new ItemStack(itemStack), categoryData.getDisplayName()); newCategoryData.setEnhancedRecipes(categoryData.getEnhancedRecipes()); self().getCategoryDataCache().put(this.category, newCategoryData); - Bukkit.getScheduler().runTaskLaterAsynchronously( self(),()-> self().getCategoryDataCache().save(),1L); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().runDelayed(() -> self().getCategoryDataCache().save(), Duration.ofMillis(50L)); new RecipesViewerCategorysSettings(this.category).menuOpen(player); break; } diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/guis/editors/RecipesViewerCategorysSettings.java b/src/main/java/com/dutchjelly/craftenhance/gui/guis/editors/RecipesViewerCategorysSettings.java index 3b95850..c2d661a 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/guis/editors/RecipesViewerCategorysSettings.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/guis/editors/RecipesViewerCategorysSettings.java @@ -1,6 +1,7 @@ package com.dutchjelly.craftenhance.gui.guis.editors; import com.dutchjelly.bukkitadapter.Adapter; +import com.dutchjelly.craftenhance.CraftEnhance; import com.dutchjelly.craftenhance.crafthandling.recipes.EnhancedRecipe; import com.dutchjelly.craftenhance.files.CategoryData; import com.dutchjelly.craftenhance.files.MenuSettingsCache; @@ -20,6 +21,7 @@ import org.bukkit.inventory.ItemStack; import javax.annotation.Nonnull; +import java.time.Duration; import java.util.List; import java.util.Map.Entry; @@ -89,7 +91,7 @@ public boolean run(final MenuButtonData value, final Inventory menu, final Playe self().getCategoryDataCache().put(defaultCategory, oldCategory); } self().getCategoryDataCache().remove((this.category)); - Bukkit.getScheduler().runTaskLaterAsynchronously(self(), () -> self().getCategoryDataCache().save(), 1); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().runDelayed(() -> self().getCategoryDataCache().save(), Duration.ofMillis(50)); new RecipesViewerCategorys("").menuOpen(player); } } diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettings.java b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettings.java index fcaef75..3e11536 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettings.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettings.java @@ -1,6 +1,7 @@ package com.dutchjelly.craftenhance.gui.guis.settings; import com.dutchjelly.bukkitadapter.Adapter; +import com.dutchjelly.craftenhance.CraftEnhance; import com.dutchjelly.craftenhance.crafthandling.recipes.EnhancedRecipe; import com.dutchjelly.craftenhance.crafthandling.recipes.FurnaceRecipe; import com.dutchjelly.craftenhance.crafthandling.recipes.WBRecipe; @@ -128,7 +129,7 @@ public boolean run(final MenuButtonData value, final Inventory menu, final Playe if (player.isConversing()) return true; new HandleChatInput(this, message -> { if (!this.handleSetWorld(message, click)) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } return true; @@ -159,7 +160,7 @@ public boolean run(final MenuButtonData value, final Inventory menu, final Playe if (player.isConversing()) return true; new HandleChatInput(this, msg -> { if (!handlePermissionSetCB(msg)) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } return true; @@ -173,7 +174,7 @@ public boolean run(final MenuButtonData value, final Inventory menu, final Playe if (player.isConversing()) return true; new HandleChatInput(this, msg -> { if (!GuiUtil.changeOrCreateCategory(msg, player, this.recipe)) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } return true; @@ -358,8 +359,8 @@ public Map setPlaceholders() { return placeholders; } - protected void runTask(final Runnable runnable) { - Bukkit.getScheduler().runTaskLater(self(), runnable, 1); + protected void runTask(final Runnable runnable, Player player) { + CraftEnhance.getMorePaperLib().scheduling().entitySpecificScheduler(player).runDelayed(runnable, null, 1); } protected boolean onPlayerClick(final RecipeT recipe, final String buttonAction, final Player player) { diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsBlast.java b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsBlast.java index b0a8c3c..b019aca 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsBlast.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsBlast.java @@ -25,7 +25,7 @@ protected boolean onPlayerClick(final BlastRecipe blastRecipe, final String butt new HandleChatInput(this, msg -> { int parsed; if (msg.equals("cancel") || msg.equals("quit") || msg.equals("exit")) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } try { @@ -39,7 +39,7 @@ protected boolean onPlayerClick(final BlastRecipe blastRecipe, final String butt if (blastRecipe != null) { blastRecipe.setExp(parsed); } - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; }).setMessages("Please input an exp amount.Type q, exit, cancel to turn it off.").start(getViewer()); return true; @@ -49,7 +49,7 @@ protected boolean onPlayerClick(final BlastRecipe blastRecipe, final String butt new HandleChatInput(this, (msg) -> { short parsed; if (msg.equals("cancel") || msg.equals("quit") || msg.equals("exit") || msg.equals("q")) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } try { @@ -63,7 +63,7 @@ protected boolean onPlayerClick(final BlastRecipe blastRecipe, final String butt if (blastRecipe != null) { blastRecipe.setDuration(parsed); } - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; }).setMessages("Please input a cook duration.Type q, exit, cancel to turn it off.").start(player); return true; diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsFurnace.java b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsFurnace.java index d52b0de..8dc07c1 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsFurnace.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsFurnace.java @@ -25,7 +25,7 @@ protected boolean onPlayerClick(final FurnaceRecipe furnaceRecipe, final String new HandleChatInput(this, msg -> { int parsed; if (msg.equals("cancel") || msg.equals("quit") || msg.equals("exit")) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } try { @@ -39,7 +39,7 @@ protected boolean onPlayerClick(final FurnaceRecipe furnaceRecipe, final String if (furnaceRecipe != null) { furnaceRecipe.setExp(parsed); } - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; }).setMessages("Please input an exp amount.Type q, exit, cancel to turn it off.").start(getViewer()); return true; @@ -49,7 +49,7 @@ protected boolean onPlayerClick(final FurnaceRecipe furnaceRecipe, final String new HandleChatInput(this, (msg) -> { short parsed; if (msg.equals("cancel") || msg.equals("quit") || msg.equals("exit") || msg.equals("q")) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } try { @@ -63,7 +63,7 @@ protected boolean onPlayerClick(final FurnaceRecipe furnaceRecipe, final String if (furnaceRecipe != null) { furnaceRecipe.setDuration(parsed); } - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; }).setMessages("Please input a cook duration.Type q, exit, cancel to turn it off.").start(player); return true; diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsSmoker.java b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsSmoker.java index 0b5832d..cfb95e4 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsSmoker.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/guis/settings/RecipeSettingsSmoker.java @@ -24,7 +24,7 @@ protected boolean onPlayerClick(final SmokerRecipe furnaceRecipe, final String b new HandleChatInput(this, msg -> { int parsed; if (msg.equals("cancel") || msg.equals("quit") || msg.equals("exit")) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } try { @@ -38,7 +38,7 @@ protected boolean onPlayerClick(final SmokerRecipe furnaceRecipe, final String b if (furnaceRecipe != null) { furnaceRecipe.setExp(parsed); } - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; }).setMessages("Please input an exp amount.Type q, exit, cancel to turn it off.").start(getViewer()); return true; @@ -48,7 +48,7 @@ protected boolean onPlayerClick(final SmokerRecipe furnaceRecipe, final String b new HandleChatInput(this, (msg) -> { short parsed; if (msg.equals("cancel") || msg.equals("quit") || msg.equals("exit") || msg.equals("q")) { - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; } try { @@ -62,7 +62,7 @@ protected boolean onPlayerClick(final SmokerRecipe furnaceRecipe, final String b if (furnaceRecipe != null) { furnaceRecipe.setDuration(parsed); } - this.runTask(() -> this.menuOpen(player)); + this.runTask(() -> this.menuOpen(player), player); return false; }).setMessages("Please input a cook duration.Type q, exit, cancel to turn it off.").start(player); return true; diff --git a/src/main/java/com/dutchjelly/craftenhance/gui/util/GuiUtil.java b/src/main/java/com/dutchjelly/craftenhance/gui/util/GuiUtil.java index cecdfdb..8d650ad 100644 --- a/src/main/java/com/dutchjelly/craftenhance/gui/util/GuiUtil.java +++ b/src/main/java/com/dutchjelly/craftenhance/gui/util/GuiUtil.java @@ -1,5 +1,6 @@ package com.dutchjelly.craftenhance.gui.util; +import com.dutchjelly.craftenhance.CraftEnhance; import com.dutchjelly.craftenhance.crafthandling.recipes.EnhancedRecipe; import com.dutchjelly.craftenhance.exceptions.ConfigError; import com.dutchjelly.craftenhance.files.CategoryData; @@ -13,6 +14,7 @@ import org.bukkit.inventory.meta.ItemMeta; import javax.annotation.Nonnull; +import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -200,7 +202,7 @@ public static boolean changeCategoryName(final String currentCatogory, final Str final CategoryData newCategoryData = self().getCategoryDataCache().of(currentCatogory, categoryData.getRecipeCategoryItem(), msg); newCategoryData.setEnhancedRecipes(categoryData.getEnhancedRecipes()); self().getCategoryDataCache().put(currentCatogory, newCategoryData); - Bukkit.getScheduler().runTaskLaterAsynchronously( self(),()-> self().getCategoryDataCache().save(),1L); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().runDelayed(() -> self().getCategoryDataCache().save(), Duration.ofMillis(50)); return false; } return true; @@ -223,7 +225,7 @@ public static boolean changeCategoryItem(final String currentCatogory, final Str final CategoryData newCategoryData = self().getCategoryDataCache().of(currentCatogory, new ItemStack(material), categoryData.getDisplayName()); newCategoryData.setEnhancedRecipes(categoryData.getEnhancedRecipes()); self().getCategoryDataCache().put(currentCatogory, newCategoryData); - Bukkit.getScheduler().runTaskLaterAsynchronously( self(),()-> self().getCategoryDataCache().save(),1L); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().runDelayed(() -> self().getCategoryDataCache().save(), Duration.ofMillis(50)); return false; } return true; @@ -239,13 +241,12 @@ public static boolean changeCategory(final String currentCatogory, final String return true; } final CategoryData movedcategoryData = self().getCategoryDataCache().move(currentCatogory, msg); - Bukkit.getScheduler().runTaskLaterAsynchronously( self(),()-> { + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().runDelayed(() -> { self().getCategoryDataCache().save(); if (movedcategoryData != null){ movedcategoryData.getEnhancedRecipes().forEach(EnhancedRecipe::save); } - - },1L); + }, Duration.ofMillis(50L)); return false; } @@ -267,7 +268,7 @@ public static boolean newCategory(final String msg, final Player player) { Messenger.Message("Your category name alredy exist", player); return true; } else { - Bukkit.getScheduler().runTaskLaterAsynchronously( self(),()-> self().getCategoryDataCache().save(),1L); + CraftEnhance.getMorePaperLib().scheduling().asyncScheduler().runDelayed(() -> self().getCategoryDataCache().save(), Duration.ofMillis(50)); return false; } }else { diff --git a/src/main/java/com/dutchjelly/craftenhance/util/Metrics.java b/src/main/java/com/dutchjelly/craftenhance/util/Metrics.java index 717a209..48df686 100644 --- a/src/main/java/com/dutchjelly/craftenhance/util/Metrics.java +++ b/src/main/java/com/dutchjelly/craftenhance/util/Metrics.java @@ -1,5 +1,6 @@ package com.dutchjelly.craftenhance.util; +import com.dutchjelly.craftenhance.CraftEnhance; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -180,7 +181,7 @@ public void run() { } // Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler // Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;) - Bukkit.getScheduler().runTask(plugin, () -> submitData()); + CraftEnhance.getMorePaperLib().scheduling().globalRegionalScheduler().run(() -> submitData()); } }, 1000 * 60 * 5, 1000 * 60 * 30); // Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 7239eda..d584911 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,6 +4,7 @@ name: CraftEnhance version: ${project.version} softdepend: [ItemsAdder] api-version: 1.13 +folia-supported: true commands: recipes: description: Opens a GUI to view the custom recipes. This is an alias of /ceh viewer. Use /recipes help to see the description.