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..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 @@ -1,11 +1,17 @@ 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; public class WorldEditLink { + private static Boolean enabled = null; + 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 +34,10 @@ public class WorldEditLink { } return null; } + + public static boolean hasWorldEdit() { + if (enabled == null) + enabled = Bukkit.getPluginManager().isPluginEnabled("WorldEdit"); + return enabled; + } } 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..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); @@ -226,17 +227,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) { @@ -251,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()) && @@ -261,7 +263,7 @@ public class WandSVC implements IrisService { @Override public void onEnable() { - ItemStack wand = createWand(); + wand = createWand(); dust = createDust(); J.ar(() -> {