From 1e29c9dc93b3ef20bc9fa5daab1cb7d95d4f7e1d Mon Sep 17 00:00:00 2001 From: stijnb1234 Date: Sun, 28 Jun 2020 18:57:23 +0200 Subject: [PATCH] Added multiple things to the regiongroup system --- .../flag/IWrappedStatusFlag.java | 2 +- .../legacy/flag/WrappedStatusFlag.java | 11 +++++--- .../utility/WorldGuardFlagUtilities.java | 5 ++++ .../v6/flag/WrappedRegionGroupFlag.java | 25 +++++++++++++++++++ .../v6/flag/WrappedStatusFlag.java | 7 ++++++ .../v6/utility/WorldGuardFlagUtilities.java | 5 ++++ .../v7/WorldGuardImplementation.java | 6 ++--- .../v7/flag/WrappedRegionGroupFlag.java | 25 +++++++++++++++++++ .../v7/flag/WrappedStatusFlag.java | 7 ++++++ .../v7/region/WrappedRegion.java | 1 + .../v7/utility/WorldGuardFlagUtilities.java | 6 +++++ 11 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedRegionGroupFlag.java create mode 100644 implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedRegionGroupFlag.java diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedStatusFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedStatusFlag.java index 3381569..4787205 100644 --- a/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedStatusFlag.java +++ b/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedStatusFlag.java @@ -1,5 +1,5 @@ package org.codemc.worldguardwrapper.flag; public interface IWrappedStatusFlag extends IWrappedFlag { - + IWrappedFlag getRegionGroupFlag(); } diff --git a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedStatusFlag.java b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedStatusFlag.java index 800acc9..0b85be8 100644 --- a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedStatusFlag.java +++ b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedStatusFlag.java @@ -2,9 +2,9 @@ package org.codemc.worldguardwrapper.implementation.legacy.flag; import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.StateFlag; -import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag; -import org.codemc.worldguardwrapper.flag.IWrappedStatusFlag; -import org.codemc.worldguardwrapper.flag.WrappedState; +import org.codemc.worldguardwrapper.flag.*; +import org.codemc.worldguardwrapper.implementation.legacy.WorldGuardImplementation; +import org.codemc.worldguardwrapper.implementation.legacy.utility.WorldGuardFlagUtilities; import java.util.Optional; @@ -25,4 +25,9 @@ public class WrappedStatusFlag extends AbstractWrappedFlag impleme return Optional.ofNullable(value) .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY); } + + @Override + public IWrappedFlag getRegionGroupFlag() { + return WorldGuardFlagUtilities.wrap(getHandle().getRegionGroupFlag(), IWrappedRegionGroupFlag.class); + } } diff --git a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/utility/WorldGuardFlagUtilities.java b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/utility/WorldGuardFlagUtilities.java index 9bd623f..b25bac9 100644 --- a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/utility/WorldGuardFlagUtilities.java +++ b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/utility/WorldGuardFlagUtilities.java @@ -3,6 +3,7 @@ package org.codemc.worldguardwrapper.implementation.legacy.utility; import com.google.common.collect.Maps; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldguard.protection.flags.Flag; +import com.sk89q.worldguard.protection.flags.RegionGroup; import com.sk89q.worldguard.protection.flags.StateFlag; import org.bukkit.Bukkit; @@ -10,9 +11,11 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.util.Vector; import org.codemc.worldguardwrapper.flag.IWrappedFlag; +import org.codemc.worldguardwrapper.flag.WrappedRegionGroup; import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.implementation.legacy.flag.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.legacy.flag.WrappedPrimitiveFlag; +import org.codemc.worldguardwrapper.implementation.legacy.flag.WrappedRegionGroupFlag; import org.codemc.worldguardwrapper.implementation.legacy.flag.WrappedStatusFlag; import lombok.experimental.UtilityClass; @@ -28,6 +31,8 @@ public class WorldGuardFlagUtilities { final IWrappedFlag wrappedFlag; if (type.equals(WrappedState.class)) { wrappedFlag = (IWrappedFlag) new WrappedStatusFlag((Flag) flag); + } else if (type.equals(WrappedRegionGroup.class)) { + wrappedFlag = (IWrappedFlag) new WrappedRegionGroupFlag((Flag) flag); } else if (type.equals(Boolean.class) || type.equals(boolean.class)) { wrappedFlag = new WrappedPrimitiveFlag(flag); } else if (type.equals(Double.class) || type.equals(double.class)) { diff --git a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedRegionGroupFlag.java b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedRegionGroupFlag.java new file mode 100644 index 0000000..33a4aea --- /dev/null +++ b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedRegionGroupFlag.java @@ -0,0 +1,25 @@ +package org.codemc.worldguardwrapper.implementation.v6.flag; + +import com.sk89q.worldguard.protection.flags.Flag; +import com.sk89q.worldguard.protection.flags.RegionGroup; +import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag; +import org.codemc.worldguardwrapper.flag.WrappedRegionGroup; + +import java.util.Optional; + +public class WrappedRegionGroupFlag extends AbstractWrappedFlag implements IWrappedRegionGroupFlag { + + public WrappedRegionGroupFlag(Flag handle) { + super(handle); + } + + @Override + public Optional fromWGValue(Object value) { + return Optional.of(Enum.valueOf(WrappedRegionGroup.class, value.toString())); + } + + @Override + public Optional fromWrapperValue(WrappedRegionGroup value) { + return Optional.of(Enum.valueOf(RegionGroup.class, value.toString())); + } +} diff --git a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedStatusFlag.java b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedStatusFlag.java index ce5205f..36cb206 100644 --- a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedStatusFlag.java +++ b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/flag/WrappedStatusFlag.java @@ -2,8 +2,11 @@ package org.codemc.worldguardwrapper.implementation.v6.flag; import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.StateFlag; +import org.codemc.worldguardwrapper.flag.IWrappedFlag; +import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag; import org.codemc.worldguardwrapper.flag.IWrappedStatusFlag; import org.codemc.worldguardwrapper.flag.WrappedState; +import org.codemc.worldguardwrapper.implementation.v6.utility.WorldGuardFlagUtilities; import java.util.Optional; @@ -25,4 +28,8 @@ public class WrappedStatusFlag extends AbstractWrappedFlag impleme .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY); } + @Override + public IWrappedFlag getRegionGroupFlag() { + return WorldGuardFlagUtilities.wrap(getHandle().getRegionGroupFlag(), IWrappedRegionGroupFlag.class); + } } diff --git a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/utility/WorldGuardFlagUtilities.java b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/utility/WorldGuardFlagUtilities.java index 5836f49..fdd2b75 100644 --- a/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/utility/WorldGuardFlagUtilities.java +++ b/implementation/v6/src/main/java/org/codemc/worldguardwrapper/implementation/v6/utility/WorldGuardFlagUtilities.java @@ -3,15 +3,18 @@ package org.codemc.worldguardwrapper.implementation.v6.utility; import com.google.common.collect.Maps; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldguard.protection.flags.Flag; +import com.sk89q.worldguard.protection.flags.RegionGroup; import com.sk89q.worldguard.protection.flags.StateFlag; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.util.Vector; import org.codemc.worldguardwrapper.flag.IWrappedFlag; +import org.codemc.worldguardwrapper.flag.WrappedRegionGroup; import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.implementation.v6.flag.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.v6.flag.WrappedPrimitiveFlag; +import org.codemc.worldguardwrapper.implementation.v6.flag.WrappedRegionGroupFlag; import org.codemc.worldguardwrapper.implementation.v6.flag.WrappedStatusFlag; import lombok.experimental.UtilityClass; @@ -27,6 +30,8 @@ public class WorldGuardFlagUtilities { final IWrappedFlag wrappedFlag; if (type.equals(WrappedState.class)) { wrappedFlag = (IWrappedFlag) new WrappedStatusFlag((Flag) flag); + } else if (type.equals(WrappedRegionGroup.class)) { + wrappedFlag = (IWrappedFlag) new WrappedRegionGroupFlag((Flag) flag); } else if (type.equals(Boolean.class) || type.equals(boolean.class)) { wrappedFlag = new WrappedPrimitiveFlag(flag); } else if (type.equals(Double.class) || type.equals(double.class)) { 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 673fe06..2bd39ab 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 @@ -99,7 +99,7 @@ public class WorldGuardImplementation implements IWorldGuardImplementation { @Override public Optional queryFlag(Player player, Location location, IWrappedFlag flag) { AbstractWrappedFlag wrappedFlag = (AbstractWrappedFlag) flag; - return queryValue(player, location, wrappedFlag.getHandle()).flatMap(value -> wrappedFlag.fromWGValue(value)); + return queryValue(player, location, wrappedFlag.getHandle()).flatMap(wrappedFlag::fromWGValue); } @Override @@ -124,8 +124,8 @@ public class WorldGuardImplementation implements IWorldGuardImplementation { try { Map.Entry, Object> wrapped = WorldGuardFlagUtilities.wrap(flag, value); flags.put(wrapped.getKey(), wrapped.getValue()); - } catch (IllegalArgumentException e) { - continue; // Unsupported flag type + } catch (IllegalArgumentException ignored) { + // Unsupported flag type } } } diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedRegionGroupFlag.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedRegionGroupFlag.java new file mode 100644 index 0000000..1dc4ab9 --- /dev/null +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedRegionGroupFlag.java @@ -0,0 +1,25 @@ +package org.codemc.worldguardwrapper.implementation.v7.flag; + +import com.sk89q.worldguard.protection.flags.Flag; +import com.sk89q.worldguard.protection.flags.RegionGroup; +import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag; +import org.codemc.worldguardwrapper.flag.WrappedRegionGroup; + +import java.util.Optional; + +public class WrappedRegionGroupFlag extends AbstractWrappedFlag implements IWrappedRegionGroupFlag { + + public WrappedRegionGroupFlag(Flag handle) { + super(handle); + } + + @Override + public Optional fromWGValue(Object value) { + return Optional.of(Enum.valueOf(WrappedRegionGroup.class, value.toString())); + } + + @Override + public Optional fromWrapperValue(WrappedRegionGroup value) { + return Optional.of(Enum.valueOf(RegionGroup.class, value.toString())); + } +} diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedStatusFlag.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedStatusFlag.java index 72d4436..d122880 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedStatusFlag.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/flag/WrappedStatusFlag.java @@ -2,8 +2,11 @@ package org.codemc.worldguardwrapper.implementation.v7.flag; import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.StateFlag; +import org.codemc.worldguardwrapper.flag.IWrappedFlag; +import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag; import org.codemc.worldguardwrapper.flag.IWrappedStatusFlag; import org.codemc.worldguardwrapper.flag.WrappedState; +import org.codemc.worldguardwrapper.implementation.v7.utility.WorldGuardFlagUtilities; import java.util.Optional; @@ -25,4 +28,8 @@ public class WrappedStatusFlag extends AbstractWrappedFlag impleme .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY); } + @Override + public IWrappedFlag getRegionGroupFlag() { + return WorldGuardFlagUtilities.wrap(getHandle().getRegionGroupFlag(), IWrappedRegionGroupFlag.class); + } } diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/region/WrappedRegion.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/region/WrappedRegion.java index 6540783..89264c4 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/region/WrappedRegion.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/region/WrappedRegion.java @@ -12,6 +12,7 @@ import org.bukkit.Location; import org.bukkit.World; import org.codemc.worldguardwrapper.flag.IWrappedFlag; import org.codemc.worldguardwrapper.implementation.v7.flag.AbstractWrappedFlag; +import org.codemc.worldguardwrapper.implementation.v7.flag.WrappedStatusFlag; import org.codemc.worldguardwrapper.implementation.v7.utility.WorldGuardFlagUtilities; import org.codemc.worldguardwrapper.region.IWrappedDomain; import org.codemc.worldguardwrapper.region.IWrappedRegion; diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/utility/WorldGuardFlagUtilities.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/utility/WorldGuardFlagUtilities.java index 1950b36..6bad1c1 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/utility/WorldGuardFlagUtilities.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/utility/WorldGuardFlagUtilities.java @@ -3,14 +3,18 @@ package org.codemc.worldguardwrapper.implementation.v7.utility; import com.google.common.collect.Maps; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldguard.protection.flags.Flag; +import com.sk89q.worldguard.protection.flags.RegionGroup; +import com.sk89q.worldguard.protection.flags.RegionGroupFlag; import com.sk89q.worldguard.protection.flags.StateFlag; import org.bukkit.Location; import org.bukkit.util.Vector; import org.codemc.worldguardwrapper.flag.IWrappedFlag; +import org.codemc.worldguardwrapper.flag.WrappedRegionGroup; import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.implementation.v7.flag.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.v7.flag.WrappedPrimitiveFlag; +import org.codemc.worldguardwrapper.implementation.v7.flag.WrappedRegionGroupFlag; import org.codemc.worldguardwrapper.implementation.v7.flag.WrappedStatusFlag; import lombok.experimental.UtilityClass; @@ -27,6 +31,8 @@ public class WorldGuardFlagUtilities { final IWrappedFlag wrappedFlag; if (type.equals(WrappedState.class)) { wrappedFlag = (IWrappedFlag) new WrappedStatusFlag((Flag) flag); + } else if (type.equals(WrappedRegionGroup.class)) { + wrappedFlag = (IWrappedFlag) new WrappedRegionGroupFlag((Flag) flag); } else if (type.equals(Boolean.class) || type.equals(boolean.class)) { wrappedFlag = new WrappedPrimitiveFlag(flag); } else if (type.equals(Double.class) || type.equals(double.class)) {