diff --git a/war/pom.xml b/war/pom.xml
index 122e74f..cc40d00 100644
--- a/war/pom.xml
+++ b/war/pom.xml
@@ -15,21 +15,17 @@
UTF-8
+
+ maven.cmastudios.me
+ https://maven.cmastudios.me/
+
spigot-repo
https://hub.spigotmc.org/nexus/content/groups/public/
-
- cma-repo
- http://ftp.cmastudios.me/maven/
-
-
- tagapi-repo
- http://repo.kitteh.org/content/repositories/public/
-
sk89q-repo
- http://maven.sk89q.com/repo/
+ https://maven.sk89q.com/repo/
@@ -48,8 +44,8 @@
- cma-repo
- ftp://ftp.cmastudios.me/srv/ftp/maven
+ maven.cmastudios.me
+ s3://maven.cmastudios.me/
@@ -93,8 +89,9 @@
- org.apache.maven.wagon
- wagon-ftp
+ org.kuali.maven.wagons
+ maven-s3-wagon
+ 1.2.1
@@ -137,9 +134,15 @@
test
- com.sk89q
- worldedit
- 5.5.8
+ com.sk89q.worldedit
+ worldedit-bukkit
+ 7.0.0-20181118.055910-28
+ jar
+
+
+ com.sk89q.worldedit
+ worldedit-core
+ 7.0.0-20181118.055910-28
jar
diff --git a/war/src/main/java/com/tommytony/war/command/SetZoneCommand.java b/war/src/main/java/com/tommytony/war/command/SetZoneCommand.java
index f4d42e6..c021047 100644
--- a/war/src/main/java/com/tommytony/war/command/SetZoneCommand.java
+++ b/war/src/main/java/com/tommytony/war/command/SetZoneCommand.java
@@ -1,13 +1,9 @@
package com.tommytony.war.command;
-import com.sk89q.worldedit.bukkit.WorldEditPlugin;
-import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
-import com.sk89q.worldedit.bukkit.selections.Selection;
+import com.tommytony.war.War;
+import com.tommytony.war.utility.Compat;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import org.bukkit.Location;
-
-import com.tommytony.war.War;
public class SetZoneCommand extends AbstractZoneMakerCommand {
@@ -30,20 +26,15 @@ public class SetZoneCommand extends AbstractZoneMakerCommand {
} else if (this.args.length > 2) {
return false;
} else if (this.args.length == 1) {
- if (War.war.getServer().getPluginManager().isPluginEnabled("WorldEdit")) {
- WorldEditPlugin worldEdit = (WorldEditPlugin) War.war.getServer().getPluginManager().getPlugin("WorldEdit");
- Selection selection = worldEdit.getSelection(player);
- if (selection != null && selection instanceof CuboidSelection) {
- Location min = selection.getMinimumPoint();
- Location max = selection.getMaximumPoint();
- ZoneSetter setter = new ZoneSetter(player, this.args[0]);
- setter.placeCorner1(min.getBlock());
- setter.placeCorner2(max.getBlock());
- return true;
- }
+ Compat.BlockPair pair = Compat.getWorldEditSelection(player);
+ if (pair != null) {
+ ZoneSetter setter = new ZoneSetter(player, this.args[0]);
+ setter.placeCorner1(pair.getBlock1());
+ setter.placeCorner2(pair.getBlock2());
+ return true;
}
War.war.addWandBearer(player, this.args[0]);
- } else if (this.args.length == 2) {
+ } else {
if (!this.args[1].equals("southeast") && !this.args[1].equals("northwest") && !this.args[1].equals("se") && !this.args[1].equals("nw") && !this.args[1].equals("corner1") && !this.args[1].equals("corner2") && !this.args[1].equals("c1") && !this.args[1].equals("c2") && !this.args[1].equals("pos1") && !this.args[1].equals("pos2") && !this.args[1].equals("wand")) {
return false;
}
diff --git a/war/src/main/java/com/tommytony/war/ui/EditOrCreateZoneUI.java b/war/src/main/java/com/tommytony/war/ui/EditOrCreateZoneUI.java
index c249bc2..b604aa7 100644
--- a/war/src/main/java/com/tommytony/war/ui/EditOrCreateZoneUI.java
+++ b/war/src/main/java/com/tommytony/war/ui/EditOrCreateZoneUI.java
@@ -1,14 +1,11 @@
package com.tommytony.war.ui;
import com.google.common.collect.ImmutableList;
-import com.sk89q.worldedit.bukkit.WorldEditPlugin;
-import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
-import com.sk89q.worldedit.bukkit.selections.Selection;
import com.tommytony.war.War;
import com.tommytony.war.Warzone;
import com.tommytony.war.command.ZoneSetter;
+import com.tommytony.war.utility.Compat;
import org.bukkit.ChatColor;
-import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
@@ -38,14 +35,13 @@ public class EditOrCreateZoneUI extends ChestUI {
War.war.getUIManager().getPlayerMessage(player, "Select region for zone using WorldEdit and then type a name:", new StringRunnable() {
@Override
public void run() {
- WorldEditPlugin worldEdit = (WorldEditPlugin) War.war.getServer().getPluginManager().getPlugin("WorldEdit");
- Selection selection = worldEdit.getSelection(player);
- if (selection != null && selection instanceof CuboidSelection) {
- Location min = selection.getMinimumPoint();
- Location max = selection.getMaximumPoint();
+ Compat.BlockPair pair = Compat.getWorldEditSelection(player);
+ if (pair != null) {
ZoneSetter setter = new ZoneSetter(player, this.getValue());
- setter.placeCorner1(min.getBlock());
- setter.placeCorner2(max.getBlock());
+ setter.placeCorner1(pair.getBlock1());
+ setter.placeCorner2(pair.getBlock2());
+ } else {
+ War.war.badMsg(player, "Invalid selection. Creation cancelled.");
}
}
});
diff --git a/war/src/main/java/com/tommytony/war/utility/Compat.java b/war/src/main/java/com/tommytony/war/utility/Compat.java
index 483cf35..c30cca1 100644
--- a/war/src/main/java/com/tommytony/war/utility/Compat.java
+++ b/war/src/main/java/com/tommytony/war/utility/Compat.java
@@ -1,6 +1,17 @@
package com.tommytony.war.utility;
+import com.sk89q.worldedit.IncompleteRegionException;
+import com.sk89q.worldedit.LocalSession;
+import com.sk89q.worldedit.WorldEdit;
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
+import com.sk89q.worldedit.bukkit.BukkitPlayer;
+import com.sk89q.worldedit.math.BlockVector3;
+import com.sk89q.worldedit.regions.CuboidRegion;
+import com.sk89q.worldedit.regions.Region;
+import com.tommytony.war.War;
import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.ItemMeta;
@@ -16,4 +27,46 @@ public class Compat {
is.setItemMeta(meta);
return is;
}
+
+ public static class BlockPair {
+ final Block block1;
+ final Block block2;
+
+ BlockPair(Block block1, Block block2) {
+ this.block1 = block1;
+ this.block2 = block2;
+ }
+
+ public Block getBlock1() {
+ return block1;
+ }
+
+ public Block getBlock2() {
+ return block2;
+ }
+ }
+
+ public static BlockPair getWorldEditSelection(Player player) {
+ if (!War.war.getServer().getPluginManager().isPluginEnabled("WorldEdit")) {
+ return null;
+ }
+ BukkitPlayer wp = BukkitAdapter.adapt(player);
+ LocalSession session = WorldEdit.getInstance().getSessionManager().get(wp);
+ try {
+ Region selection = session.getSelection(wp.getWorld());
+ if (selection instanceof CuboidRegion) {
+ BlockVector3 min = selection.getMinimumPoint();
+ BlockVector3 max = selection.getMaximumPoint();
+ return new BlockPair(
+ player.getWorld().getBlockAt(min.getBlockX(), min.getBlockY(), min.getBlockZ()),
+ player.getWorld().getBlockAt(max.getBlockX(), max.getBlockY(), max.getBlockZ())
+ );
+ }
+ return null;
+ } catch (IncompleteRegionException e) {
+ return null;
+ }
+
+ }
+
}