diff --git a/AreaShop/pom.xml b/AreaShop/pom.xml
index d74792b..3de575a 100644
--- a/AreaShop/pom.xml
+++ b/AreaShop/pom.xml
@@ -1,292 +1,306 @@
-
- 4.0.0
- areashop
- jar
- AreaShop
- 2.5.0
-
-
- me.wiefferink
- areashop-parent
- parent
-
-
-
-
-
- org.bukkit
- craftbukkit
- system
- any
- ${project.basedir}/../dependencies/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar
- jar
- true
-
-
-
-
- me.wiefferink
- interactivemessenger
- 1.1-SNAPSHOT
-
-
-
-
- me.wiefferink
- bukkitdo
- 1.0.0-SNAPSHOT
-
-
-
-
- me.wiefferink
- areashop-interface
- AreaShopInterface
- jar
- compile
-
-
-
-
- me.wiefferink
- areashop-worldguard-5
- WorldGuard-5
- jar
- compile
-
-
- me.wiefferink
- areashop-worldguard-6
- WorldGuard-6
- jar
- compile
-
-
- me.wiefferink
- areashop-worldguard-6_1_3
- WorldGuard-6_1_3
- jar
- compile
-
-
- me.wiefferink
- areashop-worldguard-7
- WorldGuard-7
- jar
- compile
-
-
-
-
- me.wiefferink
- areashop-worldedit-5
- WorldEdit-5
- jar
- compile
-
-
- me.wiefferink
- areashop-worldedit-6
- WorldEdit-6
- jar
- compile
-
-
- me.wiefferink
- areashop-worldedit-7
- WorldEdit-7
- jar
- compile
-
-
-
-
- com.sk89q
- worldedit
- system
- any
- ${project.basedir}/../dependencies/worldedit-bukkit-7.0.0-beta-01.jar
-
-
- com.sk89q
- worldguard
- system
- any
- ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta01.jar
-
-
-
-
- net.milkbowl.vault
- VaultAPI
- system
- any
- ${project.basedir}/../dependencies/VaultAPI-1.4.jar
-
-
-
-
- org.bstats
- bstats-bukkit
- 1.1
-
-
-
-
-
-
- test-locally
-
-
- copyResult
-
-
-
-
-
- maven-antrun-plugin
- 1.8
-
-
-
-
-
-
-
- package
-
- run
-
-
-
-
-
-
-
-
-
-
- package-sources
-
-
- sources
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.0.0
-
-
- package
- attach-sources
-
- jar
-
-
-
-
-
-
-
-
-
-
- generate-javadoc
-
-
- javadoc
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.4
-
-
- package
- attach-javadocs
-
- jar
-
-
-
-
- me.wiefferink.areashop.lib
- ${javadoc}
-
- https://hub.spigotmc.org/javadocs/bukkit/
- http://docs.sk89q.com/worldedit/apidocs/
- http://docs.sk89q.com/worldguard/apidocs/
-
-
-
-
-
-
-
-
-
- target
- AreaShop
-
-
- .
- true
- src/main/resources
-
- plugin.yml
- config.yml
- hiddenConfig.yml
- default.yml
- README.md
- lang/*.yml
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 2.4.3
-
-
- package
-
- shade
-
-
-
-
-
- me.wiefferink.interactivemessenger
- me.wiefferink.areashop.shaded.interactivemessenger
-
-
-
- me.wiefferink.bukkitdo
- me.wiefferink.areashop.shaded.bukkitdo
-
-
-
- org.bstats
- me.wiefferink.areashop.shaded.bstats
-
-
-
-
-
-
-
- maven-compiler-plugin
- 3.5.1
-
-
-
-
+
+ 4.0.0
+ areashop
+ jar
+ AreaShop
+ 2.5.0
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+
+ org.bukkit
+ craftbukkit
+ system
+ any
+ ${project.basedir}/../dependencies/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar
+ jar
+ true
+
+
+
+
+ me.wiefferink
+ interactivemessenger
+ 1.1-SNAPSHOT
+
+
+
+
+ me.wiefferink
+ bukkitdo
+ 1.0.0-SNAPSHOT
+
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+ compile
+
+
+
+
+ me.wiefferink
+ areashop-worldguard-5
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldguard-6
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldguard-6_1_3
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldguard-7_beta_1
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldguard-7_beta_2
+ latest
+ jar
+ compile
+
+
+
+
+ com.sk89q
+ worldedit
+ system
+ any
+ ${project.basedir}/../dependencies/worldedit-bukkit-7.0.0-beta-04.jar
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta-02.jar
+
+
+
+
+ me.wiefferink
+ areashop-worldedit-5
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldedit-6
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldedit-7_beta_1
+ latest
+ jar
+ compile
+
+
+ me.wiefferink
+ areashop-worldedit-7_beta_4
+ latest
+ jar
+ compile
+
+
+
+
+ net.milkbowl.vault
+ VaultAPI
+ system
+ any
+ ${project.basedir}/../dependencies/VaultAPI-1.4.jar
+
+
+
+
+ org.bstats
+ bstats-bukkit
+ 1.1
+
+
+
+
+
+
+ test-locally
+
+
+ copyResult
+
+
+
+
+
+ maven-antrun-plugin
+ 1.8
+
+
+
+
+
+
+
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+ package-sources
+
+
+ sources
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.0.0
+
+
+ package
+ attach-sources
+
+ jar
+
+
+
+
+
+
+
+
+
+
+ generate-javadoc
+
+
+ javadoc
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.4
+
+
+ package
+ attach-javadocs
+
+ jar
+
+
+
+
+ me.wiefferink.areashop.lib
+ ${javadoc}
+
+ https://hub.spigotmc.org/javadocs/bukkit/
+ http://docs.sk89q.com/worldedit/apidocs/
+ http://docs.sk89q.com/worldguard/apidocs/
+
+
+
+
+
+
+
+
+
+ target
+ AreaShop
+
+
+ .
+ true
+ src/main/resources
+
+ plugin.yml
+ config.yml
+ hiddenConfig.yml
+ default.yml
+ README.md
+ lang/*.yml
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.4.3
+
+
+ package
+
+ shade
+
+
+
+
+
+ me.wiefferink.interactivemessenger
+ me.wiefferink.areashop.shaded.interactivemessenger
+
+
+
+ me.wiefferink.bukkitdo
+ me.wiefferink.areashop.shaded.bukkitdo
+
+
+
+ org.bstats
+ me.wiefferink.areashop.shaded.bstats
+
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.5.1
+
+
+
+
diff --git a/AreaShop/src/main/java/me/wiefferink/areashop/AreaShop.java b/AreaShop/src/main/java/me/wiefferink/areashop/AreaShop.java
index 87d95c5..e72b024 100644
--- a/AreaShop/src/main/java/me/wiefferink/areashop/AreaShop.java
+++ b/AreaShop/src/main/java/me/wiefferink/areashop/AreaShop.java
@@ -147,14 +147,57 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
managers = new HashSet<>();
boolean error = false;
+ // Check if WorldEdit is present
+ String weVersion = null;
+ String rawWeVersion = null;
+ String weBeta = null;
+ Plugin plugin = getServer().getPluginManager().getPlugin("WorldEdit");
+ if(!(plugin instanceof WorldEditPlugin) || !plugin.isEnabled()) {
+ error("WorldEdit plugin is not present or has not loaded correctly");
+ error = true;
+ } else {
+ worldEdit = (WorldEditPlugin)plugin;
+ rawWeVersion = worldEdit.getDescription().getVersion();
+
+ // Find beta version
+ Pattern pattern = Pattern.compile("beta-?\\d+");
+ Matcher matcher = pattern.matcher(rawWeVersion);
+ if (matcher.find()) {
+ weBeta = matcher.group();
+ }
+
+ // Get correct WorldEditInterface (handles things that changed version to version)
+ if(worldEdit.getDescription().getVersion().startsWith("5.")) {
+ weVersion = "5";
+ } else if(worldEdit.getDescription().getVersion().startsWith("6.")) {
+ weVersion = "6";
+ } else if ("beta-01".equalsIgnoreCase(weBeta)) {
+ weVersion = "7_beta_1";
+ } else {
+ // beta-02 and beta-03 also have the new vector system already
+ weVersion = "7_beta_4";
+ }
+ try {
+ final Class> clazz = Class.forName("me.wiefferink.areashop.handlers.WorldEditHandler" + weVersion);
+ // Check if we have a NMSHandler class at that location.
+ if(WorldEditInterface.class.isAssignableFrom(clazz)) { // Make sure it actually implements WorldEditInterface
+ worldEditInterface = (WorldEditInterface)clazz.getConstructor(AreaShopInterface.class).newInstance(this); // Set our handler
+ }
+ } catch(final Exception e) {
+ error("Could not load the handler for WorldEdit (tried to load " + weVersion + "), report this problem to the author: " + ExceptionUtils.getStackTrace(e));
+ error = true;
+ weVersion = null;
+ }
+ }
+
// Check if WorldGuard is present
String wgVersion = null;
- String rawVersion = null;
+ String rawWgVersion = null;
int major = 0;
int minor = 0;
int fixes = 0;
Integer build = null;
- Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
+ plugin = getServer().getPluginManager().getPlugin("WorldGuard");
if(!(plugin instanceof WorldGuardPlugin) || !plugin.isEnabled()) {
error("WorldGuard plugin is not present or has not loaded correctly");
error = true;
@@ -162,20 +205,20 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
worldGuard = (WorldGuardPlugin)plugin;
// Get correct WorldGuardInterface (handles things that changed version to version)
try {
- rawVersion = worldGuard.getDescription().getVersion();
- if(rawVersion.contains("-SNAPSHOT;")) {
- String buildNumber = rawVersion.substring(rawVersion.indexOf("-SNAPSHOT;") + 10);
+ rawWgVersion = worldGuard.getDescription().getVersion();
+ if(rawWgVersion.contains("-SNAPSHOT;")) {
+ String buildNumber = rawWgVersion.substring(rawWgVersion.indexOf("-SNAPSHOT;") + 10);
if(buildNumber.contains("-")) {
buildNumber = buildNumber.substring(0, buildNumber.indexOf("-"));
try {
build = Integer.parseInt(buildNumber);
} catch(NumberFormatException e) {
- warn("Could not correctly parse the build of WorldGuard, raw version: " + rawVersion + ", buildNumber: " + buildNumber);
+ warn("Could not correctly parse the build of WorldGuard, raw version: " + rawWgVersion + ", buildNumber: " + buildNumber);
}
}
}
// Clear stuff from the version string that is not a number
- String[] versionParts = rawVersion.split("\\.");
+ String[] versionParts = rawWgVersion.split("\\.");
for(int i = 0; i < versionParts.length; i++) {
Pattern pattern = Pattern.compile("^\\d+");
Matcher matcher = pattern.matcher(versionParts[i]);
@@ -195,10 +238,11 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
fixes = Integer.parseInt(versionParts[2]);
}
} catch(NumberFormatException e) {
- warn("Something went wrong while parsing WorldGuard version number: " + rawVersion);
+ warn("Something went wrong while parsing WorldGuard version number: " + rawWgVersion);
}
+
// Determine correct implementation to use
- if(worldGuard.getDescription().getVersion().startsWith("5.")) {
+ if(rawWgVersion.startsWith("5.")) {
wgVersion = "5";
} else if(major == 6 && minor == 1 && fixes < 3) {
wgVersion = "6";
@@ -211,11 +255,16 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
} else {
wgVersion = "6_1_3";
}
+ } else if ("beta-01".equalsIgnoreCase(weBeta)) {
+ // When using WorldEdit beta-01, we need to use the WorldGuard variant with the old vector system
+ wgVersion = "7_beta_1";
} else {
- wgVersion = "7";
+ // Even though the WorldGuard file is called beta-02, the reported version is still beta-01!
+ wgVersion = "7_beta_2";
}
} catch(Exception e) { // If version detection fails, at least try to load the latest version
- wgVersion = "7";
+ warn("Parsing the WorldGuard version failed, assuming version 7_beta_2:", rawWgVersion);
+ wgVersion = "7_beta_2";
}
// Load chosen implementation
try {
@@ -231,35 +280,6 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
}
}
- // Check if WorldEdit is present
- String weVersion = null;
- plugin = getServer().getPluginManager().getPlugin("WorldEdit");
- if(!(plugin instanceof WorldEditPlugin) || !plugin.isEnabled()) {
- error("WorldEdit plugin is not present or has not loaded correctly");
- error = true;
- } else {
- worldEdit = (WorldEditPlugin)plugin;
- // Get correct WorldEditInterface (handles things that changed version to version)
- if(worldEdit.getDescription().getVersion().startsWith("5.")) {
- weVersion = "5";
- } else if(worldEdit.getDescription().getVersion().startsWith("6.")) {
- weVersion = "6";
- } else {
- weVersion = "7";
- }
- try {
- final Class> clazz = Class.forName("me.wiefferink.areashop.handlers.WorldEditHandler" + weVersion);
- // Check if we have a NMSHandler class at that location.
- if(WorldEditInterface.class.isAssignableFrom(clazz)) { // Make sure it actually implements WorldEditInterface
- worldEditInterface = (WorldEditInterface)clazz.getConstructor(AreaShopInterface.class).newInstance(this); // Set our handler
- }
- } catch(final Exception e) {
- error("Could not load the handler for WorldEdit (tried to load " + weVersion + "), report this problem to the author: " + ExceptionUtils.getStackTrace(e));
- error = true;
- weVersion = null;
- }
- }
-
// Check if Vault is present
if(getServer().getPluginManager().getPlugin("Vault") == null) {
error("Vault plugin is not present or has not loaded correctly");
@@ -273,10 +293,10 @@ public final class AreaShop extends JavaPlugin implements AreaShopInterface {
// Print loaded version of WG and WE in debug
if(wgVersion != null) {
- AreaShop.debug("Loaded WorldGuardHandler" + wgVersion + " (raw version: " + rawVersion + ", major:" + major + ", minor:" + minor + ", fixes:" + fixes + ", build:" + build + ")");
+ AreaShop.debug("Loaded WorldGuardHandler", wgVersion, "(raw version:" + rawWgVersion + ", major:" + major + ", minor:" + minor + ", fixes:" + fixes + ", build:" + build + ")");
}
if(weVersion != null) {
- AreaShop.debug("Loaded WorldEditHandler" + weVersion);
+ AreaShop.debug("Loaded WorldEditHandler", weVersion, "(raw version:" + rawWeVersion + ", beta:" + weBeta + ")");
}
setupLanguageManager();
diff --git a/AreaShop/src/main/java/me/wiefferink/areashop/commands/StackCommand.java b/AreaShop/src/main/java/me/wiefferink/areashop/commands/StackCommand.java
index 6ecae49..a26f61f 100644
--- a/AreaShop/src/main/java/me/wiefferink/areashop/commands/StackCommand.java
+++ b/AreaShop/src/main/java/me/wiefferink/areashop/commands/StackCommand.java
@@ -1,7 +1,5 @@
package me.wiefferink.areashop.commands;
-import com.sk89q.worldedit.BlockVector;
-import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import me.wiefferink.areashop.AreaShop;
@@ -17,6 +15,7 @@ import org.bukkit.block.BlockFace;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
+import org.bukkit.util.Vector;
import java.util.ArrayList;
import java.util.List;
@@ -104,7 +103,7 @@ public class StackCommand extends CommandAreaShop {
plugin.message(player, "stack-unclearDirection", facing.toString().toLowerCase().replace('_', '-'));
return;
}
- Vector shift = new BlockVector(0, 0, 0);
+ Vector shift = new Vector(0, 0, 0);
if(facing == BlockFace.SOUTH) {
shift = shift.setZ(-selection.getLength() - gap);
} else if(facing == BlockFace.WEST) {
@@ -183,8 +182,8 @@ public class StackCommand extends CommandAreaShop {
}
}
// Add the region to WorldGuard (at startposition shifted by the number of this region times the blocks it should shift)
- BlockVector minimum = new BlockVector(minimumVector.add(finalShift.multiply(current)));
- BlockVector maximum = new BlockVector(maximumVector.add(finalShift.multiply(current)));
+ Vector minimum = minimumVector.clone().add(finalShift.clone().multiply(current));
+ Vector maximum = maximumVector.clone().add(finalShift.clone().multiply(current));
// Check for out of bounds
if(minimum.getBlockY() < 0) {
tooLow++;
@@ -193,7 +192,7 @@ public class StackCommand extends CommandAreaShop {
tooHigh++;
continue;
}
- ProtectedCuboidRegion region = new ProtectedCuboidRegion(regionName, minimum, maximum);
+ ProtectedCuboidRegion region = plugin.getWorldGuardHandler().createCuboidRegion(regionName, minimum,maximum);
manager.addRegion(region);
// Add the region to AreaShop
if(rentRegions) {
diff --git a/AreaShop/src/main/java/me/wiefferink/areashop/features/TeleportFeature.java b/AreaShop/src/main/java/me/wiefferink/areashop/features/TeleportFeature.java
index a4633e5..ab73e35 100644
--- a/AreaShop/src/main/java/me/wiefferink/areashop/features/TeleportFeature.java
+++ b/AreaShop/src/main/java/me/wiefferink/areashop/features/TeleportFeature.java
@@ -528,12 +528,14 @@ public class TeleportFeature extends RegionFeature {
// Calculate a default location
if(startLocation == null) {
// Set to block in the middle, y configured in the config
- com.sk89q.worldedit.Vector middle = com.sk89q.worldedit.Vector.getMidpoint(worldguardRegion.getMaximumPoint(), worldguardRegion.getMinimumPoint());
+ Vector regionMin = AreaShop.getInstance().getWorldGuardHandler().getMinimumPoint(worldguardRegion);
+ Vector regionMax = AreaShop.getInstance().getWorldGuardHandler().getMaximumPoint(worldguardRegion);
+ Vector middle = regionMin.clone().midpoint(regionMax);
String configSetting = getRegion().getStringSetting("general.teleportLocationY");
if("bottom".equalsIgnoreCase(configSetting)) {
- middle = middle.setY(worldguardRegion.getMinimumPoint().getBlockY());
+ middle = middle.setY(regionMin.getBlockY());
} else if("top".equalsIgnoreCase(configSetting)) {
- middle = middle.setY(worldguardRegion.getMaximumPoint().getBlockY());
+ middle = middle.setY(regionMax.getBlockY());
} else if("middle".equalsIgnoreCase(configSetting)) {
middle = middle.setY(middle.getBlockY());
} else {
diff --git a/AreaShop/src/main/java/me/wiefferink/areashop/regions/GeneralRegion.java b/AreaShop/src/main/java/me/wiefferink/areashop/regions/GeneralRegion.java
index 46de96b..562f1b2 100644
--- a/AreaShop/src/main/java/me/wiefferink/areashop/regions/GeneralRegion.java
+++ b/AreaShop/src/main/java/me/wiefferink/areashop/regions/GeneralRegion.java
@@ -1,7 +1,5 @@
package me.wiefferink.areashop.regions;
-import com.sk89q.worldedit.BlockVector;
-import com.sk89q.worldedit.BlockVector2D;
import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import me.wiefferink.areashop.AreaShop;
@@ -27,6 +25,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
+import org.bukkit.util.Vector;
import java.io.File;
import java.io.IOException;
@@ -514,6 +513,22 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
return plugin.getRegionManager(getWorld()).getRegion(getName());
}
+ /**
+ * Get the minimum corner of the region.
+ * @return Vector
+ */
+ public Vector getMinimumPoint() {
+ return plugin.getWorldGuardHandler().getMinimumPoint(getRegion());
+ }
+
+ /**
+ * Get the maximum corner of the region.
+ * @return Vector
+ */
+ public Vector getMaximumPoint() {
+ return plugin.getWorldGuardHandler().getMaximumPoint(getRegion());
+ }
+
/**
* Get the width of the region (x-axis).
* @return The width of the region (x-axis)
@@ -522,7 +537,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
if(getRegion() == null) {
return 0;
}
- return getRegion().getMaximumPoint().getBlockX() - getRegion().getMinimumPoint().getBlockX() + 1;
+ return getMaximumPoint().getBlockX() - getMinimumPoint().getBlockX() + 1;
}
/**
@@ -533,7 +548,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
if(getRegion() == null) {
return 0;
}
- return getRegion().getMaximumPoint().getBlockZ() - getRegion().getMinimumPoint().getBlockZ() + 1;
+ return getMaximumPoint().getBlockZ() - getMinimumPoint().getBlockZ() + 1;
}
/**
@@ -544,7 +559,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
if(getRegion() == null) {
return 0;
}
- return getRegion().getMaximumPoint().getBlockY() - getRegion().getMinimumPoint().getBlockY() + 1;
+ return getMaximumPoint().getBlockY() - getMinimumPoint().getBlockY() + 1;
}
/**
@@ -1495,8 +1510,8 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
// Use own calculation for polygon regions, as WorldGuard does not implement it and returns 0
ProtectedRegion region = getRegion();
if(region instanceof ProtectedPolygonalRegion) {
- BlockVector min = region.getMinimumPoint();
- BlockVector max = region.getMaximumPoint();
+ Vector min = getMinimumPoint();
+ Vector max = getMaximumPoint();
// Exact, but slow algorithm
if(getWidth() * getDepth() < 100) {
@@ -1512,7 +1527,7 @@ public abstract class GeneralRegion implements GeneralRegionInterface, Comparabl
}
// Estimate, but quick algorithm
else {
- List points = region.getPoints();
+ List points = plugin.getWorldGuardHandler().getRegionPoints(region);
int numPoints = points.size();
if(numPoints < 3) {
return 0;
diff --git a/AreaShop/src/main/java/me/wiefferink/areashop/tools/Utils.java b/AreaShop/src/main/java/me/wiefferink/areashop/tools/Utils.java
index c07b69f..dfb5cf4 100644
--- a/AreaShop/src/main/java/me/wiefferink/areashop/tools/Utils.java
+++ b/AreaShop/src/main/java/me/wiefferink/areashop/tools/Utils.java
@@ -1,6 +1,5 @@
package me.wiefferink.areashop.tools;
-import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import me.wiefferink.areashop.AreaShop;
@@ -21,6 +20,7 @@ import org.bukkit.configuration.Configuration;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
+import org.bukkit.util.Vector;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@@ -351,8 +351,8 @@ public class Utils {
Location selectionMin = selection.getMinimumLocation();
Location selectionMax = selection.getMaximumLocation();
for(ProtectedRegion region : regionManager.getRegions().values()) {
- BlockVector regionMin = region.getMinimumPoint();
- BlockVector regionMax = region.getMaximumPoint();
+ Vector regionMin = AreaShop.getInstance().getWorldGuardHandler().getMinimumPoint(region);
+ Vector regionMax = AreaShop.getInstance().getWorldGuardHandler().getMaximumPoint(region);
if(
( // x part, resolves to true if the selection and region overlap anywhere on the x-axis
(regionMin.getBlockX() <= selectionMax.getBlockX() && regionMin.getBlockX() >= selectionMin.getBlockX())
diff --git a/Interfaces/.gitignore b/areashop-interface/.gitignore
similarity index 100%
rename from Interfaces/.gitignore
rename to areashop-interface/.gitignore
diff --git a/Interfaces/pom.xml b/areashop-interface/pom.xml
similarity index 97%
rename from Interfaces/pom.xml
rename to areashop-interface/pom.xml
index d770e0f..05ee4c5 100644
--- a/Interfaces/pom.xml
+++ b/areashop-interface/pom.xml
@@ -4,7 +4,7 @@
areashop-interface
jar
AreaShop Interface
- AreaShopInterface
+ latest
me.wiefferink
diff --git a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/AreaShopInterface.java b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/AreaShopInterface.java
similarity index 100%
rename from Interfaces/src/main/java/me/wiefferink/areashop/interfaces/AreaShopInterface.java
rename to areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/AreaShopInterface.java
diff --git a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/GeneralRegionInterface.java b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/GeneralRegionInterface.java
similarity index 100%
rename from Interfaces/src/main/java/me/wiefferink/areashop/interfaces/GeneralRegionInterface.java
rename to areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/GeneralRegionInterface.java
diff --git a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/RegionAccessSet.java b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/RegionAccessSet.java
similarity index 100%
rename from Interfaces/src/main/java/me/wiefferink/areashop/interfaces/RegionAccessSet.java
rename to areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/RegionAccessSet.java
diff --git a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldEditInterface.java b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldEditInterface.java
similarity index 100%
rename from Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldEditInterface.java
rename to areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldEditInterface.java
diff --git a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldEditSelection.java b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldEditSelection.java
similarity index 100%
rename from Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldEditSelection.java
rename to areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldEditSelection.java
diff --git a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldGuardInterface.java b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldGuardInterface.java
similarity index 80%
rename from Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldGuardInterface.java
rename to areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldGuardInterface.java
index 954cfcf..cde6972 100644
--- a/Interfaces/src/main/java/me/wiefferink/areashop/interfaces/WorldGuardInterface.java
+++ b/areashop-interface/src/main/java/me/wiefferink/areashop/interfaces/WorldGuardInterface.java
@@ -5,10 +5,13 @@ import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
+import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import org.bukkit.Location;
import org.bukkit.World;
+import org.bukkit.util.Vector;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
@@ -104,4 +107,34 @@ public abstract class WorldGuardInterface {
* @throws InvalidFlagFormat When the input for the flag is incorrect
*/
public abstract RegionGroup parseFlagGroupInput(RegionGroupFlag flag, String input) throws InvalidFlagFormat;
+
+ /**
+ * Get the minimum point of a region.
+ * @param region The region to get it for
+ * @return Minimum point represented as vector
+ */
+ public abstract Vector getMinimumPoint(ProtectedRegion region);
+
+ /**
+ * Get the maximum point of a region.
+ * @param region The region to get it for
+ * @return Maximum point represented as vector
+ */
+ public abstract Vector getMaximumPoint(ProtectedRegion region);
+
+ /**
+ * Get the edges of a region (meant for polygon regions).
+ * @param region The region to get it for
+ * @return Points around the edge as vector array
+ */
+ public abstract List getRegionPoints(ProtectedRegion region);
+
+ /**
+ * Create a CuboidRegion.
+ * @param name Name to use in WorldEdit
+ * @param min Minimum point
+ * @param max Maximum point
+ * @return CuboidRegion
+ */
+ public abstract ProtectedCuboidRegion createCuboidRegion(String name, Vector min, Vector max);
}
diff --git a/WorldEdit 5/.gitignore b/areashop-worldedit-5/.gitignore
similarity index 100%
rename from WorldEdit 5/.gitignore
rename to areashop-worldedit-5/.gitignore
diff --git a/WorldEdit 5/pom.xml b/areashop-worldedit-5/pom.xml
similarity index 92%
rename from WorldEdit 5/pom.xml
rename to areashop-worldedit-5/pom.xml
index 72af210..e923dd8 100644
--- a/WorldEdit 5/pom.xml
+++ b/areashop-worldedit-5/pom.xml
@@ -1,48 +1,48 @@
-
- 4.0.0
- areashop-worldedit-5
- jar
- AreaShop WorldEdit 5
- WorldEdit-5
-
-
- me.wiefferink
- areashop-parent
- parent
-
-
-
-
- org.bukkit
- craftbukkit
- system
- any
- ${project.basedir}/../dependencies/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar
- jar
- true
-
-
-
- com.sk89q
- worldedit
- system
- any
- ${project.basedir}/../dependencies/worldedit-5.7-SNAPSHOT.jar
-
-
- com.sk89q
- worldguard
- system
- any
- ${project.basedir}/../dependencies/worldguard-5.9.1-SNAPSHOT.jar
-
-
-
- me.wiefferink
- areashop-interface
- AreaShopInterface
- jar
-
-
-
+
+ 4.0.0
+ areashop-worldedit-5
+ jar
+ AreaShop WorldEdit 5
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ craftbukkit
+ system
+ any
+ ${project.basedir}/../dependencies/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar
+ jar
+ true
+
+
+
+ com.sk89q
+ worldedit
+ system
+ any
+ ${project.basedir}/../dependencies/worldedit-5.7-SNAPSHOT.jar
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-5.9.1-SNAPSHOT.jar
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/WorldEdit 5/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler5.java b/areashop-worldedit-5/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler5.java
similarity index 100%
rename from WorldEdit 5/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler5.java
rename to areashop-worldedit-5/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler5.java
diff --git a/WorldEdit 6/.gitignore b/areashop-worldedit-6/.gitignore
similarity index 100%
rename from WorldEdit 6/.gitignore
rename to areashop-worldedit-6/.gitignore
diff --git a/WorldEdit 6/pom.xml b/areashop-worldedit-6/pom.xml
similarity index 92%
rename from WorldEdit 6/pom.xml
rename to areashop-worldedit-6/pom.xml
index 5c0c61e..08f3d35 100644
--- a/WorldEdit 6/pom.xml
+++ b/areashop-worldedit-6/pom.xml
@@ -1,48 +1,48 @@
-
- 4.0.0
- areashop-worldedit-6
- jar
- AreaShop WorldEdit 6
- WorldEdit-6
-
-
- me.wiefferink
- areashop-parent
- parent
-
-
-
-
- org.bukkit
- craftbukkit
- system
- any
- ${project.basedir}/../dependencies/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar
- jar
- true
-
-
-
- com.sk89q
- worldedit
- system
- any
- ${project.basedir}/../dependencies/worldedit-6.0.0-SNAPSHOT.jar
-
-
- com.sk89q
- worldguard
- system
- any
- ${project.basedir}/../dependencies/worldguard-6.0.0-SNAPSHOT.jar
-
-
-
- me.wiefferink
- areashop-interface
- AreaShopInterface
- jar
-
-
-
+
+ 4.0.0
+ areashop-worldedit-6
+ jar
+ AreaShop WorldEdit 6
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ craftbukkit
+ system
+ any
+ ${project.basedir}/../dependencies/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar
+ jar
+ true
+
+
+
+ com.sk89q
+ worldedit
+ system
+ any
+ ${project.basedir}/../dependencies/worldedit-6.0.0-SNAPSHOT.jar
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-6.0.0-SNAPSHOT.jar
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/WorldEdit 6/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler6.java b/areashop-worldedit-6/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler6.java
similarity index 100%
rename from WorldEdit 6/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler6.java
rename to areashop-worldedit-6/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler6.java
diff --git a/WorldEdit 7/.gitignore b/areashop-worldedit-7_beta_1/.gitignore
similarity index 100%
rename from WorldEdit 7/.gitignore
rename to areashop-worldedit-7_beta_1/.gitignore
diff --git a/WorldEdit 7/pom.xml b/areashop-worldedit-7_beta_1/pom.xml
similarity index 87%
rename from WorldEdit 7/pom.xml
rename to areashop-worldedit-7_beta_1/pom.xml
index 7ba49d2..b98a0af 100644
--- a/WorldEdit 7/pom.xml
+++ b/areashop-worldedit-7_beta_1/pom.xml
@@ -1,10 +1,10 @@
4.0.0
- areashop-worldedit-7
+ areashop-worldedit-7_beta_1
jar
- AreaShop WorldEdit 7
- WorldEdit-7
+ AreaShop WorldEdit 7_beta_1
+ latest
me.wiefferink
@@ -33,13 +33,13 @@
worldguard
system
any
- ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta01.jar
+ ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta-01.jar
me.wiefferink
areashop-interface
- AreaShopInterface
+ latest
jar
diff --git a/WorldEdit 7/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7.java b/areashop-worldedit-7_beta_1/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7_beta_1.java
similarity index 98%
rename from WorldEdit 7/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7.java
rename to areashop-worldedit-7_beta_1/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7_beta_1.java
index 118b366..f922ce3 100644
--- a/WorldEdit 7/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7.java
+++ b/areashop-worldedit-7_beta_1/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7_beta_1.java
@@ -40,9 +40,9 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
-public class WorldEditHandler7 extends WorldEditInterface {
+public class WorldEditHandler7_beta_1 extends WorldEditInterface {
- public WorldEditHandler7(AreaShopInterface pluginInterface) {
+ public WorldEditHandler7_beta_1(AreaShopInterface pluginInterface) {
super(pluginInterface);
}
diff --git a/WorldGuard 5/.gitignore b/areashop-worldedit-7_beta_4/.gitignore
similarity index 100%
rename from WorldGuard 5/.gitignore
rename to areashop-worldedit-7_beta_4/.gitignore
diff --git a/areashop-worldedit-7_beta_4/pom.xml b/areashop-worldedit-7_beta_4/pom.xml
new file mode 100644
index 0000000..d511dd4
--- /dev/null
+++ b/areashop-worldedit-7_beta_4/pom.xml
@@ -0,0 +1,46 @@
+
+ 4.0.0
+ areashop-worldedit-7_beta_4
+ jar
+ AreaShop WorldEdit 7_beta_4
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ craftbukkit
+ 1.13-R0.1-SNAPSHOT
+ jar
+ true
+
+
+
+ com.sk89q
+ worldedit
+ system
+ any
+ ${project.basedir}/../dependencies/worldedit-bukkit-7.0.0-beta-04.jar
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta-02.jar
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/areashop-worldedit-7_beta_4/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7_beta_4.java b/areashop-worldedit-7_beta_4/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7_beta_4.java
new file mode 100644
index 0000000..a94f090
--- /dev/null
+++ b/areashop-worldedit-7_beta_4/src/main/java/me/wiefferink/areashop/handlers/WorldEditHandler7_beta_4.java
@@ -0,0 +1,244 @@
+package me.wiefferink.areashop.handlers;
+
+import com.sk89q.worldedit.EditSession;
+import com.sk89q.worldedit.IncompleteRegionException;
+import com.sk89q.worldedit.LocalSession;
+import com.sk89q.worldedit.MaxChangedBlocksException;
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
+import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard;
+import com.sk89q.worldedit.extent.clipboard.Clipboard;
+import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
+import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
+import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
+import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter;
+import com.sk89q.worldedit.extent.transform.BlockTransformExtent;
+import com.sk89q.worldedit.function.mask.Mask;
+import com.sk89q.worldedit.function.mask.Mask2D;
+import com.sk89q.worldedit.function.operation.ForwardExtentCopy;
+import com.sk89q.worldedit.function.operation.Operations;
+import com.sk89q.worldedit.math.BlockVector3;
+import com.sk89q.worldedit.regions.CuboidRegion;
+import com.sk89q.worldedit.regions.Region;
+import com.sk89q.worldedit.session.ClipboardHolder;
+import com.sk89q.worldedit.util.io.Closer;
+import com.sk89q.worldguard.protection.regions.ProtectedRegion;
+import com.sk89q.worldguard.protection.regions.RegionType;
+import me.wiefferink.areashop.interfaces.AreaShopInterface;
+import me.wiefferink.areashop.interfaces.GeneralRegionInterface;
+import me.wiefferink.areashop.interfaces.WorldEditInterface;
+import me.wiefferink.areashop.interfaces.WorldEditSelection;
+import org.apache.commons.lang.exception.ExceptionUtils;
+import org.bukkit.entity.Player;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+
+public class WorldEditHandler7_beta_4 extends WorldEditInterface {
+
+ public WorldEditHandler7_beta_4(AreaShopInterface pluginInterface) {
+ super(pluginInterface);
+ }
+
+ @Override
+ public WorldEditSelection getPlayerSelection(Player player) {
+ try {
+ Region region = pluginInterface.getWorldEdit().getSession(player).getSelection(BukkitAdapter.adapt(player.getWorld()));
+ return new WorldEditSelection(
+ player.getWorld(),
+ BukkitAdapter.adapt(player.getWorld(), region.getMinimumPoint()),
+ BukkitAdapter.adapt(player.getWorld(), region.getMaximumPoint())
+ );
+ } catch (IncompleteRegionException e) {
+ return null;
+ }
+ }
+
+ @Override
+ public boolean restoreRegionBlocks(File rawFile, GeneralRegionInterface regionInterface) {
+ File file = null;
+ ClipboardFormat format = null;
+ for (ClipboardFormat formatOption : ClipboardFormats.getAll()) {
+ for (String extension : formatOption.getFileExtensions()) {
+ if (new File(rawFile.getAbsolutePath() + "." + extension).exists()) {
+ file = new File(rawFile.getAbsolutePath() + "." + extension);
+ format = formatOption;
+ }
+ }
+ }
+ if(file == null) {
+ pluginInterface.getLogger().info("Did not restore region " + regionInterface.getName() + ", schematic file does not exist: " + rawFile.getAbsolutePath());
+ return false;
+ }
+ pluginInterface.debugI("Trying to restore region", regionInterface.getName(), "from file", file.getAbsolutePath(), "with format", format.getName());
+
+ com.sk89q.worldedit.world.World world = null;
+ if(regionInterface.getName() != null) {
+ world = BukkitAdapter.adapt(regionInterface.getWorld());
+ }
+ if(world == null) {
+ pluginInterface.getLogger().info("Did not restore region " + regionInterface.getName() + ", world not found: " + regionInterface.getWorldName());
+ return false;
+ }
+ EditSession editSession = pluginInterface.getWorldEdit().getWorldEdit().getEditSessionFactory().getEditSession(world, pluginInterface.getConfig().getInt("maximumBlocks"));
+ editSession.enableQueue();
+ ProtectedRegion region = regionInterface.getRegion();
+ // Get the origin and size of the region
+ BlockVector3 origin = BlockVector3.at(region.getMinimumPoint().getBlockX(), region.getMinimumPoint().getBlockY(), region.getMinimumPoint().getBlockZ());
+
+ // Read the schematic and paste it into the world
+ try(Closer closer = Closer.create()) {
+ FileInputStream fis = closer.register(new FileInputStream(file));
+ BufferedInputStream bis = closer.register(new BufferedInputStream(fis));
+ ClipboardReader reader = format.getReader(bis);
+
+ //WorldData worldData = world.getWorldData();
+ LocalSession session = new LocalSession(pluginInterface.getWorldEdit().getLocalConfiguration());
+ Clipboard clipboard = reader.read();
+ if(clipboard.getDimensions().getY() != regionInterface.getHeight()
+ || clipboard.getDimensions().getX() != regionInterface.getWidth()
+ || clipboard.getDimensions().getZ() != regionInterface.getDepth()) {
+ pluginInterface.getLogger().warning("Size of the region " + regionInterface.getName() + " is not the same as the schematic to restore!");
+ pluginInterface.debugI("schematic|region, x:" + clipboard.getDimensions().getX() + "|" + regionInterface.getWidth() + ", y:" + clipboard.getDimensions().getY() + "|" + regionInterface.getHeight() + ", z:" + clipboard.getDimensions().getZ() + "|" + regionInterface.getDepth());
+ }
+ clipboard.setOrigin(clipboard.getMinimumPoint());
+ ClipboardHolder clipboardHolder = new ClipboardHolder(clipboard);
+ session.setBlockChangeLimit(pluginInterface.getConfig().getInt("maximumBlocks"));
+ session.setClipboard(clipboardHolder);
+
+ // Build operation
+ BlockTransformExtent extent = new BlockTransformExtent(clipboardHolder.getClipboard(), clipboardHolder.getTransform());
+ ForwardExtentCopy copy = new ForwardExtentCopy(extent, clipboard.getRegion(), clipboard.getOrigin(), editSession, origin);
+ copy.setCopyingEntities(false);
+ copy.setTransform(clipboardHolder.getTransform());
+ // Mask to region (for polygon and other weird shaped regions)
+ // TODO make this more efficient (especially for polygon regions)
+ if(region.getType() != RegionType.CUBOID) {
+ copy.setSourceMask(new Mask() {
+ @Override
+ public boolean test(BlockVector3 vector) {
+ return region.contains(vector);
+ }
+
+ @Override
+ public Mask2D toMask2D() {
+ return null;
+ }
+ });
+ }
+ Operations.completeLegacy(copy);
+ } catch(MaxChangedBlocksException e) {
+ pluginInterface.getLogger().warning("exceeded the block limit while restoring schematic of " + regionInterface.getName() + ", limit in exception: " + e.getBlockLimit() + ", limit passed by AreaShop: " + pluginInterface.getConfig().getInt("maximumBlocks"));
+ return false;
+ } catch(IOException e) {
+ pluginInterface.getLogger().warning("An error occured while restoring schematic of " + regionInterface.getName() + ", enable debug to see the complete stacktrace");
+ pluginInterface.debugI(ExceptionUtils.getStackTrace(e));
+ return false;
+ } catch (Exception e) {
+ pluginInterface.getLogger().warning("crashed during restore of " + regionInterface.getName());
+ pluginInterface.debugI(ExceptionUtils.getStackTrace(e));
+ return false;
+ }
+
+ // flushQueue is for worldedit-bukkit-7.0.0-beta-01, later versions have renamed it to flushSession
+ boolean done = false;
+ for (String methodName : Arrays.asList("flushSession", "flushQueue")) {
+ try {
+ Method method = editSession.getClass().getMethod(methodName);
+ method.invoke(editSession);
+ done = true;
+ } catch (SecurityException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) {
+ // Try the next methodName
+ }
+ }
+
+ if(!done) {
+ pluginInterface.getLogger().warning("Could not restore schematic of " + regionInterface.getName() + ", flushSession() failed");
+ }
+
+ return true;
+ }
+
+ @Override
+ public boolean saveRegionBlocks(File file, GeneralRegionInterface regionInterface) {
+ ClipboardFormat format = ClipboardFormats.findByAlias("sponge");
+ if(format == null) {
+ // Sponge format does not exist, try to select another one
+ for(ClipboardFormat otherFormat : ClipboardFormats.getAll()) {
+ format = otherFormat;
+ }
+ if(format == null) {
+ pluginInterface.getLogger().warning("Cannot find a format to save a schematic in, no available formats!");
+ return false;
+ }
+ }
+
+ file = new File(file.getAbsolutePath() + "." + format.getPrimaryFileExtension());
+ pluginInterface.debugI("Trying to save region", regionInterface.getName(), " to file", file.getAbsolutePath(), "with format", format.getName());
+ com.sk89q.worldedit.world.World world = null;
+ if(regionInterface.getWorld() != null) {
+ world = BukkitAdapter.adapt(regionInterface.getWorld());
+ }
+ if(world == null) {
+ pluginInterface.getLogger().warning("Did not save region " + regionInterface.getName() + ", world not found: " + regionInterface.getWorldName());
+ return false;
+ }
+ EditSession editSession = pluginInterface.getWorldEdit().getWorldEdit().getEditSessionFactory().getEditSession(world, pluginInterface.getConfig().getInt("maximumBlocks"));
+
+ // Create a clipboard
+ CuboidRegion selection = new CuboidRegion(world, regionInterface.getRegion().getMinimumPoint(), regionInterface.getRegion().getMaximumPoint());
+ BlockArrayClipboard clipboard = new BlockArrayClipboard(selection);
+ clipboard.setOrigin(regionInterface.getRegion().getMinimumPoint());
+ ForwardExtentCopy copy = new ForwardExtentCopy(editSession, new CuboidRegion(world, regionInterface.getRegion().getMinimumPoint(), regionInterface.getRegion().getMaximumPoint()), clipboard, regionInterface.getRegion().getMinimumPoint());
+ try {
+ Operations.completeLegacy(copy);
+ } catch(MaxChangedBlocksException e) {
+ pluginInterface.getLogger().warning("Exceeded the block limit while saving schematic of " + regionInterface.getName() + ", limit in exception: " + e.getBlockLimit() + ", limit passed by AreaShop: " + pluginInterface.getConfig().getInt("maximumBlocks"));
+ return false;
+ }
+
+ try(Closer closer = Closer.create()) {
+ FileOutputStream fos = closer.register(new FileOutputStream(file));
+ BufferedOutputStream bos = closer.register(new BufferedOutputStream(fos));
+ ClipboardWriter writer = closer.register(format.getWriter(bos));
+ writer.write(clipboard);
+ } catch(IOException e) {
+ pluginInterface.getLogger().warning("An error occured while saving schematic of " + regionInterface.getName() + ", enable debug to see the complete stacktrace");
+ pluginInterface.debugI(ExceptionUtils.getStackTrace(e));
+ return false;
+ } catch (Exception e) {
+ pluginInterface.getLogger().warning("crashed during save of " + regionInterface.getName());
+ pluginInterface.debugI(ExceptionUtils.getStackTrace(e));
+ return false;
+ }
+ return true;
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WorldGuard 6/.gitignore b/areashop-worldguard-5/.gitignore
similarity index 100%
rename from WorldGuard 6/.gitignore
rename to areashop-worldguard-5/.gitignore
diff --git a/WorldGuard 5/pom.xml b/areashop-worldguard-5/pom.xml
similarity index 91%
rename from WorldGuard 5/pom.xml
rename to areashop-worldguard-5/pom.xml
index 759e324..1c68467 100644
--- a/WorldGuard 5/pom.xml
+++ b/areashop-worldguard-5/pom.xml
@@ -1,41 +1,41 @@
-
- 4.0.0
- areashop-worldguard-5
- jar
- AreaShop WorldGuard 5
- WorldGuard-5
-
-
- me.wiefferink
- areashop-parent
- parent
-
-
-
-
- org.bukkit
- bukkit
- system
- any
- ${project.basedir}/../dependencies/bukkit-1.7.9-R0.2.jar
- jar
- true
-
-
-
- com.sk89q
- worldguard
- system
- any
- ${project.basedir}/../dependencies/worldguard-5.9.1-SNAPSHOT.jar
-
-
-
- me.wiefferink
- areashop-interface
- AreaShopInterface
- jar
-
-
-
+
+ 4.0.0
+ areashop-worldguard-5
+ jar
+ AreaShop WorldGuard 5
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ bukkit
+ system
+ any
+ ${project.basedir}/../dependencies/bukkit-1.7.9-R0.2.jar
+ jar
+ true
+
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-5.9.1-SNAPSHOT.jar
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/WorldGuard 5/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler5.java b/areashop-worldguard-5/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler5.java
similarity index 78%
rename from WorldGuard 5/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler5.java
rename to areashop-worldguard-5/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler5.java
index c093faf..0fe0354 100644
--- a/WorldGuard 5/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler5.java
+++ b/areashop-worldguard-5/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler5.java
@@ -1,5 +1,7 @@
package me.wiefferink.areashop.handlers;
+import com.sk89q.worldedit.BlockVector;
+import com.sk89q.worldedit.BlockVector2D;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.domains.DefaultDomain;
@@ -9,6 +11,7 @@ import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
+import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import me.wiefferink.areashop.interfaces.AreaShopInterface;
import me.wiefferink.areashop.interfaces.RegionAccessSet;
@@ -18,7 +21,9 @@ import org.bukkit.Location;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
@@ -138,4 +143,30 @@ public class WorldGuardHandler5 extends WorldGuardInterface {
public RegionGroup parseFlagGroupInput(RegionGroupFlag flag, String input) throws InvalidFlagFormat {
return flag.parseInput(WorldGuardPlugin.inst(), null, input);
}
+
+ @Override
+ public org.bukkit.util.Vector getMinimumPoint(ProtectedRegion region) {
+ BlockVector min = region.getMinimumPoint();
+ return new org.bukkit.util.Vector(min.getX(), min.getY(), min.getZ());
+ }
+
+ @Override
+ public org.bukkit.util.Vector getMaximumPoint(ProtectedRegion region) {
+ BlockVector min = region.getMaximumPoint();
+ return new org.bukkit.util.Vector(min.getX(), min.getY(), min.getZ());
+ }
+
+ @Override
+ public List getRegionPoints(ProtectedRegion region) {
+ List result = new ArrayList<>();
+ for (BlockVector2D point : region.getPoints()) {
+ result.add(new org.bukkit.util.Vector(point.getX(), 0,point.getZ()));
+ }
+ return result;
+ }
+
+ @Override
+ public ProtectedCuboidRegion createCuboidRegion(String name, org.bukkit.util.Vector corner1, org.bukkit.util.Vector corner2) {
+ return new ProtectedCuboidRegion(name, new BlockVector(corner1.getBlockX(), corner1.getBlockY(), corner1.getBlockZ()), new BlockVector(corner2.getBlockX(), corner2.getBlockY(), corner2.getBlockZ()));
+ }
}
diff --git a/WorldGuard 6_1_3/.gitignore b/areashop-worldguard-6/.gitignore
similarity index 100%
rename from WorldGuard 6_1_3/.gitignore
rename to areashop-worldguard-6/.gitignore
diff --git a/WorldGuard 6/pom.xml b/areashop-worldguard-6/pom.xml
similarity index 91%
rename from WorldGuard 6/pom.xml
rename to areashop-worldguard-6/pom.xml
index b4b171e..39671ea 100644
--- a/WorldGuard 6/pom.xml
+++ b/areashop-worldguard-6/pom.xml
@@ -1,41 +1,41 @@
-
- 4.0.0
- areashop-worldguard-6
- jar
- AreaShop WorldGuard 6
- WorldGuard-6
-
-
- me.wiefferink
- areashop-parent
- parent
-
-
-
-
- org.bukkit
- bukkit
- system
- any
- ${project.basedir}/../dependencies/bukkit-1.7.9-R0.2.jar
- jar
- true
-
-
-
- com.sk89q
- worldguard
- system
- any
- ${project.basedir}/../dependencies/worldguard-6.0.0-SNAPSHOT.jar
-
-
-
- me.wiefferink
- areashop-interface
- AreaShopInterface
- jar
-
-
-
+
+ 4.0.0
+ areashop-worldguard-6
+ jar
+ AreaShop WorldGuard 6
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ bukkit
+ system
+ any
+ ${project.basedir}/../dependencies/bukkit-1.7.9-R0.2.jar
+ jar
+ true
+
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-6.0.0-SNAPSHOT.jar
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/WorldGuard 6/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6.java b/areashop-worldguard-6/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6.java
similarity index 76%
rename from WorldGuard 6/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6.java
rename to areashop-worldguard-6/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6.java
index 31409f4..5e0b28e 100644
--- a/WorldGuard 6/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6.java
+++ b/areashop-worldguard-6/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6.java
@@ -1,5 +1,7 @@
package me.wiefferink.areashop.handlers;
+import com.sk89q.worldedit.BlockVector;
+import com.sk89q.worldedit.BlockVector2D;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.domains.DefaultDomain;
@@ -9,6 +11,7 @@ import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
+import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import me.wiefferink.areashop.interfaces.AreaShopInterface;
import me.wiefferink.areashop.interfaces.RegionAccessSet;
@@ -16,7 +19,9 @@ import me.wiefferink.areashop.interfaces.WorldGuardInterface;
import org.bukkit.Location;
import org.bukkit.World;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
@@ -124,4 +129,30 @@ public class WorldGuardHandler6 extends WorldGuardInterface {
public RegionGroup parseFlagGroupInput(RegionGroupFlag flag, String input) throws InvalidFlagFormat {
return flag.parseInput(WorldGuardPlugin.inst(), null, input);
}
+
+ @Override
+ public org.bukkit.util.Vector getMinimumPoint(ProtectedRegion region) {
+ BlockVector min = region.getMinimumPoint();
+ return new org.bukkit.util.Vector(min.getX(), min.getY(), min.getZ());
+ }
+
+ @Override
+ public org.bukkit.util.Vector getMaximumPoint(ProtectedRegion region) {
+ BlockVector min = region.getMaximumPoint();
+ return new org.bukkit.util.Vector(min.getX(), min.getY(), min.getZ());
+ }
+
+ @Override
+ public List getRegionPoints(ProtectedRegion region) {
+ List result = new ArrayList<>();
+ for (BlockVector2D point : region.getPoints()) {
+ result.add(new org.bukkit.util.Vector(point.getX(), 0,point.getZ()));
+ }
+ return result;
+ }
+
+ @Override
+ public ProtectedCuboidRegion createCuboidRegion(String name, org.bukkit.util.Vector corner1, org.bukkit.util.Vector corner2) {
+ return new ProtectedCuboidRegion(name, new BlockVector(corner1.getBlockX(), corner1.getBlockY(), corner1.getBlockZ()), new BlockVector(corner2.getBlockX(), corner2.getBlockY(), corner2.getBlockZ()));
+ }
}
diff --git a/WorldGuard 7/.gitignore b/areashop-worldguard-6_1_3/.gitignore
similarity index 100%
rename from WorldGuard 7/.gitignore
rename to areashop-worldguard-6_1_3/.gitignore
diff --git a/WorldGuard 6_1_3/pom.xml b/areashop-worldguard-6_1_3/pom.xml
similarity index 92%
rename from WorldGuard 6_1_3/pom.xml
rename to areashop-worldguard-6_1_3/pom.xml
index d3609ca..0f27995 100644
--- a/WorldGuard 6_1_3/pom.xml
+++ b/areashop-worldguard-6_1_3/pom.xml
@@ -4,7 +4,7 @@
areashop-worldguard-6_1_3
jar
AreaShop WorldGuard 6_1_3
- WorldGuard-6_1_3
+ latest
me.wiefferink
@@ -34,7 +34,7 @@
me.wiefferink
areashop-worldguard-6
- WorldGuard-6
+ latest
jar
provided
@@ -42,7 +42,7 @@
me.wiefferink
areashop-interface
- AreaShopInterface
+ latest
jar
diff --git a/WorldGuard 6_1_3/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6_1_3.java b/areashop-worldguard-6_1_3/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6_1_3.java
similarity index 100%
rename from WorldGuard 6_1_3/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6_1_3.java
rename to areashop-worldguard-6_1_3/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler6_1_3.java
diff --git a/areashop-worldguard-7_beta_1/.gitignore b/areashop-worldguard-7_beta_1/.gitignore
new file mode 100644
index 0000000..ea8c4bf
--- /dev/null
+++ b/areashop-worldguard-7_beta_1/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/areashop-worldguard-7_beta_1/pom.xml b/areashop-worldguard-7_beta_1/pom.xml
new file mode 100644
index 0000000..51dd3c4
--- /dev/null
+++ b/areashop-worldguard-7_beta_1/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ areashop-worldguard-7_beta_1
+ jar
+ AreaShop WorldGuard 7_beta_1
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ craftbukkit
+ 1.13-R0.1-SNAPSHOT
+ jar
+ true
+
+
+
+ com.sk89q
+ worldedit
+ system
+ any
+ ${project.basedir}/../dependencies/worldedit-bukkit-7.0.0-beta-01.jar
+
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta-01.jar
+
+
+ me.wiefferink
+ areashop-worldguard-6
+ latest
+ jar
+ provided
+
+
+ me.wiefferink
+ areashop-worldguard-6_1_3
+ latest
+ jar
+ provided
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/areashop-worldguard-7_beta_1/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler7_beta_1.java b/areashop-worldguard-7_beta_1/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler7_beta_1.java
new file mode 100644
index 0000000..7edd4bf
--- /dev/null
+++ b/areashop-worldguard-7_beta_1/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler7_beta_1.java
@@ -0,0 +1,40 @@
+package me.wiefferink.areashop.handlers;
+
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
+import com.sk89q.worldguard.WorldGuard;
+import com.sk89q.worldguard.protection.flags.Flag;
+import com.sk89q.worldguard.protection.flags.FlagContext;
+import com.sk89q.worldguard.protection.flags.Flags;
+import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
+import com.sk89q.worldguard.protection.flags.RegionGroup;
+import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
+import com.sk89q.worldguard.protection.managers.RegionManager;
+import me.wiefferink.areashop.interfaces.AreaShopInterface;
+import org.bukkit.World;
+
+public class WorldGuardHandler7_beta_1 extends WorldGuardHandler6_1_3 {
+
+ public WorldGuardHandler7_beta_1(AreaShopInterface pluginInterface) {
+ super(pluginInterface);
+ }
+
+ @Override
+ public RegionManager getRegionManager(World world) {
+ return WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world));
+ }
+
+ @Override
+ public Flag> fuzzyMatchFlag(String flagName) {
+ return Flags.fuzzyMatchFlag(WorldGuard.getInstance().getFlagRegistry(), flagName);
+ }
+
+ @Override
+ public V parseFlagInput(Flag flag, String input) throws InvalidFlagFormat {
+ return flag.parseInput(FlagContext.create().setInput(input).build());
+ }
+
+ @Override
+ public RegionGroup parseFlagGroupInput(RegionGroupFlag flag, String input) throws InvalidFlagFormat {
+ return flag.parseInput(FlagContext.create().setInput(input).build());
+ }
+}
diff --git a/areashop-worldguard-7_beta_2/.gitignore b/areashop-worldguard-7_beta_2/.gitignore
new file mode 100644
index 0000000..ea8c4bf
--- /dev/null
+++ b/areashop-worldguard-7_beta_2/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/areashop-worldguard-7_beta_2/pom.xml b/areashop-worldguard-7_beta_2/pom.xml
new file mode 100644
index 0000000..9bcf4a4
--- /dev/null
+++ b/areashop-worldguard-7_beta_2/pom.xml
@@ -0,0 +1,61 @@
+
+ 4.0.0
+ areashop-worldguard-7_beta_2
+ jar
+ AreaShop WorldGuard 7_beta_2
+ latest
+
+
+ me.wiefferink
+ areashop-parent
+ parent
+
+
+
+
+ org.bukkit
+ craftbukkit
+ 1.13-R0.1-SNAPSHOT
+ jar
+ true
+
+
+
+ com.sk89q
+ worldedit
+ system
+ any
+ ${project.basedir}/../dependencies/worldedit-bukkit-7.0.0-beta-04.jar
+
+
+
+ com.sk89q
+ worldguard
+ system
+ any
+ ${project.basedir}/../dependencies/worldguard-legacy-7.0.0-beta-02.jar
+
+
+ me.wiefferink
+ areashop-worldguard-6
+ latest
+ jar
+ provided
+
+
+ me.wiefferink
+ areashop-worldguard-6_1_3
+ latest
+ jar
+ provided
+
+
+
+ me.wiefferink
+ areashop-interface
+ latest
+ jar
+
+
+
diff --git a/areashop-worldguard-7_beta_2/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler7_beta_2.java b/areashop-worldguard-7_beta_2/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler7_beta_2.java
new file mode 100644
index 0000000..d739e7b
--- /dev/null
+++ b/areashop-worldguard-7_beta_2/src/main/java/me/wiefferink/areashop/handlers/WorldGuardHandler7_beta_2.java
@@ -0,0 +1,74 @@
+package me.wiefferink.areashop.handlers;
+
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
+import com.sk89q.worldedit.math.BlockVector2;
+import com.sk89q.worldedit.math.BlockVector3;
+import com.sk89q.worldguard.WorldGuard;
+import com.sk89q.worldguard.protection.flags.Flag;
+import com.sk89q.worldguard.protection.flags.FlagContext;
+import com.sk89q.worldguard.protection.flags.Flags;
+import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
+import com.sk89q.worldguard.protection.flags.RegionGroup;
+import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
+import com.sk89q.worldguard.protection.managers.RegionManager;
+import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
+import com.sk89q.worldguard.protection.regions.ProtectedRegion;
+import me.wiefferink.areashop.interfaces.AreaShopInterface;
+import org.bukkit.World;
+import org.bukkit.util.Vector;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class WorldGuardHandler7_beta_2 extends WorldGuardHandler6_1_3 {
+
+ public WorldGuardHandler7_beta_2(AreaShopInterface pluginInterface) {
+ super(pluginInterface);
+ }
+
+ @Override
+ public RegionManager getRegionManager(World world) {
+ return WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world));
+ }
+
+ @Override
+ public Flag> fuzzyMatchFlag(String flagName) {
+ return Flags.fuzzyMatchFlag(WorldGuard.getInstance().getFlagRegistry(), flagName);
+ }
+
+ @Override
+ public V parseFlagInput(Flag flag, String input) throws InvalidFlagFormat {
+ return flag.parseInput(FlagContext.create().setInput(input).build());
+ }
+
+ @Override
+ public RegionGroup parseFlagGroupInput(RegionGroupFlag flag, String input) throws InvalidFlagFormat {
+ return flag.parseInput(FlagContext.create().setInput(input).build());
+ }
+
+ @Override
+ public Vector getMinimumPoint(ProtectedRegion region) {
+ BlockVector3 min = region.getMinimumPoint();
+ return new Vector(min.getX(), min.getY(), min.getZ());
+ }
+
+ @Override
+ public Vector getMaximumPoint(ProtectedRegion region) {
+ BlockVector3 min = region.getMaximumPoint();
+ return new Vector(min.getX(), min.getY(), min.getZ());
+ }
+
+ @Override
+ public List getRegionPoints(ProtectedRegion region) {
+ List result = new ArrayList<>();
+ for (BlockVector2 point : region.getPoints()) {
+ result.add(new Vector(point.getX(), 0,point.getZ()));
+ }
+ return result;
+ }
+
+ @Override
+ public ProtectedCuboidRegion createCuboidRegion(String name, Vector corner1, Vector corner2) {
+ return new ProtectedCuboidRegion(name, BlockVector3.at(corner1.getBlockX(), corner1.getBlockY(), corner1.getBlockZ()), BlockVector3.at(corner2.getBlockX(), corner2.getBlockY(), corner2.getBlockZ()));
+ }
+}
diff --git a/dependencies/worldedit-bukkit-7.0.0-beta-04.jar b/dependencies/worldedit-bukkit-7.0.0-beta-04.jar
new file mode 100644
index 0000000..d718515
Binary files /dev/null and b/dependencies/worldedit-bukkit-7.0.0-beta-04.jar differ
diff --git a/dependencies/worldguard-legacy-7.0.0-beta01.jar b/dependencies/worldguard-legacy-7.0.0-beta-01.jar
similarity index 100%
rename from dependencies/worldguard-legacy-7.0.0-beta01.jar
rename to dependencies/worldguard-legacy-7.0.0-beta-01.jar
diff --git a/dependencies/worldguard-legacy-7.0.0-beta-02.jar b/dependencies/worldguard-legacy-7.0.0-beta-02.jar
new file mode 100644
index 0000000..729457b
Binary files /dev/null and b/dependencies/worldguard-legacy-7.0.0-beta-02.jar differ
diff --git a/pom.xml b/pom.xml
index c78d431..43732b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,14 +49,16 @@
- WorldGuard 5
- WorldGuard 6
- WorldGuard 6_1_3
- WorldGuard 7
- Interfaces
- WorldEdit 5
- WorldEdit 6
- WorldEdit 7
+ areashop-interface
+ areashop-worldguard-5
+ areashop-worldguard-6
+ areashop-worldguard-6_1_3
+ areashop-worldguard-7_beta_1
+ areashop-worldguard-7_beta_2
+ areashop-worldedit-5
+ areashop-worldedit-6
+ areashop-worldedit-7_beta_1
+ areashop-worldedit-7_beta_4
AreaShop