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

View File

@@ -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;
}
}

View File

@@ -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(() -> {