Merge pull request #1052 from CrazyDev05/worldedit_fix

Worldedit fix
This commit is contained in:
Brian Fopiano
2023-12-22 20:03:24 -05:00
committed by GitHub
2 changed files with 20 additions and 6 deletions
@@ -1,11 +1,17 @@
package com.volmit.iris.core.link; package com.volmit.iris.core.link;
import com.volmit.iris.util.data.Cuboid; import com.volmit.iris.util.data.Cuboid;
import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class WorldEditLink { public class WorldEditLink {
private static Boolean enabled = null;
public static Cuboid getSelection(Player p) { public static Cuboid getSelection(Player p) {
if (!hasWorldEdit())
return null;
try { try {
Object instance = Class.forName("com.sk89q.worldedit.WorldEdit").getDeclaredMethod("getInstance").invoke(null); Object instance = Class.forName("com.sk89q.worldedit.WorldEdit").getDeclaredMethod("getInstance").invoke(null);
Object sessionManager = instance.getClass().getDeclaredMethod("getSessionManager").invoke(instance); Object sessionManager = instance.getClass().getDeclaredMethod("getSessionManager").invoke(instance);
@@ -28,4 +34,10 @@ public class WorldEditLink {
} }
return null; return null;
} }
public static boolean hasWorldEdit() {
if (enabled == null)
enabled = Bukkit.getPluginManager().isPluginEnabled("WorldEdit");
return enabled;
}
} }
@@ -54,6 +54,7 @@ import java.util.Objects;
public class WandSVC implements IrisService { public class WandSVC implements IrisService {
private static ItemStack dust; private static ItemStack dust;
private static ItemStack wand;
public static void pasteSchematic(IrisObject s, Location at) { public static void pasteSchematic(IrisObject s, Location at) {
s.place(at); s.place(at);
@@ -226,17 +227,19 @@ public class WandSVC implements IrisService {
return getCuboidFromItem(p.getInventory().getItemInMainHand()); return getCuboidFromItem(p.getInventory().getItemInMainHand());
} }
Cuboid c = WorldEditLink.getSelection(p); if (IrisSettings.get().getWorld().worldEditWandCUI) {
Cuboid c = WorldEditLink.getSelection(p);
if (c != null) { if (c != null) {
return new Location[]{c.getLowerNE(), c.getUpperSW()}; return new Location[]{c.getLowerNE(), c.getUpperSW()};
}
} }
return null; return null;
} }
public static boolean isHoldingWand(Player p) { 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) { public static boolean isHoldingIrisWand(Player p) {
@@ -251,7 +254,6 @@ public class WandSVC implements IrisService {
* @return True if it is * @return True if it is
*/ */
public static boolean isWand(ItemStack is) { public static boolean isWand(ItemStack is) {
ItemStack wand = createWand();
if (is.getItemMeta() == null) return false; if (is.getItemMeta() == null) return false;
return is.getType().equals(wand.getType()) && return is.getType().equals(wand.getType()) &&
is.getItemMeta().getDisplayName().equals(wand.getItemMeta().getDisplayName()) && is.getItemMeta().getDisplayName().equals(wand.getItemMeta().getDisplayName()) &&
@@ -261,7 +263,7 @@ public class WandSVC implements IrisService {
@Override @Override
public void onEnable() { public void onEnable() {
ItemStack wand = createWand(); wand = createWand();
dust = createDust(); dust = createDust();
J.ar(() -> { J.ar(() -> {