From 2b449a1f3d0a90792eaf9698ff2d5f3435c12d6c Mon Sep 17 00:00:00 2001 From: Julian Krings <47589149+CrazyDev05@users.noreply.github.com> Date: Fri, 17 Nov 2023 11:40:56 +0100 Subject: [PATCH 1/4] Add Settings check before calling WorldEditLink --- .../java/com/volmit/iris/core/service/WandSVC.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/service/WandSVC.java b/core/src/main/java/com/volmit/iris/core/service/WandSVC.java index 7f564c8af..06549248a 100644 --- a/core/src/main/java/com/volmit/iris/core/service/WandSVC.java +++ b/core/src/main/java/com/volmit/iris/core/service/WandSVC.java @@ -226,17 +226,19 @@ public class WandSVC implements IrisService { return getCuboidFromItem(p.getInventory().getItemInMainHand()); } - Cuboid c = WorldEditLink.getSelection(p); + if (IrisSettings.get().getWorld().worldEditWandCUI) { + Cuboid c = WorldEditLink.getSelection(p); - if (c != null) { - return new Location[]{c.getLowerNE(), c.getUpperSW()}; + if (c != null) { + return new Location[]{c.getLowerNE(), c.getUpperSW()}; + } } return null; } public static boolean isHoldingWand(Player p) { - return isHoldingIrisWand(p) || WorldEditLink.getSelection(p) != null; + return isHoldingIrisWand(p) || (IrisSettings.get().getWorld().worldEditWandCUI && WorldEditLink.getSelection(p) != null); } public static boolean isHoldingIrisWand(Player p) { From e7e46f78c7bef73fb90bf7429a66c038731db437 Mon Sep 17 00:00:00 2001 From: Julian Krings <47589149+CrazyDev05@users.noreply.github.com> Date: Fri, 17 Nov 2023 11:41:57 +0100 Subject: [PATCH 2/4] Disable WorldEditLink when WorldEdit not present/loaded --- .../java/com/volmit/iris/core/link/WorldEditLink.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java b/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java index 365797e38..ff631f947 100644 --- a/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java +++ b/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java @@ -1,11 +1,16 @@ package com.volmit.iris.core.link; import com.volmit.iris.util.data.Cuboid; +import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; public class WorldEditLink { public static Cuboid getSelection(Player p) { + if (!hasWorldEdit()) + return null; + try { Object instance = Class.forName("com.sk89q.worldedit.WorldEdit").getDeclaredMethod("getInstance").invoke(null); Object sessionManager = instance.getClass().getDeclaredMethod("getSessionManager").invoke(instance); @@ -28,4 +33,9 @@ public class WorldEditLink { } return null; } + + public static boolean hasWorldEdit() { + Plugin plugin = Bukkit.getPluginManager().getPlugin("WorldEdit"); + return plugin != null && plugin.isEnabled(); + } } From c809f50c3b7db000cbfbdf1448c5c839e0c6d9c5 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Fri, 17 Nov 2023 11:49:23 +0100 Subject: [PATCH 3/4] Optimise check for wand item --- core/src/main/java/com/volmit/iris/core/service/WandSVC.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/service/WandSVC.java b/core/src/main/java/com/volmit/iris/core/service/WandSVC.java index 06549248a..27fc4c87a 100644 --- a/core/src/main/java/com/volmit/iris/core/service/WandSVC.java +++ b/core/src/main/java/com/volmit/iris/core/service/WandSVC.java @@ -54,6 +54,7 @@ import java.util.Objects; public class WandSVC implements IrisService { private static ItemStack dust; + private static ItemStack wand; public static void pasteSchematic(IrisObject s, Location at) { s.place(at); @@ -253,7 +254,6 @@ public class WandSVC implements IrisService { * @return True if it is */ public static boolean isWand(ItemStack is) { - ItemStack wand = createWand(); if (is.getItemMeta() == null) return false; return is.getType().equals(wand.getType()) && is.getItemMeta().getDisplayName().equals(wand.getItemMeta().getDisplayName()) && @@ -263,7 +263,7 @@ public class WandSVC implements IrisService { @Override public void onEnable() { - ItemStack wand = createWand(); + wand = createWand(); dust = createDust(); J.ar(() -> { From 5b3fdb6e6237c028ad500a5d3803ff72b59017a3 Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Fri, 17 Nov 2023 15:43:59 +0100 Subject: [PATCH 4/4] Optimise WorldEdit check --- .../java/com/volmit/iris/core/link/WorldEditLink.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java b/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java index ff631f947..168b8c066 100644 --- a/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java +++ b/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java @@ -4,9 +4,10 @@ import com.volmit.iris.util.data.Cuboid; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; public class WorldEditLink { + private static Boolean enabled = null; + public static Cuboid getSelection(Player p) { if (!hasWorldEdit()) return null; @@ -35,7 +36,8 @@ public class WorldEditLink { } public static boolean hasWorldEdit() { - Plugin plugin = Bukkit.getPluginManager().getPlugin("WorldEdit"); - return plugin != null && plugin.isEnabled(); + if (enabled == null) + enabled = Bukkit.getPluginManager().isPluginEnabled("WorldEdit"); + return enabled; } }