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