From d7fe94c087aba1444d2d9c694d67c5116ba59337 Mon Sep 17 00:00:00 2001 From: Piotr Bednarski Date: Wed, 12 Feb 2025 03:28:08 +0100 Subject: [PATCH 1/2] update plugin version to 1.1.9 --- build.gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index e9b1218..b2ef818 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'pl.bednarskiwsieci' -version = '1.1.7' +version = '1.1.9' repositories { mavenCentral() @@ -24,8 +24,9 @@ repositories { dependencies { compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") - compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.3.0") compileOnly("com.google.code.gson:gson:2.12.1") + compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.3.0") + compileOnly("com.sk89q.worldedit:worldedit-core:7.3.0") implementation("org.bstats:bstats-bukkit:3.0.0") } From a35325bb633380ebbd455f6faf9899e5453dc16c Mon Sep 17 00:00:00 2001 From: Piotr Bednarski Date: Wed, 12 Feb 2025 03:30:48 +0100 Subject: [PATCH 2/2] handle worldedit if is present Fixes #6 --- .../logicgatesplugin/LogicGatesPlugin.java | 49 +++++++++++++------ 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/src/main/java/pl/bednarskiwsieci/logicgatesplugin/LogicGatesPlugin.java b/src/main/java/pl/bednarskiwsieci/logicgatesplugin/LogicGatesPlugin.java index 5d5493b..3fa9122 100644 --- a/src/main/java/pl/bednarskiwsieci/logicgatesplugin/LogicGatesPlugin.java +++ b/src/main/java/pl/bednarskiwsieci/logicgatesplugin/LogicGatesPlugin.java @@ -1,15 +1,7 @@ package pl.bednarskiwsieci.logicgatesplugin; -import pl.bednarskiwsieci.logicgatesplugin.commands.LogicGatesCommand; -import pl.bednarskiwsieci.logicgatesplugin.integrations.WorldEditIntegration; -import pl.bednarskiwsieci.logicgatesplugin.listeners.GateListener; -import pl.bednarskiwsieci.logicgatesplugin.model.GateData; -import pl.bednarskiwsieci.logicgatesplugin.model.GateType; -import pl.bednarskiwsieci.logicgatesplugin.util.ConfigManager; -import pl.bednarskiwsieci.logicgatesplugin.util.GateUtils; -import pl.bednarskiwsieci.logicgatesplugin.util.GatesConfigManager; -import pl.bednarskiwsieci.logicgatesplugin.util.UpdateChecker; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.util.eventbus.EventBus; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -25,8 +17,18 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitTask; +import pl.bednarskiwsieci.logicgatesplugin.commands.LogicGatesCommand; +import pl.bednarskiwsieci.logicgatesplugin.integrations.WorldEditIntegration; +import pl.bednarskiwsieci.logicgatesplugin.listeners.GateListener; +import pl.bednarskiwsieci.logicgatesplugin.model.GateData; +import pl.bednarskiwsieci.logicgatesplugin.model.GateType; +import pl.bednarskiwsieci.logicgatesplugin.util.ConfigManager; +import pl.bednarskiwsieci.logicgatesplugin.util.GateUtils; +import pl.bednarskiwsieci.logicgatesplugin.util.GatesConfigManager; +import pl.bednarskiwsieci.logicgatesplugin.util.UpdateChecker; import java.io.File; import java.util.*; @@ -124,12 +126,19 @@ public void onEnable() { getLogger().severe("An error occurred while checking for updates"); } - // Register WorldEdit Integration - try { - WorldEdit.getInstance().getEventBus().register(new WorldEditIntegration(this)); - getLogger().info("WorldEdit Integration has been registered"); - } catch (Exception e) { - getLogger().severe("Failed to register WorldEdit integration"); + // Register WorldEdit Integration if WorldEdit is present + if (isWorldEditPresent()) { + try { + WorldEdit worldEditInstance = WorldEdit.getInstance(); + EventBus eventBus = worldEditInstance.getEventBus(); + eventBus.register(new WorldEditIntegration(this)); + getLogger().info("WorldEdit Integration has been registered"); + } catch (Exception e) { + getLogger().severe("Failed to register WorldEdit integration"); + e.printStackTrace(); + } + } else { + getLogger().info("WorldEdit not found, skipping integration"); } } @@ -158,6 +167,16 @@ private void initializeConfigFiles() { //endregion //region Component Registration + private boolean isWorldEditPresent() { + Plugin[] plugins = Bukkit.getPluginManager().getPlugins(); + for(Plugin plugin : plugins) { + if (plugin.getName().toLowerCase().contains("worldedit")) { + return true; + } + } + return false; + } + private void registerCommands() { Objects.requireNonNull(getCommand("logicgates")).setExecutor(new LogicGatesCommand(this, configManager, updateChecker)); }