From c7cf03556408f860502c7b0ba456a9ee8a831584 Mon Sep 17 00:00:00 2001 From: Intelli Date: Thu, 13 Jul 2023 19:27:03 -0600 Subject: [PATCH] Check that CampfireStartEvent exists before registering --- .../java/net/coreprotect/listener/ListenerHandler.java | 8 +++++--- .../coreprotect/listener/block/CampfireStartListener.java | 2 ++ .../listener/player/PlayerInteractListener.java | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/coreprotect/listener/ListenerHandler.java b/src/main/java/net/coreprotect/listener/ListenerHandler.java index 2da1162..a974bc0 100644 --- a/src/main/java/net/coreprotect/listener/ListenerHandler.java +++ b/src/main/java/net/coreprotect/listener/ListenerHandler.java @@ -3,8 +3,6 @@ package net.coreprotect.listener; import org.bukkit.plugin.PluginManager; import net.coreprotect.CoreProtect; -import net.coreprotect.bukkit.BukkitAdapter; -import net.coreprotect.config.ConfigHandler; import net.coreprotect.listener.block.BlockBreakListener; import net.coreprotect.listener.block.BlockBurnListener; import net.coreprotect.listener.block.BlockDispenseListener; @@ -86,9 +84,13 @@ public final class ListenerHandler { pluginManager.registerEvents(new BlockPistonListener(), plugin); pluginManager.registerEvents(new BlockPlaceListener(), plugin); pluginManager.registerEvents(new BlockSpreadListener(), plugin); - if (ConfigHandler.SERVER_VERSION >= BukkitAdapter.BUKKIT_V1_20) { + try { + Class.forName("org.bukkit.event.block.CampfireStartEvent"); // Bukkit 1.20+ pluginManager.registerEvents(new CampfireStartListener(), plugin); } + catch (Exception e) { + CampfireStartListener.useCampfireStartEvent = false; + } // Entity Listeners pluginManager.registerEvents(new CreatureSpawnListener(), plugin); diff --git a/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java b/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java index 4296e5a..aaf39cd 100644 --- a/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java +++ b/src/main/java/net/coreprotect/listener/block/CampfireStartListener.java @@ -15,6 +15,8 @@ import net.coreprotect.utility.Util; public final class CampfireStartListener extends Queue implements Listener { + public static boolean useCampfireStartEvent = true; + @EventHandler(priority = EventPriority.MONITOR) protected void onCampfireStart(CampfireStartEvent event) { Block block = event.getBlock(); diff --git a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java index ec0b872..aca6cce 100755 --- a/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java +++ b/src/main/java/net/coreprotect/listener/player/PlayerInteractListener.java @@ -52,6 +52,7 @@ import net.coreprotect.database.lookup.ChestTransactionLookup; import net.coreprotect.database.lookup.InteractionLookup; import net.coreprotect.database.lookup.SignMessageLookup; import net.coreprotect.language.Phrase; +import net.coreprotect.listener.block.CampfireStartListener; import net.coreprotect.model.BlockGroup; import net.coreprotect.paper.PaperAdapter; import net.coreprotect.thread.CacheHandler; @@ -640,7 +641,7 @@ public final class PlayerInteractListener extends Queue implements Listener { }); */ } - else if (type == Material.CAMPFIRE || type == Material.SOUL_CAMPFIRE) { + else if ((type == Material.CAMPFIRE || type == Material.SOUL_CAMPFIRE) && CampfireStartListener.useCampfireStartEvent) { ItemStack handItem = null; ItemStack mainHand = player.getInventory().getItemInMainHand(); ItemStack offHand = player.getInventory().getItemInOffHand();