From 60d23d036475ab90ef67fb95f22fb0eaf99d9ca0 Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Tue, 21 Aug 2018 01:43:58 +0200 Subject: [PATCH] Bump version, enhance project structure, minor fixes --- api/pom.xml | 31 +------ .../event}/AbstractWrappedEvent.java | 16 +++- .../event/DamageEntityEvent.java | 11 +-- .../event/UseBlockEvent.java | 14 ++- .../event/UseEntityEvent.java | 12 ++- .../flags/AbstractWrappedFlag.java | 31 +++---- .../worldguardwrapper/flags/BooleanFlag.java | 7 +- .../worldguardwrapper/flags/DoubleFlag.java | 5 +- .../worldguardwrapper/flags/EnumFlag.java | 18 ++-- .../worldguardwrapper/flags/IntegerFlag.java | 5 +- .../worldguardwrapper/flags/LocationFlag.java | 25 +++--- .../worldguardwrapper/flags/SetFlag.java | 26 +++--- .../worldguardwrapper/flags/StringFlag.java | 5 +- .../region/WrappedRegion.java | 16 ++++ implementation/aggregated/pom.xml | 30 ------- implementation/interface/pom.xml | 10 ++- .../implementation/AbstractRegion.java | 20 ----- .../AbstractWorldGuardImplementation.java | 7 -- .../IWorldGuardImplementation.java | 48 ++++++----- implementation/pom.xml | 3 +- implementation/v6/pom.xml | 4 +- .../implementation/v6/EventListener.java | 85 +++++++------------ .../v6/WorldGuardImplementation.java | 58 ++++++------- implementation/v7/pom.xml | 4 +- .../implementation/v7/EventListener.java | 85 +++++++------------ .../v7/WorldGuardImplementation.java | 68 ++++++++------- library/pom.xml | 48 +++++++++++ .../worldguardwrapper/WorldGuardWrapper.java | 24 +++--- pom.xml | 3 +- 29 files changed, 333 insertions(+), 386 deletions(-) rename {implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation => api/src/main/java/org/codemc/worldguardwrapper/event}/AbstractWrappedEvent.java (70%) rename implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractFlag.java => api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java (84%) create mode 100644 api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java delete mode 100644 implementation/aggregated/pom.xml delete mode 100644 implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractRegion.java delete mode 100644 implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWorldGuardImplementation.java create mode 100644 library/pom.xml rename {api => library}/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java (71%) diff --git a/api/pom.xml b/api/pom.xml index 3dac189..fd024e0 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -7,37 +7,10 @@ org.codemc.worldguardwrapper worldguardwrapper-parent - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT - worldguardwrapper + worldguardwrapper-api WorldGuardWrapper-API - - - - ${project.groupId} - worldguardwrapper-implementation-aggregated - ${project.version} - pom - true - - - - - - - org.apache.maven.plugins - maven-shade-plugin - - - package - - shade - - - - - - diff --git a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWrappedEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/AbstractWrappedEvent.java similarity index 70% rename from implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWrappedEvent.java rename to api/src/main/java/org/codemc/worldguardwrapper/event/AbstractWrappedEvent.java index 026cbf2..1be3230 100644 --- a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWrappedEvent.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/event/AbstractWrappedEvent.java @@ -1,9 +1,10 @@ -package org.codemc.worldguardwrapper.implementation; +package org.codemc.worldguardwrapper.event; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; public abstract class AbstractWrappedEvent extends Event implements Cancellable { + private Result result = Result.DEFAULT; @Override @@ -18,11 +19,22 @@ public abstract class AbstractWrappedEvent extends Event implements Cancellable } } + /** + * Sets the event result. + * + * @param result the new event result + */ public void setResult(Result result) { this.result = result; } + /** + * Returns the current event result. + * + * @return the event result + */ public Result getResult() { return result; } -} \ No newline at end of file + +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java index 37aa21c..f0c2ccf 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/event/DamageEntityEvent.java @@ -1,17 +1,15 @@ package org.codemc.worldguardwrapper.event; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.codemc.worldguardwrapper.implementation.AbstractWrappedEvent; - -import lombok.AllArgsConstructor; -import lombok.Getter; +@RequiredArgsConstructor @Getter -@AllArgsConstructor public class DamageEntityEvent extends AbstractWrappedEvent { private static final HandlerList handlers = new HandlerList(); @@ -29,5 +27,4 @@ public class DamageEntityEvent extends AbstractWrappedEvent { public static HandlerList getHandlerList() { return handlers; } - -} \ No newline at end of file +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java index 6a57252..363ad76 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/event/UseBlockEvent.java @@ -1,20 +1,18 @@ package org.codemc.worldguardwrapper.event; -import java.util.List; - +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.codemc.worldguardwrapper.implementation.AbstractWrappedEvent; -import lombok.AllArgsConstructor; -import lombok.Getter; +import java.util.List; +@RequiredArgsConstructor @Getter -@AllArgsConstructor public class UseBlockEvent extends AbstractWrappedEvent { private static final HandlerList handlers = new HandlerList(); @@ -33,5 +31,5 @@ public class UseBlockEvent extends AbstractWrappedEvent { public static HandlerList getHandlerList() { return handlers; } - -} \ No newline at end of file + +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java index 943b6b4..7f903ea 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/event/UseEntityEvent.java @@ -1,17 +1,15 @@ package org.codemc.worldguardwrapper.event; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; -import org.codemc.worldguardwrapper.implementation.AbstractWrappedEvent; - -import lombok.AllArgsConstructor; -import lombok.Getter; +@RequiredArgsConstructor @Getter -@AllArgsConstructor public class UseEntityEvent extends AbstractWrappedEvent { private static final HandlerList handlers = new HandlerList(); @@ -29,5 +27,5 @@ public class UseEntityEvent extends AbstractWrappedEvent { public static HandlerList getHandlerList() { return handlers; } - -} \ No newline at end of file + +} diff --git a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java similarity index 84% rename from implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractFlag.java rename to api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java index 4a60c73..6a4febf 100644 --- a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/AbstractWrappedFlag.java @@ -1,21 +1,22 @@ -package org.codemc.worldguardwrapper.implementation; - -import org.bukkit.entity.Player; +package org.codemc.worldguardwrapper.flags; import lombok.AllArgsConstructor; import lombok.NonNull; import lombok.RequiredArgsConstructor; +import org.bukkit.entity.Player; -@RequiredArgsConstructor @AllArgsConstructor -public abstract class AbstractFlag { - private @NonNull String name; - private @NonNull Class type; +@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() { @@ -24,7 +25,7 @@ public abstract class AbstractFlag { /** * Get the type of this flag's value. - * + * * @return The type */ public Class getType() { @@ -33,7 +34,7 @@ public abstract class AbstractFlag { /** * Get the default value of this flag. - * + * * @return The default value (may be {@code null}) */ public T getDefaultValue() { @@ -43,7 +44,7 @@ public abstract class AbstractFlag { /** * Convert the value stored in this flag into a type that can be * serialized into YAML. - * + * * @param value The value * @return The serialized type */ @@ -52,7 +53,7 @@ public abstract class AbstractFlag { /** * 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 */ @@ -60,11 +61,11 @@ public abstract class AbstractFlag { /** * Parse a given input to force it to a type compatible with the flag. - * - * @param player Player who entered the string. + * + * @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); -} \ No newline at end of file +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java index d910cfd..cf96232 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/BooleanFlag.java @@ -1,12 +1,11 @@ package org.codemc.worldguardwrapper.flags; import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; /** * A flag that stores a boolean. */ -public class BooleanFlag extends AbstractFlag { +public class BooleanFlag extends AbstractWrappedFlag { public BooleanFlag(String name) { this(name, false); @@ -27,7 +26,7 @@ public class BooleanFlag extends AbstractFlag { } @Override - public Boolean parse(Player player, String userInput) { + public Boolean parse(Player player, String userInput) { if (userInput.equalsIgnoreCase("true") || userInput.equalsIgnoreCase("yes") || userInput.equalsIgnoreCase("on") || userInput.equalsIgnoreCase("1")) { @@ -41,4 +40,4 @@ public class BooleanFlag extends AbstractFlag { } } -} \ No newline at end of file +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java index 7d12a93..e2b182e 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/DoubleFlag.java @@ -1,12 +1,11 @@ package org.codemc.worldguardwrapper.flags; import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; /** * A flag that stores a double. */ -public class DoubleFlag extends AbstractFlag { +public class DoubleFlag extends AbstractWrappedFlag { public DoubleFlag(String name) { this(name, 0d); @@ -35,4 +34,4 @@ public class DoubleFlag extends AbstractFlag { return Double.parseDouble(userInput); } -} \ No newline at end of file +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java index 275f560..454f49c 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/EnumFlag.java @@ -1,14 +1,11 @@ package org.codemc.worldguardwrapper.flags; import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; /** * A flag that stores an enum value. */ -public class EnumFlag> extends AbstractFlag { - - private Class enumClass; +public class EnumFlag> extends AbstractWrappedFlag { public EnumFlag(String name, Class enumClass) { this(name, enumClass, null); @@ -20,11 +17,12 @@ public class EnumFlag> extends AbstractFlag { /** * Get the enum class. - * + * TODO: really needed? we already have getType() -Gab + * * @return The enum class */ public Class getEnumClass() { - return enumClass; + return getType(); } @Override @@ -35,7 +33,7 @@ public class EnumFlag> extends AbstractFlag { @Override public T deserialize(Object serialized) { if (serialized instanceof String) { - return Enum.valueOf(enumClass, (String) serialized); + return Enum.valueOf(getEnumClass(), (String) serialized); } else { return null; } @@ -43,7 +41,7 @@ public class EnumFlag> extends AbstractFlag { @Override public T parse(Player player, String userInput) { - return Enum.valueOf(enumClass, userInput); + return Enum.valueOf(getEnumClass(), userInput); } - -} \ No newline at end of file + +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java index 56709bf..23c467f 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/IntegerFlag.java @@ -1,12 +1,11 @@ package org.codemc.worldguardwrapper.flags; import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; /** * A flag that stores an integer. */ -public class IntegerFlag extends AbstractFlag { +public class IntegerFlag extends AbstractWrappedFlag { public IntegerFlag(String name) { this(name, 0); @@ -35,4 +34,4 @@ public class IntegerFlag extends AbstractFlag { return Integer.parseInt(userInput); } -} \ No newline at end of file +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java index 7079405..371a68e 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/LocationFlag.java @@ -1,18 +1,17 @@ package org.codemc.worldguardwrapper.flags; -import java.util.HashMap; -import java.util.Map; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; + +import java.util.HashMap; +import java.util.Map; /** * A flag that stores a bukkit location. */ -public class LocationFlag extends AbstractFlag { +public class LocationFlag extends AbstractWrappedFlag { public LocationFlag(String name) { this(name, null); @@ -43,22 +42,22 @@ public class LocationFlag extends AbstractFlag { 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; @@ -97,5 +96,5 @@ public class LocationFlag extends AbstractFlag { return 0; } } - -} \ No newline at end of file + +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java index e697185..d9abae6 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/SetFlag.java @@ -1,36 +1,32 @@ package org.codemc.worldguardwrapper.flags; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; + +import java.util.*; /** * A flag that stores a set of values of the sub flag's type. */ -public class SetFlag extends AbstractFlag> { +public class SetFlag extends AbstractWrappedFlag> { - private AbstractFlag subFlag; + private AbstractWrappedFlag subFlag; - public SetFlag(String name, AbstractFlag subFlag) { + public SetFlag(String name, AbstractWrappedFlag subFlag) { this(name, new HashSet<>(), subFlag); } @SuppressWarnings("unchecked") - public SetFlag(String name, Set defaultValue, AbstractFlag subFlag) { + 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 AbstractFlag getSubType() { + public AbstractWrappedFlag getSubType() { return subFlag; } @@ -77,5 +73,5 @@ public class SetFlag extends AbstractFlag> { return items; } } - -} \ No newline at end of file + +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flags/StringFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flags/StringFlag.java index b4b8038..7871931 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flags/StringFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flags/StringFlag.java @@ -1,12 +1,11 @@ package org.codemc.worldguardwrapper.flags; import org.bukkit.entity.Player; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; /** * A flag that stores a string. */ -public class StringFlag extends AbstractFlag { +public class StringFlag extends AbstractWrappedFlag { public StringFlag(String name) { this(name, ""); @@ -31,4 +30,4 @@ public class StringFlag extends AbstractFlag { return userInput; } -} \ No newline at end of file +} diff --git a/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java b/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java new file mode 100644 index 0000000..9b285c0 --- /dev/null +++ b/api/src/main/java/org/codemc/worldguardwrapper/region/WrappedRegion.java @@ -0,0 +1,16 @@ +package org.codemc.worldguardwrapper.region; + +import java.util.Map; +import java.util.Optional; + +public interface WrappedRegion { + + String getId(); + + Optional getFlag(String name); + + Map getFlags(); + + int getPriority(); + +} diff --git a/implementation/aggregated/pom.xml b/implementation/aggregated/pom.xml deleted file mode 100644 index 025343c..0000000 --- a/implementation/aggregated/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - 4.0.0 - - - org.codemc.worldguardwrapper - worldguardwrapper-implementation - 1.0.0-SNAPSHOT - - - worldguardwrapper-implementation-aggregated - pom - - WorldGuardWrapper-Implementation-Aggregated - - - - ${project.groupId} - worldguardwrapper-implementation-v6 - ${project.version} - - - ${project.groupId} - worldguardwrapper-implementation-v7 - ${project.version} - - - diff --git a/implementation/interface/pom.xml b/implementation/interface/pom.xml index 3e3ff64..8740307 100644 --- a/implementation/interface/pom.xml +++ b/implementation/interface/pom.xml @@ -7,10 +7,18 @@ org.codemc.worldguardwrapper worldguardwrapper-implementation - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT worldguardwrapper-implementation-interface WorldGuardWrapper-Implementation-Interface + + + + ${project.groupId} + worldguardwrapper-api + 1.0.1-SNAPSHOT + + diff --git a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractRegion.java b/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractRegion.java deleted file mode 100644 index fd982a0..0000000 --- a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractRegion.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.codemc.worldguardwrapper.implementation; - -import java.util.Map; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -public abstract class AbstractRegion { - - private String id; - - public abstract Object getFlag(String name); - - public abstract Map getFlags(); - - public abstract int getPriority(); - -} \ No newline at end of file diff --git a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWorldGuardImplementation.java b/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWorldGuardImplementation.java deleted file mode 100644 index c051750..0000000 --- a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/AbstractWorldGuardImplementation.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.codemc.worldguardwrapper.implementation; - -public abstract class AbstractWorldGuardImplementation implements IWorldGuardImplementation { - - protected AbstractWorldGuardImplementation() { - } -} diff --git a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java b/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java index 1843463..70553df 100644 --- a/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java +++ b/implementation/interface/src/main/java/org/codemc/worldguardwrapper/implementation/IWorldGuardImplementation.java @@ -1,45 +1,46 @@ package org.codemc.worldguardwrapper.implementation; +import lombok.NonNull; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +import org.codemc.worldguardwrapper.flags.AbstractWrappedFlag; +import org.codemc.worldguardwrapper.region.WrappedRegion; + import java.util.Map; import java.util.Optional; import java.util.Set; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import lombok.NonNull; - public interface IWorldGuardImplementation { /** * Get an instance of the WorldGuardPlugin class - * + * * @return The WorldGuard plugin */ JavaPlugin getWorldGuardPlugin(); /** * Get the API version of the loaded WorldGuard plugin (e.g. 6 or 7). - * + * * @return The API version */ int getApiVersion(); /** * Query a StateFlag's value for a given player at a given location. - * + * * @param player The player * @param location The location - * @param flagName The flag's name + * @param flagName The flag's name * @return The flag's value */ Optional queryStateFlag(Player player, @NonNull Location location, @NonNull String flagName); /** * Register a {@code StateFlag}. - * + * * @param flagName The name of the flag * @param defaultValue The flag's default value * @return Whether the flag has been registered @@ -48,7 +49,7 @@ public interface IWorldGuardImplementation { /** * Query a flag's value for a given player at a given location. - * + * * @param player The player * @param location The location * @param flagName The name of the flag @@ -59,32 +60,32 @@ public interface IWorldGuardImplementation { /** * Query a flag's value for a given player at a given location. - * + * * @param player The player * @param location The location * @param flag The flag * @return The flag's value */ - default Optional queryFlag(Player player, @NonNull Location location, @NonNull AbstractFlag flag) { + default Optional queryFlag(Player player, @NonNull Location location, @NonNull AbstractWrappedFlag flag) { return queryFlag(player, location, flag.getName(), flag.getType()); } /** * Register a flag to WorldGuard's flag registry. - * + * * @param flag The flag to register * @return Whether the flag has been registered */ - boolean registerFlag(@NonNull AbstractFlag flag); + boolean registerFlag(@NonNull AbstractWrappedFlag flag); /** * Get a region by its ID. - * + * * @param world The world - * @param id ID of the region + * @param id ID of the region * @return The region */ - Optional getRegion(World world, String id); + Optional getRegion(World world, String id); /** * Get an unmodifiable map of regions containing the state of the @@ -96,13 +97,14 @@ public interface IWorldGuardImplementation { * @param world The world * @return A map of regions */ - Map getRegions(World world); + Map getRegions(World world); /** * Get a set of regions at the given location. - * + * * @param location The location * @return A set of regions */ - Set getRegions(Location location); + Set getRegions(Location location); + } diff --git a/implementation/pom.xml b/implementation/pom.xml index 34540ed..02cc676 100644 --- a/implementation/pom.xml +++ b/implementation/pom.xml @@ -7,7 +7,7 @@ org.codemc.worldguardwrapper worldguardwrapper-parent - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT worldguardwrapper-implementation @@ -17,7 +17,6 @@ interface v6 v7 - aggregated WorldGuardWrapper-Implementation diff --git a/implementation/v6/pom.xml b/implementation/v6/pom.xml index 67d8fa2..b41157b 100644 --- a/implementation/v6/pom.xml +++ b/implementation/v6/pom.xml @@ -7,7 +7,7 @@ org.codemc.worldguardwrapper worldguardwrapper-implementation - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT worldguardwrapper-implementation-v6 @@ -18,7 +18,7 @@ ${project.groupId} worldguardwrapper-implementation-interface - ${project.version} + 1.0.1-SNAPSHOT com.sk89q.worldguard diff --git a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/EventListener.java b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/EventListener.java index c8c118a..dda0eca 100644 --- a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/EventListener.java +++ b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/EventListener.java @@ -1,88 +1,67 @@ package org.codemc.worldguardwrapper.implementation.v6; -import java.util.List; - import com.sk89q.worldguard.bukkit.event.block.UseBlockEvent; import com.sk89q.worldguard.bukkit.event.entity.DamageEntityEvent; import com.sk89q.worldguard.bukkit.event.entity.UseEntityEvent; - +import lombok.NoArgsConstructor; import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -import org.bukkit.event.Event; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.codemc.worldguardwrapper.implementation.AbstractWrappedEvent; +import org.codemc.worldguardwrapper.event.AbstractWrappedEvent; -import lombok.AllArgsConstructor; - -@AllArgsConstructor +@NoArgsConstructor public class EventListener implements Listener { - private Class useBlockEventClass; - private Class useEntityEventClass; - private Class damageEntityEventClass; - @EventHandler - public void onUseBlock(UseBlockEvent e) { - Player player = e.getCause().getFirstPlayer(); + public void onUseBlock(UseBlockEvent worldGuardEvent) { + Player player = worldGuardEvent.getCause().getFirstPlayer(); if (player == null) { // Only forward player events for now return; } - try { - AbstractWrappedEvent event = useBlockEventClass - .getConstructor(Event.class, Player.class, World.class, List.class, Material.class) - .newInstance(e.getOriginalEvent(), player, e.getWorld(), e.getBlocks(), e.getEffectiveMaterial()); - - Bukkit.getServer().getPluginManager().callEvent(event); - e.setResult(event.getResult()); - } catch (ReflectiveOperationException ex) { - ex.printStackTrace(); // TODO: Handle differently - } + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.UseBlockEvent( + worldGuardEvent.getOriginalEvent(), + player, worldGuardEvent.getWorld(), + worldGuardEvent.getBlocks(), + worldGuardEvent.getEffectiveMaterial()); + Bukkit.getServer().getPluginManager().callEvent(event); + worldGuardEvent.setResult(event.getResult()); } @EventHandler - public void onUseEntity(UseEntityEvent e) { - Player player = e.getCause().getFirstPlayer(); + public void onUseEntity(UseEntityEvent worldGuardEvent) { + Player player = worldGuardEvent.getCause().getFirstPlayer(); if (player == null) { // Only forward player events for now return; } - try { - AbstractWrappedEvent event = useEntityEventClass - .getConstructor(Event.class, Player.class, Location.class, Entity.class) - .newInstance(e.getOriginalEvent(), player, e.getTarget(), e.getEntity()); - - Bukkit.getServer().getPluginManager().callEvent(event); - e.setResult(event.getResult()); - } catch (ReflectiveOperationException ex) { - ex.printStackTrace(); // TODO: Handle differently - } + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.UseEntityEvent( + worldGuardEvent.getOriginalEvent(), + player, + worldGuardEvent.getTarget(), + worldGuardEvent.getEntity()); + Bukkit.getServer().getPluginManager().callEvent(event); + worldGuardEvent.setResult(event.getResult()); } @EventHandler - public void onDamageEntity(DamageEntityEvent e) { - Player player = e.getCause().getFirstPlayer(); + public void onDamageEntity(DamageEntityEvent worldGuardEvent) { + Player player = worldGuardEvent.getCause().getFirstPlayer(); if (player == null) { // Only forward player events for now return; } - try { - AbstractWrappedEvent event = damageEntityEventClass - .getConstructor(Event.class, Player.class, Location.class, Entity.class) - .newInstance(e.getOriginalEvent(), player, e.getTarget(), e.getEntity()); - - Bukkit.getServer().getPluginManager().callEvent(event); - e.setResult(event.getResult()); - } catch (ReflectiveOperationException ex) { - ex.printStackTrace(); // TODO: Handle differently - } + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.DamageEntityEvent( + worldGuardEvent.getOriginalEvent(), + player, + worldGuardEvent.getTarget(), + worldGuardEvent.getEntity()); + Bukkit.getServer().getPluginManager().callEvent(event); + worldGuardEvent.setResult(event.getResult()); } -} \ No newline at end of file + +} diff --git a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java index 4c62e17..6e30022 100644 --- a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java +++ b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/WorldGuardImplementation.java @@ -1,11 +1,5 @@ package org.codemc.worldguardwrapper.implementation.v6; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.protection.ApplicableRegionSet; @@ -17,26 +11,23 @@ import com.sk89q.worldguard.protection.flags.registry.FlagConflictException; import com.sk89q.worldguard.protection.flags.registry.FlagRegistry; import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedRegion; - +import lombok.NoArgsConstructor; +import lombok.NonNull; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; -import org.codemc.worldguardwrapper.implementation.AbstractRegion; -import org.codemc.worldguardwrapper.implementation.AbstractWorldGuardImplementation; +import org.codemc.worldguardwrapper.flags.AbstractWrappedFlag; +import org.codemc.worldguardwrapper.implementation.IWorldGuardImplementation; +import org.codemc.worldguardwrapper.region.WrappedRegion; -import lombok.NonNull; +import java.util.*; -public class WorldGuardImplementation extends AbstractWorldGuardImplementation { +@NoArgsConstructor +public class WorldGuardImplementation implements IWorldGuardImplementation { - private final WorldGuardPlugin plugin; - private final FlagRegistry flagRegistry; - - public WorldGuardImplementation() { - plugin = WorldGuardPlugin.inst(); - flagRegistry = plugin.getFlagRegistry(); - } + private final WorldGuardPlugin plugin = WorldGuardPlugin.inst(); + private final FlagRegistry flagRegistry = plugin.getFlagRegistry(); private Optional wrapPlayer(Player player) { return Optional.ofNullable(player).map(bukkitPlayer -> plugin.wrapPlayer(player)); @@ -58,8 +49,14 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { return getApplicableRegions(location).map(applicableRegions -> applicableRegions.queryState(wrapPlayer(player).orElse(null), stateFlags)); } - private AbstractRegion toRegion(ProtectedRegion region) { - return new AbstractRegion(region.getId()) { + private WrappedRegion toRegion(ProtectedRegion region) { + return new WrappedRegion() { + + @Override + public String getId() { + return region.getId(); + } + @Override public Map getFlags() { Map map = new HashMap<>(); @@ -68,14 +65,16 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { } @Override - public Object getFlag(String name) { - return region.getFlag(flagRegistry.get(name)); + public Optional getFlag(String name) { + return Optional.ofNullable(flagRegistry.get(name)) + .map(region::getFlag); } @Override public int getPriority() { return region.getPriority(); } + }; } @@ -120,7 +119,7 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { } @Override - public boolean registerFlag(AbstractFlag flag) { + public boolean registerFlag(AbstractWrappedFlag flag) { Flag wgFlag = new Flag(flag.getName()) { @Override public T getDefault() { @@ -152,25 +151,25 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { } @Override - public Optional getRegion(World world, String id) { + public Optional getRegion(World world, String id) { return getWorldManager(world).map(regionManager -> toRegion(regionManager.getRegion(id))); } @Override - public Map getRegions(World world) { + public Map getRegions(World world) { RegionManager regionManager = plugin.getRegionManager(world); Map regions = regionManager.getRegions(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); regions.forEach((name, region) -> map.put(name, toRegion(region))); return map; } @Override - public Set getRegions(Location location) { + public Set getRegions(Location location) { ApplicableRegionSet regionSet = getApplicableRegions(location).orElse(null); - Set set = new HashSet<>(); + Set set = new HashSet<>(); if (regionSet == null) { return set; @@ -179,4 +178,5 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { regionSet.forEach(region -> set.add(toRegion(region))); return set; } + } diff --git a/implementation/v7/pom.xml b/implementation/v7/pom.xml index c61537d..513b042 100644 --- a/implementation/v7/pom.xml +++ b/implementation/v7/pom.xml @@ -7,7 +7,7 @@ org.codemc.worldguardwrapper worldguardwrapper-implementation - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT worldguardwrapper-implementation-v7 @@ -18,7 +18,7 @@ ${project.groupId} worldguardwrapper-implementation-interface - ${project.version} + 1.0.1-SNAPSHOT com.sk89q.worldguard diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java index 1b8e69c..7674333 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java @@ -1,88 +1,67 @@ package org.codemc.worldguardwrapper.implementation.v7; -import java.util.List; - import com.sk89q.worldguard.bukkit.event.block.UseBlockEvent; import com.sk89q.worldguard.bukkit.event.entity.DamageEntityEvent; import com.sk89q.worldguard.bukkit.event.entity.UseEntityEvent; - +import lombok.NoArgsConstructor; import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -import org.bukkit.event.Event; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.codemc.worldguardwrapper.implementation.AbstractWrappedEvent; +import org.codemc.worldguardwrapper.event.AbstractWrappedEvent; -import lombok.AllArgsConstructor; - -@AllArgsConstructor +@NoArgsConstructor public class EventListener implements Listener { - private Class useBlockEventClass; - private Class useEntityEventClass; - private Class damageEntityEventClass; - @EventHandler - public void onUseBlock(UseBlockEvent e) { - Player player = e.getCause().getFirstPlayer(); + public void onUseBlock(UseBlockEvent worldGuardEvent) { + Player player = worldGuardEvent.getCause().getFirstPlayer(); if (player == null) { // Only forward player events for now return; } - try { - AbstractWrappedEvent event = useBlockEventClass - .getConstructor(Event.class, Player.class, World.class, List.class, Material.class) - .newInstance(e.getOriginalEvent(), player, e.getWorld(), e.getBlocks(), e.getEffectiveMaterial()); - - Bukkit.getServer().getPluginManager().callEvent(event); - e.setResult(event.getResult()); - } catch (ReflectiveOperationException ex) { - ex.printStackTrace(); // TODO: Handle differently - } + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.UseBlockEvent( + worldGuardEvent.getOriginalEvent(), + player, worldGuardEvent.getWorld(), + worldGuardEvent.getBlocks(), + worldGuardEvent.getEffectiveMaterial()); + Bukkit.getServer().getPluginManager().callEvent(event); + worldGuardEvent.setResult(event.getResult()); } @EventHandler - public void onUseEntity(UseEntityEvent e) { - Player player = e.getCause().getFirstPlayer(); + public void onUseEntity(UseEntityEvent worldGuardEvent) { + Player player = worldGuardEvent.getCause().getFirstPlayer(); if (player == null) { // Only forward player events for now return; } - try { - AbstractWrappedEvent event = useEntityEventClass - .getConstructor(Event.class, Player.class, Location.class, Entity.class) - .newInstance(e.getOriginalEvent(), player, e.getTarget(), e.getEntity()); - - Bukkit.getServer().getPluginManager().callEvent(event); - e.setResult(event.getResult()); - } catch (ReflectiveOperationException ex) { - ex.printStackTrace(); // TODO: Handle differently - } + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.UseEntityEvent( + worldGuardEvent.getOriginalEvent(), + player, + worldGuardEvent.getTarget(), + worldGuardEvent.getEntity()); + Bukkit.getServer().getPluginManager().callEvent(event); + worldGuardEvent.setResult(event.getResult()); } @EventHandler - public void onDamageEntity(DamageEntityEvent e) { - Player player = e.getCause().getFirstPlayer(); + public void onDamageEntity(DamageEntityEvent worldGuardEvent) { + Player player = worldGuardEvent.getCause().getFirstPlayer(); if (player == null) { // Only forward player events for now return; } - try { - AbstractWrappedEvent event = damageEntityEventClass - .getConstructor(Event.class, Player.class, Location.class, Entity.class) - .newInstance(e.getOriginalEvent(), player, e.getTarget(), e.getEntity()); - - Bukkit.getServer().getPluginManager().callEvent(event); - e.setResult(event.getResult()); - } catch (ReflectiveOperationException ex) { - ex.printStackTrace(); // TODO: Handle differently - } + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.DamageEntityEvent( + worldGuardEvent.getOriginalEvent(), + player, + worldGuardEvent.getTarget(), + worldGuardEvent.getEntity()); + Bukkit.getServer().getPluginManager().callEvent(event); + worldGuardEvent.setResult(event.getResult()); } -} \ No newline at end of file + +} diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java index f94b208..ced0128 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/WorldGuardImplementation.java @@ -1,11 +1,5 @@ package org.codemc.worldguardwrapper.implementation.v7; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldguard.LocalPlayer; @@ -20,19 +14,20 @@ import com.sk89q.worldguard.protection.flags.registry.FlagConflictException; import com.sk89q.worldguard.protection.flags.registry.FlagRegistry; import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedRegion; - +import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; -import org.codemc.worldguardwrapper.implementation.AbstractFlag; -import org.codemc.worldguardwrapper.implementation.AbstractRegion; -import org.codemc.worldguardwrapper.implementation.AbstractWorldGuardImplementation; +import org.codemc.worldguardwrapper.flags.AbstractWrappedFlag; +import org.codemc.worldguardwrapper.implementation.IWorldGuardImplementation; +import org.codemc.worldguardwrapper.region.WrappedRegion; -import lombok.NonNull; +import java.util.*; +import java.util.stream.Collectors; -public class WorldGuardImplementation extends AbstractWorldGuardImplementation { +public class WorldGuardImplementation implements IWorldGuardImplementation { private final WorldGuard core; private final FlagRegistry flagRegistry; @@ -68,24 +63,32 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { return getApplicableRegions(location).map(applicableRegions -> applicableRegions.queryState(wrapPlayer(player).orElse(null), stateFlags)); } - private AbstractRegion toRegion(ProtectedRegion region) { - return new AbstractRegion(region.getId()) { + private WrappedRegion toRegion(ProtectedRegion region) { + return new WrappedRegion() { + + @Override + public String getId() { + return region.getId(); + } + @Override public Map getFlags() { Map map = new HashMap<>(); region.getFlags().forEach((flag, value) -> map.put(flag.getName(), value)); return map; } - + @Override - public Object getFlag(String name) { - return region.getFlag(flagRegistry.get(name)); + public Optional getFlag(String name) { + return Optional.ofNullable(flagRegistry.get(name)) + .map(region::getFlag); } @Override public int getPriority() { return region.getPriority(); } + }; } @@ -130,7 +133,7 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { } @Override - public boolean registerFlag(AbstractFlag flag) { + public boolean registerFlag(AbstractWrappedFlag flag) { Flag wgFlag = new Flag(flag.getName()) { @Override public T getDefault() { @@ -149,7 +152,7 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { @Override public T parseInput(FlagContext context) throws InvalidFlagFormat { - return flag.parse(getPlayer(context.getPlayerSender()).get(), context.getUserInput()); + return flag.parse(getPlayer(context.getPlayerSender()).orElse(null), context.getUserInput()); } }; @@ -162,31 +165,34 @@ public class WorldGuardImplementation extends AbstractWorldGuardImplementation { } @Override - public Optional getRegion(World world, String id) { - return getWorldManager(world).map(regionManager -> toRegion(regionManager.getRegion(id))); + public Optional getRegion(World world, String id) { + return getWorldManager(world) + .map(regionManager -> regionManager.getRegion(id)) + .map(this::toRegion); } @Override - public Map getRegions(World world) { + public Map getRegions(World world) { RegionManager regionManager = core.getPlatform().getRegionContainer().get(new BukkitWorld(world)); + if (regionManager == null) { + return Collections.emptyMap(); + } + Map regions = regionManager.getRegions(); - - Map map = new HashMap<>(); + Map map = new HashMap<>(); regions.forEach((name, region) -> map.put(name, toRegion(region))); - return map; } @Override - public Set getRegions(Location location) { + public Set getRegions(Location location) { ApplicableRegionSet regionSet = getApplicableRegions(location).orElse(null); - Set set = new HashSet<>(); - if (regionSet == null) { - return set; + return Collections.emptySet(); } - regionSet.forEach(region -> set.add(toRegion(region))); - return set; + return regionSet.getRegions().stream() + .map(this::toRegion) + .collect(Collectors.toSet()); } } diff --git a/library/pom.xml b/library/pom.xml new file mode 100644 index 0000000..4c5cf97 --- /dev/null +++ b/library/pom.xml @@ -0,0 +1,48 @@ + + + 4.0.0 + + + org.codemc.worldguardwrapper + worldguardwrapper-parent + 1.0.1-SNAPSHOT + + + worldguardwrapper + + WorldGuardWrapper-Library + + + + ${project.groupId} + worldguardwrapper-implementation-v6 + 1.0.1-SNAPSHOT + true + + + ${project.groupId} + worldguardwrapper-implementation-v7 + 1.0.1-SNAPSHOT + true + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + + + diff --git a/api/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java b/library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java similarity index 71% rename from api/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java rename to library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java index 24e5a50..c96e832 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java +++ b/library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java @@ -1,19 +1,20 @@ package org.codemc.worldguardwrapper; +import lombok.experimental.Delegate; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; -import org.codemc.worldguardwrapper.event.DamageEntityEvent; -import org.codemc.worldguardwrapper.event.UseBlockEvent; -import org.codemc.worldguardwrapper.event.UseEntityEvent; import org.codemc.worldguardwrapper.implementation.IWorldGuardImplementation; -import lombok.experimental.Delegate; - public class WorldGuardWrapper implements IWorldGuardImplementation { private static WorldGuardWrapper instance; + /** + * Returns the wrapper singleton instance. + * + * @return the wrapper singleton + */ public static WorldGuardWrapper getInstance() { if (instance == null) { instance = new WorldGuardWrapper(); @@ -26,24 +27,21 @@ public class WorldGuardWrapper implements IWorldGuardImplementation { private Listener eventListener; private WorldGuardWrapper() { - // TODO: better way to detect version try { Class.forName("com.sk89q.worldguard.WorldGuard"); delegate = new org.codemc.worldguardwrapper.implementation.v7.WorldGuardImplementation(); - eventListener = new org.codemc.worldguardwrapper.implementation.v7.EventListener( - UseBlockEvent.class, UseEntityEvent.class, DamageEntityEvent.class); + eventListener = new org.codemc.worldguardwrapper.implementation.v7.EventListener(); } catch (ClassNotFoundException e) { delegate = new org.codemc.worldguardwrapper.implementation.v6.WorldGuardImplementation(); - eventListener = new org.codemc.worldguardwrapper.implementation.v6.EventListener( - UseBlockEvent.class, UseEntityEvent.class, DamageEntityEvent.class); + eventListener = new org.codemc.worldguardwrapper.implementation.v6.EventListener(); } } /** * Forward WorldGuard event calls to wrapped events to allow listening to them - * without having to use WorldGuard's events. - * - * @param plugin The plugin + * without having to use WorldGuard's events. This is optional. + * + * @param plugin the plugin instance */ public void registerEvents(JavaPlugin plugin) { Bukkit.getPluginManager().registerEvents(eventListener, plugin); diff --git a/pom.xml b/pom.xml index 0941d0b..cce1314 100644 --- a/pom.xml +++ b/pom.xml @@ -6,11 +6,12 @@ org.codemc.worldguardwrapper worldguardwrapper-parent - 1.0.0-SNAPSHOT + 1.0.1-SNAPSHOT pom api + library implementation