From 328f12c425cca3ff377e6203e5dc2b62d947c4d0 Mon Sep 17 00:00:00 2001
From: stijnb1234 <stijnbannink23@gmail.com>
Date: Sun, 28 Jun 2020 17:23:04 +0200
Subject: [PATCH] Update of RegionGroup system

---
 .../worldguardwrapper/flag/IWrappedFlag.java  |  2 --
 .../legacy/flag/AbstractWrappedFlag.java      |  2 +-
 .../legacy/flag/WrappedPrimitiveFlag.java     |  2 +-
 .../legacy/flag/WrappedRegionGroupFlag.java   | 25 +++++++++++++++++++
 .../legacy/flag/WrappedStatusFlag.java        |  2 +-
 5 files changed, 28 insertions(+), 5 deletions(-)
 create mode 100644 implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedRegionGroupFlag.java

diff --git a/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java b/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java
index 52e9c55..f2f45f2 100644
--- a/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java
+++ b/api/src/main/java/org/codemc/worldguardwrapper/flag/IWrappedFlag.java
@@ -8,6 +8,4 @@ public interface IWrappedFlag<T> {
 
     Optional<T> getDefaultValue();
 
-    IWrappedRegionGroupFlag getRegionGroupFlag();
-
 }
diff --git a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/AbstractWrappedFlag.java b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/AbstractWrappedFlag.java
index af0080d..097f0f9 100644
--- a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/AbstractWrappedFlag.java
+++ b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/AbstractWrappedFlag.java
@@ -4,6 +4,7 @@ import com.sk89q.worldguard.protection.flags.Flag;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import org.codemc.worldguardwrapper.flag.IWrappedFlag;
+import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag;
 
 import java.util.Optional;
 
@@ -26,5 +27,4 @@ public abstract class AbstractWrappedFlag<T> implements IWrappedFlag<T> {
     public Optional<T> getDefaultValue() {
         return fromWGValue(handle.getDefault());
     }
-
 }
diff --git a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedPrimitiveFlag.java b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedPrimitiveFlag.java
index cd8d828..4230c70 100644
--- a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedPrimitiveFlag.java
+++ b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedPrimitiveFlag.java
@@ -4,6 +4,7 @@ import com.sk89q.worldguard.protection.flags.Flag;
 
 import org.bukkit.Location;
 import org.bukkit.util.Vector;
+import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag;
 import org.codemc.worldguardwrapper.implementation.legacy.utility.WorldGuardFlagUtilities;
 
 import java.util.Optional;
@@ -34,5 +35,4 @@ public class WrappedPrimitiveFlag<T> extends AbstractWrappedFlag<T> {
         }
         return Optional.ofNullable(value);
     }
-
 }
diff --git a/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedRegionGroupFlag.java b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedRegionGroupFlag.java
new file mode 100644
index 0000000..0c22124
--- /dev/null
+++ b/implementation/legacy/src/main/java/org/codemc/worldguardwrapper/implementation/legacy/flag/WrappedRegionGroupFlag.java
@@ -0,0 +1,25 @@
+package org.codemc.worldguardwrapper.implementation.legacy.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<WrappedRegionGroup> implements IWrappedRegionGroupFlag {
+
+    public WrappedRegionGroupFlag(Flag<RegionGroup> handle) {
+        super(handle);
+    }
+
+    @Override
+    public Optional<WrappedRegionGroup> fromWGValue(Object value) {
+        return Optional.of(Enum.valueOf(WrappedRegionGroup.class, value.toString()));
+    }
+
+    @Override
+    public Optional<Object> fromWrapperValue(WrappedRegionGroup value) {
+        return Optional.of(Enum.valueOf(RegionGroup.class, value.toString()));
+    }
+}
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 8082790..800acc9 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,6 +2,7 @@ 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;
 
@@ -24,5 +25,4 @@ public class WrappedStatusFlag extends AbstractWrappedFlag<WrappedState> impleme
         return Optional.ofNullable(value)
                 .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY);
     }
-
 }