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 org.bukkit.plugin.Plugin
import java.util.function.Consumer import java.util.function.Consumer
class PaperScheduler : TaskScheduler { class FoliaScheduler : TaskScheduler {
override fun scheduleGlobally(plugin: Plugin, task: Runnable, time: Long): Any? { override fun scheduleGlobally(plugin: Plugin, task: Runnable, time: Long): Any? {
if(time < 1){ if(time < 1){
return Bukkit.getGlobalRegionScheduler().run( return Bukkit.getGlobalRegionScheduler().run(
@ -39,11 +39,11 @@ class PaperScheduler : TaskScheduler {
} }
companion object { companion object {
fun isPaper(): Boolean { fun isFolia(): Boolean {
try { try {
Bukkit::class.java.getDeclaredMethod("getGlobalRegionScheduler") Class.forName("io.papermc.paper.threadedregions.RegionizedServer")
return true return true
} catch (e: NoSuchMethodException) { } catch (e: ClassNotFoundException) {
return false return false
} }
} }

View file

@ -5,6 +5,7 @@ import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender import org.bukkit.command.CommandSender
import org.bukkit.entity.HumanEntity import org.bukkit.entity.HumanEntity
import xyz.alexcrea.cuanvil.dependency.DependencyManager
import xyz.alexcrea.cuanvil.gui.config.MainConfigGui import xyz.alexcrea.cuanvil.gui.config.MainConfigGui
import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions
@ -15,6 +16,15 @@ class EditConfigExecutor : CommandExecutor {
sender.sendMessage(GuiGlobalActions.NO_EDIT_PERM) sender.sendMessage(GuiGlobalActions.NO_EDIT_PERM)
return false 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 if (sender !is HumanEntity) return false
MainConfigGui.getInstance().show(sender) MainConfigGui.getInstance().show(sender)

View file

@ -1,5 +1,6 @@
package xyz.alexcrea.cuanvil.dependency package xyz.alexcrea.cuanvil.dependency
import io.delilaheve.CustomAnvil
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.event.inventory.InventoryClickEvent
import org.bukkit.event.inventory.PrepareAnvilEvent 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.PacketManager
import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerSelector import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerSelector
import xyz.alexcrea.cuanvil.dependency.scheduler.BukkitScheduler 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 import xyz.alexcrea.cuanvil.dependency.scheduler.TaskScheduler
object DependencyManager { object DependencyManager {
var isFolia: Boolean = false
lateinit var scheduler: TaskScheduler lateinit var scheduler: TaskScheduler
lateinit var packetManager: PacketManager lateinit var packetManager: PacketManager
var enchantmentSquaredCompatibility: EnchantmentSquaredDependency? = null var enchantmentSquaredCompatibility: EnchantmentSquaredDependency? = null
@ -23,9 +25,12 @@ object DependencyManager {
val pluginManager = Bukkit.getPluginManager() val pluginManager = Bukkit.getPluginManager()
// Bukkit or Paper scheduler ? // Bukkit or Paper scheduler ?
scheduler = if(PaperScheduler.isPaper()) PaperScheduler() isFolia = FoliaScheduler.isFolia()
else BukkitScheduler() 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 // Packet Manager
val forceProtocolib = ConfigHolder.DEFAULT_CONFIG.config.getBoolean("force_protocolib", false) val forceProtocolib = ConfigHolder.DEFAULT_CONFIG.config.getBoolean("force_protocolib", false)