From 1ec4bc27f238b02f6f826187cd63e8cc9e66f1e3 Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Sun, 8 Sep 2024 01:32:29 +0200 Subject: [PATCH] dissalow use of gui and add warning for folia. --- .../{PaperScheduler.kt => FoliaScheduler.kt} | 8 ++++---- .../alexcrea/cuanvil/command/EditConfigExecutor.kt | 10 ++++++++++ .../alexcrea/cuanvil/dependency/DependencyManager.kt | 11 ++++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) rename nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/{PaperScheduler.kt => FoliaScheduler.kt} (86%) diff --git a/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/PaperScheduler.kt b/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/FoliaScheduler.kt similarity index 86% rename from nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/PaperScheduler.kt rename to nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/FoliaScheduler.kt index 559646a..3318b94 100644 --- a/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/PaperScheduler.kt +++ b/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/scheduler/FoliaScheduler.kt @@ -6,7 +6,7 @@ import org.bukkit.entity.Entity import org.bukkit.plugin.Plugin import java.util.function.Consumer -class PaperScheduler : TaskScheduler { +class FoliaScheduler : TaskScheduler { override fun scheduleGlobally(plugin: Plugin, task: Runnable, time: Long): Any? { if(time < 1){ return Bukkit.getGlobalRegionScheduler().run( @@ -39,11 +39,11 @@ class PaperScheduler : TaskScheduler { } companion object { - fun isPaper(): Boolean { + fun isFolia(): Boolean { try { - Bukkit::class.java.getDeclaredMethod("getGlobalRegionScheduler") + Class.forName("io.papermc.paper.threadedregions.RegionizedServer") return true - } catch (e: NoSuchMethodException) { + } catch (e: ClassNotFoundException) { return false } } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt index e05a4f2..85761d9 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/EditConfigExecutor.kt @@ -5,6 +5,7 @@ import org.bukkit.command.Command import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandSender import org.bukkit.entity.HumanEntity +import xyz.alexcrea.cuanvil.dependency.DependencyManager import xyz.alexcrea.cuanvil.gui.config.MainConfigGui import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions @@ -15,6 +16,15 @@ class EditConfigExecutor : CommandExecutor { sender.sendMessage(GuiGlobalActions.NO_EDIT_PERM) return false } + if(DependencyManager.isFolia){ + sender.sendMessage("§cIt look like you are using Folia. Sadly Custom Anvil do not support Config gui for Folia.") + sender.sendMessage("§eIt is may come in a future version.") + sender.sendMessage("") + sender.sendMessage("§eCurrently you need to edit manually the config or copy from another server (spigot or better)") + sender.sendMessage("§eThen /anvilconfigreload after config file is edited") + return false + } + if (sender !is HumanEntity) return false MainConfigGui.getInstance().show(sender) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt index 7efe54b..0a5246b 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -1,5 +1,6 @@ package xyz.alexcrea.cuanvil.dependency +import io.delilaheve.CustomAnvil import org.bukkit.Bukkit import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.event.inventory.PrepareAnvilEvent @@ -8,11 +9,12 @@ import xyz.alexcrea.cuanvil.config.ConfigHolder import xyz.alexcrea.cuanvil.dependency.packet.PacketManager import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerSelector import xyz.alexcrea.cuanvil.dependency.scheduler.BukkitScheduler -import xyz.alexcrea.cuanvil.dependency.scheduler.PaperScheduler +import xyz.alexcrea.cuanvil.dependency.scheduler.FoliaScheduler import xyz.alexcrea.cuanvil.dependency.scheduler.TaskScheduler object DependencyManager { + var isFolia: Boolean = false lateinit var scheduler: TaskScheduler lateinit var packetManager: PacketManager var enchantmentSquaredCompatibility: EnchantmentSquaredDependency? = null @@ -23,9 +25,12 @@ object DependencyManager { val pluginManager = Bukkit.getPluginManager() // Bukkit or Paper scheduler ? - scheduler = if(PaperScheduler.isPaper()) PaperScheduler() - else BukkitScheduler() + isFolia = FoliaScheduler.isFolia() + scheduler = if(isFolia) { + CustomAnvil.instance.logger.info("Folia detected... Custom Anvil Folia support is experimental. issues are more likely to happens.") + FoliaScheduler() + } else BukkitScheduler() // Packet Manager val forceProtocolib = ConfigHolder.DEFAULT_CONFIG.config.getBoolean("force_protocolib", false)