Bläddra i källkod

Replace Bukkit schedulers in SaveTimerTask.java

Rockyers 1 år sedan
förälder
incheckning
7f64987585

+ 1 - 1
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -644,7 +644,7 @@ public class mcMMO extends JavaPlugin {
 
 
         long saveIntervalTicks = Math.max(minute, generalConfig.getSaveInterval() * minute);
         long saveIntervalTicks = Math.max(minute, generalConfig.getSaveInterval() * minute);
 
 
-        new SaveTimerTask().runTaskTimer(this, saveIntervalTicks, saveIntervalTicks);
+        new SaveTimerTask().runTaskTimer(saveIntervalTicks, saveIntervalTicks);
 
 
         // Cleanup the backups folder
         // Cleanup the backups folder
         new CleanBackupsTask().runTaskAsynchronously(mcMMO.p);
         new CleanBackupsTask().runTaskAsynchronously(mcMMO.p);

+ 16 - 12
src/main/java/com/gmail/nossr50/runnables/SaveTimerTask.java

@@ -5,22 +5,26 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask;
 import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask;
 import com.gmail.nossr50.util.LogUtils;
 import com.gmail.nossr50.util.LogUtils;
+import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
-import org.bukkit.scheduler.BukkitRunnable;
+import com.tcoded.folialib.wrapper.WrappedTask;
 
 
-public class SaveTimerTask extends BukkitRunnable {
-    @Override
-    public void run() {
-        LogUtils.debug(mcMMO.p.getLogger(), "[User Data] Saving...");
-        // All player data will be saved periodically through this
-        int count = 1;
+import java.util.concurrent.TimeUnit;
 
 
-        for (McMMOPlayer mcMMOPlayer : UserManager.getPlayers()) {
-            new PlayerProfileSaveTask(mcMMOPlayer.getProfile(), false).runTaskLaterAsynchronously(mcMMO.p, count);
-            count++;
-        }
+public class SaveTimerTask {
+    public WrappedTask runTaskTimer(long delay, long period) {
+        return mcMMO.p.getFoliaLib().getImpl().runTimer(() -> {
+            LogUtils.debug(mcMMO.p.getLogger(), "[User Data] Saving...");
+            // All player data will be saved periodically through this
+            int count = 1;
 
 
+            for (McMMOPlayer mcMMOPlayer : UserManager.getPlayers()) {
+                new PlayerProfileSaveTask(mcMMOPlayer.getProfile(), false).runTaskLaterAsynchronously(mcMMO.p, count);
+                count++;
+            }
 
 
-        PartyManager.saveParties();
+
+            PartyManager.saveParties();
+        }, delay * Misc.TICK_CONVERSION_FACTOR, period * Misc.TICK_CONVERSION_FACTOR, TimeUnit.MILLISECONDS);
     }
     }
 }
 }