dissalow use of gui and add warning for folia.

This commit is contained in:
alexcrea 2024-09-08 01:32:29 +02:00
parent 80aeb165cc
commit 1ec4bc27f2
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
3 changed files with 22 additions and 7 deletions

View file

@ -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
}
}

View file

@ -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)

View file

@ -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)