Skip to content

Commit

Permalink
Merge pull request #32 from Deichor/master
Browse files Browse the repository at this point in the history
Add folia support with UniversalScheduler
  • Loading branch information
hamza-cskn committed Sep 1, 2023
2 parents 3210cf3 + 3707035 commit 9ac8c8c
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 15 deletions.
1 change: 1 addition & 0 deletions advancedslot/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
dependencies {
compileOnly project(':core')
compileOnly 'org.spigotmc:spigot:1.8.8-R0.1-SNAPSHOT'
implementation 'com.github.Anon8281:UniversalScheduler:0.1.6'
}

project.setLibsDirName('../../target')
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package mc.obliviate.inventory.advancedslot;

import com.github.Anon8281.universalScheduler.scheduling.schedulers.TaskScheduler;
import mc.obliviate.inventory.Gui;
import mc.obliviate.inventory.Icon;
import org.bukkit.Bukkit;

import mc.obliviate.inventory.Scheduler;
import org.bukkit.Material;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent;
Expand Down Expand Up @@ -142,7 +144,10 @@ public void putIconToAdvancedSlot(@Nonnull final AdvancedSlot aSlot, @Nonnull fi
default:
return;
}
Bukkit.getScheduler().runTaskLater(this.gui.getPlugin(), () -> {

TaskScheduler scheduler = Scheduler.getScheduler();

scheduler.runTaskLater(() -> {
if (this.gui.getInventory().getItem(aSlot.getSlot()) == null) {
aSlot.reset();
}
Expand Down
1 change: 1 addition & 0 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ dependencies {
compileOnly 'net.kyori:adventure-text-serializer-legacy:$adventure'
compileOnly 'net.kyori:adventure-text-serializer-gson:$adventure'
implementation 'com.github.hamza-cskn:obliviate-utils:2.0.6'
implementation 'com.github.Anon8281:UniversalScheduler:0.1.6'
}

project.setLibsDirName('../../target')
33 changes: 20 additions & 13 deletions core/src/main/java/mc/obliviate/inventory/Gui.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package mc.obliviate.inventory;

import com.github.Anon8281.universalScheduler.scheduling.schedulers.TaskScheduler;
import com.github.Anon8281.universalScheduler.scheduling.tasks.MyScheduledTask;
import com.google.common.base.Preconditions;
import mc.obliviate.inventory.event.customclosevent.FakeInventoryCloseEvent;
import mc.obliviate.inventory.util.NMSUtil;
Expand All @@ -16,7 +18,6 @@
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitTask;

import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
Expand All @@ -32,7 +33,7 @@
public abstract class Gui implements InventoryHolder {

private final Map<Integer, GuiIcon> registeredIcons;
private final List<BukkitTask> taskList = new ArrayList<>();
private final List<MyScheduledTask> taskList = new ArrayList<>();
private final String id;
private final InventoryType inventoryType;
public final Player player;
Expand Down Expand Up @@ -243,11 +244,14 @@ public void addItem(@Nonnegative int slot, Material material) {
* @param periodInTicks
* @param update
*/
public void updateTask(@Nonnegative long runDelayInTicks, @Nonnegative long periodInTicks, @Nonnull final Consumer<BukkitTask> update) {
public void updateTask(@Nonnegative long runDelayInTicks, @Nonnegative long periodInTicks, @Nonnull final Consumer<MyScheduledTask> update) {
Preconditions.checkNotNull(InventoryAPI.getInstance(), "InventoryAPI is not initialized.");
final BukkitTask[] bukkitTask = new BukkitTask[]{null};
bukkitTask[0] = Bukkit.getScheduler().runTaskTimer(getPlugin(), () -> update.accept(bukkitTask[0]), runDelayInTicks, periodInTicks);
taskList.add(bukkitTask[0]);
final MyScheduledTask[] scheduledTask = new MyScheduledTask[]{null};

TaskScheduler scheduler = Scheduler.getScheduler();

scheduledTask[0] = scheduler.runTaskTimer(() -> update.accept(scheduledTask[0]), runDelayInTicks, periodInTicks);
taskList.add(scheduledTask[0]);
}

/**
Expand All @@ -257,11 +261,14 @@ public void updateTask(@Nonnegative long runDelayInTicks, @Nonnegative long peri
* @param runDelayInTicks
* @param update
*/
public void runTaskLater(@Nonnegative long runDelayInTicks, @Nonnull final Consumer<BukkitTask> update) {
public void runTaskLater(@Nonnegative long runDelayInTicks, @Nonnull final Consumer<MyScheduledTask> update) {
Preconditions.checkNotNull(InventoryAPI.getInstance(), "InventoryAPI is not initialized.");
final BukkitTask[] bukkitTask = new BukkitTask[]{null};
bukkitTask[0] = Bukkit.getScheduler().runTaskLater(getPlugin(), () -> update.accept(bukkitTask[0]), runDelayInTicks);
taskList.add(bukkitTask[0]);
final MyScheduledTask[] scheduledTask = new MyScheduledTask[]{null};

TaskScheduler scheduler = Scheduler.getScheduler();

scheduledTask[0] = scheduler.runTaskLater(() -> update.accept(scheduledTask[0]), runDelayInTicks);
taskList.add(scheduledTask[0]);
}

@Nonnull
Expand Down Expand Up @@ -357,18 +364,18 @@ public void setClosed(boolean closed) {
this.isClosed = closed;
}

public List<BukkitTask> getTaskList() {
public List<MyScheduledTask> getTaskList() {
return Collections.unmodifiableList(taskList);
}

public void stopTask(@Nonnull BukkitTask task) {
public void stopTask(@Nonnull MyScheduledTask task) {
Preconditions.checkNotNull(task, "task cannot be null");
task.cancel();
taskList.remove(task);
}

public void stopAllTasks() {
taskList.forEach(BukkitTask::cancel);
taskList.forEach(MyScheduledTask::cancel);
taskList.clear();
}

Expand Down
15 changes: 15 additions & 0 deletions core/src/main/java/mc/obliviate/inventory/Scheduler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package mc.obliviate.inventory;

import com.github.Anon8281.universalScheduler.UniversalScheduler;
import com.github.Anon8281.universalScheduler.scheduling.schedulers.TaskScheduler;

public class Scheduler {


public static TaskScheduler getScheduler(){

return UniversalScheduler.getScheduler(InventoryAPI.getInstance().getPlugin());

}

}

0 comments on commit 9ac8c8c

Please sign in to comment.