9
0
mirror of https://github.com/WiIIiam278/HuskSync.git synced 2025-12-30 20:29:28 +00:00

feat: Add support for Folia (#280)

* feat: Add support for Folia

* feat: fix folia advancement stuff

* feat: fix double negation (whoops)
This commit is contained in:
William
2024-04-12 17:48:41 +01:00
committed by GitHub
parent bd312c48ea
commit 7218390f65
8 changed files with 52 additions and 21 deletions

View File

@@ -60,7 +60,7 @@ public interface UserDataHolder extends DataHolder {
*/
@Override
default void setData(@NotNull Identifier identifier, @NotNull Data data) {
getPlugin().runSync(() -> data.apply(this, getPlugin()));
getPlugin().runSync(() -> data.apply(this, getPlugin()), this);
}
/**
@@ -119,7 +119,7 @@ public interface UserDataHolder extends DataHolder {
return;
}
plugin.runAsync(() -> runAfter.accept(true));
});
}, this);
}
@Override

View File

@@ -20,7 +20,9 @@
package net.william278.husksync.util;
import net.william278.husksync.HuskSync;
import net.william278.husksync.data.UserDataHolder;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.concurrent.CompletableFuture;
@@ -86,7 +88,7 @@ public interface Task extends Runnable {
interface Supplier {
@NotNull
Task.Sync getSyncTask(@NotNull Runnable runnable, long delayTicks);
Task.Sync getSyncTask(@NotNull Runnable runnable, @Nullable UserDataHolder user, long delayTicks);
@NotNull
Task.Async getAsyncTask(@NotNull Runnable runnable, long delayTicks);
@@ -95,8 +97,8 @@ public interface Task extends Runnable {
Task.Repeating getRepeatingTask(@NotNull Runnable runnable, long repeatingTicks);
@NotNull
default Task.Sync runSyncDelayed(@NotNull Runnable runnable, long delayTicks) {
final Task.Sync task = getSyncTask(runnable, delayTicks);
default Task.Sync runSyncDelayed(@NotNull Runnable runnable, @Nullable UserDataHolder user, long delayTicks) {
final Task.Sync task = getSyncTask(runnable, user, delayTicks);
task.run();
return task;
}
@@ -109,7 +111,12 @@ public interface Task extends Runnable {
@NotNull
default Task.Sync runSync(@NotNull Runnable runnable) {
return runSyncDelayed(runnable, 0);
return runSyncDelayed(runnable, null, 0);
}
@NotNull
default Task.Sync runSync(@NotNull Runnable runnable, @NotNull UserDataHolder user) {
return runSyncDelayed(runnable, user, 0);
}
@NotNull