Skip to content

Commit

Permalink
implement Folia support
Browse files Browse the repository at this point in the history
  • Loading branch information
HSGamer committed May 10, 2024
1 parent 8f2fa9b commit c95496c
Show file tree
Hide file tree
Showing 14 changed files with 62 additions and 43 deletions.
4 changes: 4 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ dependencies {
implementation(libs.nashorn)
implementation(libs.adventure.platform)
implementation(libs.adventure.minimessage)
implementation(libs.minelib.scheduler.global)
implementation(libs.minelib.scheduler.async)
implementation(libs.minelib.scheduler.canceller)

compileOnly("org.jetbrains:annotations:23.0.0")
}
Expand All @@ -47,6 +50,7 @@ tasks {
relocate("org.objectweb.asm", "com.extendedclip.deluxemenus.libs.asm")
relocate("org.openjdk.nashorn", "com.extendedclip.deluxemenus.libs.nashorn")
relocate("net.kyori", "com.extendedclip.deluxemenus.libs.adventure")
relocate("io.github.projectunified.minelib", "com.extendedclip.deluxemenus.libs.minelib")
archiveFileName.set("DeluxeMenus-${rootProject.version}.jar")
}
java {
Expand Down
4 changes: 4 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ score = "4.23.10.8"
nashorn = "15.4"
adventure-platform = "4.3.2"
adventure-minimessage = "4.15.0-SNAPSHOT"
minelib = "1.2.1"

[libraries]
# Compile only
Expand All @@ -31,3 +32,6 @@ score = { module = "com.github.Ssomar-Developement:SCore", version.ref = "score"
nashorn = { module = "org.openjdk.nashorn:nashorn-core", version.ref = "nashorn" }
adventure-platform = { module = "net.kyori:adventure-platform-bukkit", version.ref = "adventure-platform" }
adventure-minimessage = { module = "net.kyori:adventure-text-minimessage", version.ref = "adventure-minimessage" }
minelib-scheduler-global = { module = "io.github.projectunified:minelib-scheduler-global", version.ref = "minelib" }
minelib-scheduler-async = { module = "io.github.projectunified:minelib-scheduler-async", version.ref = "minelib" }
minelib-scheduler-canceller = { module = "io.github.projectunified:minelib-scheduler-canceller", version.ref = "minelib" }
3 changes: 2 additions & 1 deletion src/main/java/com/extendedclip/deluxemenus/DeluxeMenus.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.extendedclip.deluxemenus.utils.VersionHelper;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import io.github.projectunified.minelib.scheduler.canceller.TaskCanceller;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.Component;
Expand Down Expand Up @@ -171,7 +172,7 @@ public void onEnable() {
public void onDisable() {
Bukkit.getMessenger().unregisterOutgoingPluginChannel(this, "BungeeCord");

Bukkit.getScheduler().cancelTasks(this);
TaskCanceller.get(this).cancelAll();

if (this.adventure != null) {
this.adventure.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,9 @@
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;

public class ClickActionTask extends BukkitRunnable {
public class ClickActionTask implements Runnable {

private final DeluxeMenus plugin;
private final UUID uuid;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import java.util.Collection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.TextReplacementConfig;
Expand Down Expand Up @@ -182,8 +184,10 @@ public boolean onCommand(
true
);

GlobalScheduler scheduler = GlobalScheduler.get(plugin);

if (action.hasDelay()) {
actionTask.runTaskLater(plugin, action.getDelay(holder));
scheduler.runLater(actionTask, action.getDelay(holder));

plugin.sms(
sender,
Expand All @@ -193,7 +197,7 @@ public boolean onCommand(
return true;
}

actionTask.runTask(plugin);
scheduler.run(actionTask);

plugin.sms(
sender,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import com.extendedclip.deluxemenus.utils.DebugLevel;
import com.extendedclip.deluxemenus.utils.LocationUtils;
import com.extendedclip.deluxemenus.utils.VersionHelper;
import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Material;
Expand Down Expand Up @@ -1528,12 +1529,14 @@ public void onClick(@NotNull final MenuHolder holder) {
holder.parsePlaceholdersInArguments()
);

GlobalScheduler scheduler = GlobalScheduler.get(plugin);

if (action.hasDelay()) {
actionTask.runTaskLater(plugin, action.getDelay(holder));
scheduler.runLater(actionTask, action.getDelay(holder));
continue;
}

actionTask.runTask(plugin);
scheduler.run(actionTask);
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.extendedclip.deluxemenus.DeluxeMenus;
import com.extendedclip.deluxemenus.utils.DebugLevel;
import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityPickupItemEvent;
Expand Down Expand Up @@ -53,8 +54,7 @@ private void onDrop(@NotNull final PlayerDropItemEvent event) {

@EventHandler
private void onLogin(@NotNull final PlayerLoginEvent event) {
plugin.getServer().getScheduler().runTaskLater(
plugin,
GlobalScheduler.get(plugin).runLater(
() -> {
for (final ItemStack itemStack : event.getPlayer().getInventory().getContents()) {
if (itemStack == null) continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@
import com.extendedclip.deluxemenus.cache.SimpleCache;
import com.extendedclip.deluxemenus.utils.DebugLevel;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
import java.util.logging.Level;

import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import net.Indyuce.mmoitems.MMOItems;
import net.Indyuce.mmoitems.api.Type;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -42,17 +43,19 @@ public ItemStack getItem(@NotNull final String... arguments) {

ItemStack mmoItem = null;
try {
mmoItem = Bukkit.getScheduler().callSyncMethod(DeluxeMenus.getInstance(), () -> {
CompletableFuture<ItemStack> future = new CompletableFuture<>();
GlobalScheduler.get(DeluxeMenus.getInstance()).run(() -> {
ItemStack item = MMOItems.plugin.getItem(itemType, splitArgs[1]);

if (item == null) {
return new ItemStack(Material.STONE, 1);
future.complete(new ItemStack(Material.STONE, 1));
return;
}

cache.put(arguments[0], item);

return item;
}).get();
future.complete(item);
});
mmoItem = future.get();
} catch (InterruptedException | ExecutionException e) {
DeluxeMenus.debug(DebugLevel.HIGHEST, Level.SEVERE, "Error getting MMOItem synchronously.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.TimeUnit;

import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand Down Expand Up @@ -96,7 +98,7 @@ public void onClose(InventoryCloseEvent event) {

if (Menu.inMenu(player)) {
Menu.closeMenu(player, false);
Bukkit.getScheduler().runTaskLater(plugin, () -> {
GlobalScheduler.get(plugin).runLater(() -> {
Menu.cleanInventory(player, plugin.getMenuItemMarker());
player.updateInventory();
}, 3L);
Expand Down
9 changes: 6 additions & 3 deletions src/main/java/com/extendedclip/deluxemenus/menu/Menu.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
import java.util.*;
import java.util.Map.Entry;
import java.util.logging.Level;

import io.github.projectunified.minelib.scheduler.async.AsyncScheduler;
import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import me.clip.placeholderapi.util.Msg;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
Expand Down Expand Up @@ -205,7 +208,7 @@ public static void closeMenu(final Player p, boolean close, boolean executeClose
}

if (close) {
Bukkit.getScheduler().runTask(DeluxeMenus.getInstance(), () -> {
GlobalScheduler.get(DeluxeMenus.getInstance()).run(() -> {
p.closeInventory();
cleanInventory(p, DeluxeMenus.getInstance().getMenuItemMarker());
});
Expand Down Expand Up @@ -389,7 +392,7 @@ public void openMenu(final Player viewer, final Map<String, String> args, final
return;
}

Bukkit.getScheduler().runTaskAsynchronously(DeluxeMenus.getInstance(), () -> {
AsyncScheduler.get(DeluxeMenus.getInstance()).run(() -> {

Set<MenuItem> activeItems = new HashSet<>();

Expand Down Expand Up @@ -480,7 +483,7 @@ public void openMenu(final Player viewer, final Map<String, String> args, final

final boolean updatePlaceholders = update;

Bukkit.getScheduler().runTask(DeluxeMenus.getInstance(), () -> {
GlobalScheduler.get(DeluxeMenus.getInstance()).run(() -> {
if (inMenu(holder.getViewer())) {
closeMenu(holder.getViewer(), false);
}
Expand Down
17 changes: 9 additions & 8 deletions src/main/java/com/extendedclip/deluxemenus/menu/MenuHolder.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

import com.extendedclip.deluxemenus.DeluxeMenus;
import com.extendedclip.deluxemenus.utils.StringUtils;
import org.bukkit.Bukkit;
import io.github.projectunified.minelib.scheduler.async.AsyncScheduler;
import io.github.projectunified.minelib.scheduler.common.task.Task;
import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import org.jetbrains.annotations.NotNull;

Expand All @@ -25,7 +26,7 @@ public class MenuHolder implements InventoryHolder {
private Player placeholderPlayer;
private String menuName;
private Set<MenuItem> activeItems;
private BukkitTask updateTask = null;
private Task updateTask = null;
private Inventory inventory;
private boolean updating;
private boolean parsePlaceholdersInArguments;
Expand All @@ -47,7 +48,7 @@ public String getViewerName() {
return viewer.getName();
}

public BukkitTask getUpdateTask() {
public Task getUpdateTask() {
return updateTask;
}

Expand Down Expand Up @@ -124,7 +125,7 @@ public void refreshMenu() {

stopPlaceholderUpdate();

Bukkit.getScheduler().runTaskAsynchronously(DeluxeMenus.getInstance(), () -> {
AsyncScheduler.get(DeluxeMenus.getInstance()).run(() -> {

final Set<MenuItem> active = new HashSet<>();

Expand Down Expand Up @@ -162,7 +163,7 @@ public void refreshMenu() {
Menu.closeMenu(getViewer(), true);
}

Bukkit.getScheduler().runTask(DeluxeMenus.getInstance(), () -> {
GlobalScheduler.get(DeluxeMenus.getInstance()).run(() -> {

boolean update = false;

Expand Down Expand Up @@ -210,7 +211,7 @@ public void startUpdatePlaceholdersTask() {
stopPlaceholderUpdate();
}

updateTask = new BukkitRunnable() {
updateTask = AsyncScheduler.get(DeluxeMenus.getInstance()).runTimer(new Runnable() {

@Override
public void run() {
Expand Down Expand Up @@ -275,7 +276,7 @@ public void run() {
}
}

}.runTaskTimerAsynchronously(DeluxeMenus.getInstance(), 20L,
}, 20L,
20L * Menu.getMenu(menuName).getUpdateInterval());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
import java.util.stream.Collectors;
import java.util.zip.GZIPOutputStream;
import javax.net.ssl.HttpsURLConnection;

import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -87,7 +89,7 @@ public Metrics(JavaPlugin plugin, int serviceId) {
enabled,
this::appendPlatformData,
this::appendServiceData,
submitDataTask -> Bukkit.getScheduler().runTask(plugin, submitDataTask),
submitDataTask -> GlobalScheduler.get(plugin).run(submitDataTask),
plugin::isEnabled,
(message, error) -> this.plugin.getLogger().log(Level.WARNING, message, error),
(message) -> this.plugin.getLogger().log(Level.INFO, message),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@
import java.net.URL;
import java.util.logging.Level;
import java.util.regex.Pattern;

import io.github.projectunified.minelib.scheduler.async.AsyncScheduler;
import io.github.projectunified.minelib.scheduler.global.GlobalScheduler;
import net.kyori.adventure.text.TextReplacementConfig;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;

public class UpdateChecker implements Listener {
Expand All @@ -34,21 +36,11 @@ public class UpdateChecker implements Listener {
public UpdateChecker(final @NotNull DeluxeMenus instance) {
plugin = instance;

new BukkitRunnable() {
@Override
public void run() {
if (check()) {
new BukkitRunnable() {

@Override
public void run() {
register();
}
}.runTask(plugin);
}
AsyncScheduler.get(plugin).run(() -> {
if (check()) {
GlobalScheduler.get(plugin).run(this::register);
}

}.runTaskAsynchronously(plugin);
});
}

private void register() {
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ version: ${version}
authors: [ extended_clip, Glare ]
softdepend: [ PlaceholderAPI, Vault, HeadDatabase, ItemsAdder, Oraxen, ExecutableItems, ExecutableBlocks, Score ]
description: All in one inventory menu system
folia-supported: true
commands:
deluxemenus:
description: DeluxeMenus main commands
Expand Down

0 comments on commit c95496c

Please sign in to comment.