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.