diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..683051e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,8 @@
+sudo: false
+dist: trusty
+language: java
+jdk:
+ - oraclejdk8
+cache:
+ directories:
+ - '$HOME/.m2/repository'
diff --git a/README.md b/README.md
index b0318a2..7627d35 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ How to include WorldEditWrapper into your maven project:
org.codemc.worldguardwrapper
worldguardwrapper
- 1.0.3-SNAPSHOT
+ 1.1.0-SNAPSHOT
```
@@ -34,7 +34,7 @@ Remember to include/relocate the library into your final jar, example:
org.apache.maven.plugins
maven-shade-plugin
- 3.2.0
+ 3.2.1
package
diff --git a/api/pom.xml b/api/pom.xml
index 629598e..e16bd4b 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -7,7 +7,7 @@
org.codemc.worldguardwrapper
worldguardwrapper-parent
- 1.0.4-SNAPSHOT
+ 1.1.0-SNAPSHOT
worldguardwrapper-api
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedDamageEntityEvent.java
similarity index 90%
rename from api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java
rename to api/src/main/java/org/codemc/worldguardwrapper/event/WrappedDamageEntityEvent.java
index f0c2ccf..de980e3 100644
--- a/api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java
+++ b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedDamageEntityEvent.java
@@ -10,7 +10,7 @@ import org.bukkit.event.HandlerList;
@RequiredArgsConstructor
@Getter
-public class DamageEntityEvent extends AbstractWrappedEvent {
+public class WrappedDamageEntityEvent extends AbstractWrappedEvent {
private static final HandlerList handlers = new HandlerList();
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedDisallowedPVPEvent.java
similarity index 89%
rename from api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java
rename to api/src/main/java/org/codemc/worldguardwrapper/event/WrappedDisallowedPVPEvent.java
index 3a150fd..8903173 100644
--- a/api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java
+++ b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedDisallowedPVPEvent.java
@@ -8,7 +8,7 @@ import org.bukkit.event.HandlerList;
@RequiredArgsConstructor
@Getter
-public class DisallowedPVPEvent extends AbstractWrappedEvent {
+public class WrappedDisallowedPVPEvent extends AbstractWrappedEvent {
private static final HandlerList handlers = new HandlerList();
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedUseBlockEvent.java
similarity index 92%
rename from api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java
rename to api/src/main/java/org/codemc/worldguardwrapper/event/WrappedUseBlockEvent.java
index 363ad76..9edc76d 100644
--- a/api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java
+++ b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedUseBlockEvent.java
@@ -13,7 +13,7 @@ import java.util.List;
@RequiredArgsConstructor
@Getter
-public class UseBlockEvent extends AbstractWrappedEvent {
+public class WrappedUseBlockEvent extends AbstractWrappedEvent {
private static final HandlerList handlers = new HandlerList();
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedUseEntityEvent.java
similarity index 91%
rename from api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java
rename to api/src/main/java/org/codemc/worldguardwrapper/event/WrappedUseEntityEvent.java
index 7f903ea..03bb067 100644
--- a/api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java
+++ b/api/src/main/java/org/codemc/worldguardwrapper/event/WrappedUseEntityEvent.java
@@ -10,7 +10,7 @@ import org.bukkit.event.HandlerList;
@RequiredArgsConstructor
@Getter
-public class UseEntityEvent extends AbstractWrappedEvent {
+public class WrappedUseEntityEvent extends AbstractWrappedEvent {
private static final HandlerList handlers = new HandlerList();
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java
new file mode 100644
index 0000000..f2f45f2
--- /dev/null
+++ b/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java
@@ -0,0 +1,11 @@
+package org.codemc.worldguardwrapper.flag;
+
+import java.util.Optional;
+
+public interface IWrappedFlag {
+
+ String getName();
+
+ Optional getDefaultValue();
+
+}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flag/WrappedState.java b/api/src/main/java/org/codemc/worldguardwrapper/flag/WrappedState.java
new file mode 100644
index 0000000..0901810
--- /dev/null
+++ b/api/src/main/java/org/codemc/worldguardwrapper/flag/WrappedState.java
@@ -0,0 +1,9 @@
+package org.codemc.worldguardwrapper.flag;
+
+public enum WrappedState {
+ ALLOW,
+ DENY;
+
+ WrappedState() {
+ }
+}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java
deleted file mode 100644
index 6a4febf..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import lombok.AllArgsConstructor;
-import lombok.NonNull;
-import lombok.RequiredArgsConstructor;
-import org.bukkit.entity.Player;
-
-@AllArgsConstructor
-@RequiredArgsConstructor
-public abstract class AbstractWrappedFlag {
- @NonNull
- private String name;
- @NonNull
- private Class type;
- private T defaultValue;
-
- /**
- * Get the name of this flag.
- *
- * @return The name
- */
- public String getName() {
- return name;
- }
-
- /**
- * Get the type of this flag's value.
- *
- * @return The type
- */
- public Class getType() {
- return type;
- }
-
- /**
- * Get the default value of this flag.
- *
- * @return The default value (may be {@code null})
- */
- public T getDefaultValue() {
- return defaultValue;
- }
-
- /**
- * Convert the value stored in this flag into a type that can be
- * serialized into YAML.
- *
- * @param value The value
- * @return The serialized type
- */
- public abstract Object serialize(T value);
-
- /**
- * Convert a raw object that was loaded (from a YAML file, for example) into the
- * type that this flag uses.
- *
- * @param serialized The raw object
- * @return The deserialized type
- */
- public abstract T deserialize(Object serialized);
-
- /**
- * Parse a given input to force it to a type compatible with the flag.
- *
- * @param player Player who entered the string.
- * @param userInput Input string (e.g. a player input)
- * @return A type compatible with the flag
- */
- public abstract T parse(Player player, String userInput);
-
-}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java
deleted file mode 100644
index cf96232..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import org.bukkit.entity.Player;
-
-/**
- * A flag that stores a boolean.
- */
-public class BooleanFlag extends AbstractWrappedFlag {
-
- public BooleanFlag(String name) {
- this(name, false);
- }
-
- public BooleanFlag(String name, boolean defaultValue) {
- super(name, boolean.class, defaultValue);
- }
-
- @Override
- public Object serialize(Boolean value) {
- return value;
- }
-
- @Override
- public Boolean deserialize(Object serialized) {
- return (Boolean) serialized;
- }
-
- @Override
- public Boolean parse(Player player, String userInput) {
- if (userInput.equalsIgnoreCase("true") || userInput.equalsIgnoreCase("yes")
- || userInput.equalsIgnoreCase("on")
- || userInput.equalsIgnoreCase("1")) {
- return true;
- } else if (userInput.equalsIgnoreCase("false") || userInput.equalsIgnoreCase("no")
- || userInput.equalsIgnoreCase("off")
- || userInput.equalsIgnoreCase("0")) {
- return false;
- } else {
- return null;
- }
- }
-
-}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java
deleted file mode 100644
index e2b182e..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import org.bukkit.entity.Player;
-
-/**
- * A flag that stores a double.
- */
-public class DoubleFlag extends AbstractWrappedFlag {
-
- public DoubleFlag(String name) {
- this(name, 0d);
- }
-
- public DoubleFlag(String name, double defaultValue) {
- super(name, double.class, defaultValue);
- }
-
- @Override
- public Object serialize(Double value) {
- return value;
- }
-
- @Override
- public Double deserialize(Object serialized) {
- if (serialized instanceof Number) {
- return ((Number) serialized).doubleValue();
- } else {
- return null;
- }
- }
-
- @Override
- public Double parse(Player player, String userInput) {
- return Double.parseDouble(userInput);
- }
-
-}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java
deleted file mode 100644
index 454f49c..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import org.bukkit.entity.Player;
-
-/**
- * A flag that stores an enum value.
- */
-public class EnumFlag> extends AbstractWrappedFlag {
-
- public EnumFlag(String name, Class enumClass) {
- this(name, enumClass, null);
- }
-
- public EnumFlag(String name, Class enumClass, T defaultValue) {
- super(name, enumClass, defaultValue);
- }
-
- /**
- * Get the enum class.
- * TODO: really needed? we already have getType() -Gab
- *
- * @return The enum class
- */
- public Class getEnumClass() {
- return getType();
- }
-
- @Override
- public Object serialize(T value) {
- return value.name();
- }
-
- @Override
- public T deserialize(Object serialized) {
- if (serialized instanceof String) {
- return Enum.valueOf(getEnumClass(), (String) serialized);
- } else {
- return null;
- }
- }
-
- @Override
- public T parse(Player player, String userInput) {
- return Enum.valueOf(getEnumClass(), userInput);
- }
-
-}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java
deleted file mode 100644
index 23c467f..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import org.bukkit.entity.Player;
-
-/**
- * A flag that stores an integer.
- */
-public class IntegerFlag extends AbstractWrappedFlag {
-
- public IntegerFlag(String name) {
- this(name, 0);
- }
-
- public IntegerFlag(String name, int defaultValue) {
- super(name, int.class, defaultValue);
- }
-
- @Override
- public Object serialize(Integer value) {
- return value;
- }
-
- @Override
- public Integer deserialize(Object serialized) {
- if (serialized instanceof Number) {
- return ((Number) serialized).intValue();
- } else {
- return null;
- }
- }
-
- @Override
- public Integer parse(Player player, String userInput) {
- return Integer.parseInt(userInput);
- }
-
-}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java
deleted file mode 100644
index 371a68e..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A flag that stores a bukkit location.
- */
-public class LocationFlag extends AbstractWrappedFlag {
-
- public LocationFlag(String name) {
- this(name, null);
- }
-
- public LocationFlag(String name, Location defaultValue) {
- super(name, Location.class, defaultValue);
- }
-
- @Override
- public Object serialize(Location value) {
- Map map = new HashMap<>();
-
- map.put("world", value.getWorld().getName());
- map.put("x", value.getX());
- map.put("y", value.getY());
- map.put("z", value.getZ());
- map.put("yaw", value.getYaw());
- map.put("pitch", value.getPitch());
-
- return map;
- }
-
- @Override
- public Location deserialize(Object serialized) {
- if (serialized instanceof Map) {
- Map, ?> map = (Map, ?>) serialized;
-
- Object worldName = map.get("world");
- if (worldName == null) return null;
-
- Object x = map.get("x");
- if (x == null) return null;
-
- Object y = map.get("y");
- if (y == null) return null;
-
- Object z = map.get("z");
- if (z == null) return null;
-
- Object yaw = map.get("yaw");
- if (yaw == null) return null;
-
- Object pitch = map.get("pitch");
- if (pitch == null) return null;
-
- World world = Bukkit.getWorld(String.valueOf(worldName));
- if (world == null) return null;
-
- return new Location(world, toNumber(x), toNumber(y), toNumber(z),
- (float) toNumber(yaw), (float) toNumber(pitch));
- }
- return null;
- }
-
- @Override
- public Location parse(Player player, String userInput) {
- if ("here".equalsIgnoreCase(userInput)) {
- return player.getLocation();
- } else if ("none".equalsIgnoreCase(userInput)) {
- return null;
- } else {
- String[] split = userInput.split(",");
- if (split.length >= 3) {
- final World world = player.getWorld();
- final double x = Double.parseDouble(split[0]);
- final double y = Double.parseDouble(split[1]);
- final double z = Double.parseDouble(split[2]);
- final float yaw = split.length < 4 ? 0 : Float.parseFloat(split[3]);
- final float pitch = split.length < 5 ? 0 : Float.parseFloat(split[4]);
-
- return new Location(world, x, y, z, yaw, pitch);
- }
- }
- return null;
- }
-
- private double toNumber(Object o) {
- if (o instanceof Number) {
- return ((Number) o).doubleValue();
- } else {
- return 0;
- }
- }
-
-}
diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java
deleted file mode 100644
index d9abae6..0000000
--- a/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.codemc.worldguardwrapper.flags;
-
-import org.bukkit.entity.Player;
-
-import java.util.*;
-
-/**
- * A flag that stores a set of values of the sub flag's type.
- */
-public class SetFlag extends AbstractWrappedFlag> {
-
- private AbstractWrappedFlag subFlag;
-
- public SetFlag(String name, AbstractWrappedFlag subFlag) {
- this(name, new HashSet<>(), subFlag);
- }
-
- @SuppressWarnings("unchecked")
- public SetFlag(String name, Set defaultValue, AbstractWrappedFlag subFlag) {
- super(name, (Class>) defaultValue.getClass(), defaultValue);
- this.subFlag = subFlag;
- }
-
- /**
- * Get the type of values stored in this flag.
- *
- * @return The stored flag type.
- */
- public AbstractWrappedFlag getSubType() {
- return subFlag;
- }
-
- @Override
- public Set deserialize(Object o) {
- if (o instanceof Collection>) {
- Collection> collection = (Collection>) o;
- Set items = new HashSet();
-
- for (Object sub : collection) {
- T item = subFlag.deserialize(sub);
- if (item != null) {
- items.add(item);
- }
- }
-
- return items;
- } else {
- return null;
- }
- }
-
- @Override
- public Object serialize(Set o) {
- List