diff --git a/build.gradle.kts b/build.gradle.kts index 99b092c..1e35e46 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,12 +9,12 @@ version = "" repositories { mavenCentral() - maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") + maven("https://repo.papermc.io/repository/maven-public/") } dependencies { - compileOnly("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT") + compileOnly("dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT") implementation(files("./libs/config.jar")) -} \ No newline at end of file +} diff --git a/src/main/java/dev/hadimhz/welcome/command/CommandHandler.java b/src/main/java/dev/hadimhz/welcome/command/CommandHandler.java index eaf78e1..1719d87 100644 --- a/src/main/java/dev/hadimhz/welcome/command/CommandHandler.java +++ b/src/main/java/dev/hadimhz/welcome/command/CommandHandler.java @@ -19,6 +19,17 @@ public class CommandHandler implements CommandExecutor { private final PlayerListener listener; private final Config config; + private final boolean isFolia = classExist("io.papermc.paper.threadedregions.RegionizedServerInitEvent"); + + private static boolean classExist(String className) { + try { + Class.forName(className); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } + public CommandHandler(Plugin plugin, PlayerListener listener, Config config) { this.plugin = plugin; this.listener = listener; @@ -56,7 +67,11 @@ public CommandHandler(Plugin plugin, PlayerListener listener, Config config) { if (config.displayFirstXWelcomeMessages == -1 || listener.getWelcomed().size() < config.displayFirstXWelcomeMessages) player.chat(config.firstJoin.get(random.nextInt(config.firstJoin.size())).replaceAll("%player%", listener.getPlayer().getName())); - for (String command : config.CommandsToExecuteOnFirstJoin) { + if(isFolia) + for (String command : config.CommandsToExecuteOnFirstJoin) { + Bukkit.getGlobalRegionScheduler().run(plugin, run -> Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command.replaceAll("%player%", player.getName()))); + } + else for (String command : config.CommandsToExecuteOnFirstJoin) { Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), command.replaceAll("%player%", player.getName())); } @@ -64,7 +79,11 @@ public CommandHandler(Plugin plugin, PlayerListener listener, Config config) { if (config.displayFirstXWelcomeMessages == -1 || listener.getWelcomed().size() < config.displayFirstXWelcomeMessages) player.chat(config.joinBack.get(random.nextInt(config.joinBack.size())).replaceAll("%player%", listener.getPlayer().getName())); - for (String command : config.commandsToExecute) { + if(isFolia) + for (String command : config.commandsToExecute) { + Bukkit.getGlobalRegionScheduler().run(plugin, run -> Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command.replaceAll("%player%", player.getName()))); + } + else for (String command : config.commandsToExecute) { Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), command.replaceAll("%player%", player.getName())); } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1977c98..05c23c7 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,7 +2,8 @@ name: WelcomeBack main: dev.hadimhz.welcome.WelcomePlugin version: 1.8 api-version: 1.13 +folia-supported: true commands: welcome: - aliases: [ wb ] \ No newline at end of file + aliases: [ wb ]