Skip to content

Commit

Permalink
feat: add folia support
Browse files Browse the repository at this point in the history
  • Loading branch information
sekwah41 committed Jul 18, 2023
1 parent c9ea7c8 commit 4d5bfe6
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 8 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ minecraftServerConfig {
//jarUrl.set('https://download.getbukkit.org/spigot/spigot-1.13.2.jar')
//jarUrl.set('https://download.getbukkit.org/spigot/spigot-1.20.1.jar')
//jarUrl.set('https://api.papermc.io/v2/projects/paper/versions/1.13.2/builds/657/downloads/paper-1.13.2-657.jar')
jarUrl.set('https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/83/downloads/paper-1.20.1-83.jar')
//jarUrl.set('https://api.papermc.io/v2/projects/folia/versions/1.20.1/builds/10/downloads/folia-1.20.1-10.jar')
//jarUrl.set('https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/83/downloads/paper-1.20.1-83.jar')
jarUrl.set('https://api.papermc.io/v2/projects/folia/versions/1.20.1/builds/10/downloads/folia-1.20.1-10.jar')
jvmArgument = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", "-DIReallyKnowWhatIAmDoingISwear=true"]
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@ public Listeners(AdvancedPortalsPlugin plugin) {
plugin.getServer().getPluginManager().registerEvents(this, plugin);

int cleanPeriod = config.getConfig().getInt("CleanUpPeriod", 120);
int period = 60 * cleanPeriod;
int period = 20 * 60 * cleanPeriod;
if(ForkDetector.isFolia()) {
FoliaHandler.repeatingTask(plugin, new CooldownDataRemovalTask(), period);
} else {
plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new CooldownDataRemovalTask(),
20L * period, 20L * period);
period, period);
}
}

Expand Down Expand Up @@ -152,11 +152,18 @@ public void checkTriggerLocations(Player player, boolean useDelayed, Location...

player.setMetadata(HAS_WARPED, new FixedMetadataValue(plugin, System.currentTimeMillis()));
if(ForkDetector.isFolia()) {
FoliaHandler.scheduleEntityTask(plugin, player, new RemoveWarpData(player), 10);
} else {
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new RemoveWarpData(player), 10);
}
if (portal.getTriggers().contains(Material.LAVA)) {
player.setMetadata(LAVA_WARPED, new FixedMetadataValue(plugin, System.currentTimeMillis()));
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new RemoveLavaData(player), 10);
if(ForkDetector.isFolia()) {
FoliaHandler.scheduleEntityTask(plugin, player, new RemoveLavaData(player), 10);
} else {
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new RemoveLavaData(player), 10);
}

}
if (portal.inPortal.contains(player.getUniqueId()))
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,39 @@

import com.sekwah.advancedportals.bukkit.AdvancedPortalsPlugin;
import com.sekwah.advancedportals.bukkit.listeners.Listeners;
import org.bukkit.entity.Entity;

import java.util.concurrent.TimeUnit;

/**
* This is to stop jars such as spigot complaining about folia imports
*/
public class FoliaHandler {
public static void repeatingTask(AdvancedPortalsPlugin plugin, Runnable runnable, int seconds) {
plugin.getServer().getAsyncScheduler().runAtFixedRate(plugin, (task) -> {
public static void repeatingTask(AdvancedPortalsPlugin plugin, Runnable runnable, int ticks) {
plugin.getServer().getGlobalRegionScheduler().runAtFixedRate(plugin, (task) -> {
runnable.run();
}, seconds, seconds, TimeUnit.SECONDS);
}, ticks, ticks);
}

public static void scheduleTask(AdvancedPortalsPlugin plugin, Runnable runnable, int ticks) {
plugin.getServer().getGlobalRegionScheduler().runDelayed(plugin, (task) -> {
runnable.run();
}, ticks);
}

/**
* Will run if the entity isn't destroyed, if you want to run something different in that case also supply a retired runnable.
* @param plugin
* @param entity
* @param runnable
* @param ticks
*/
public static void scheduleEntityTask(AdvancedPortalsPlugin plugin, Entity entity, Runnable runnable, int ticks) {
scheduleEntityTask(plugin, entity, runnable, null, ticks);
}
public static void scheduleEntityTask(AdvancedPortalsPlugin plugin, Entity entity, Runnable runnable, Runnable retired, int ticks) {
entity.getScheduler().runDelayed(plugin, (task) -> {
runnable.run();
}, retired, ticks);
}
}

0 comments on commit 4d5bfe6

Please sign in to comment.