Added multiple things to the regiongroup system

This commit is contained in:
stijnb1234 2020-06-28 18:57:23 +02:00
parent 328f12c425
commit 1e29c9dc93
11 changed files with 93 additions and 7 deletions

View File

@ -1,5 +1,5 @@
package org.codemc.worldguardwrapper.flag; package org.codemc.worldguardwrapper.flag;
public interface IWrappedStatusFlag extends IWrappedFlag<WrappedState> { public interface IWrappedStatusFlag extends IWrappedFlag<WrappedState> {
IWrappedFlag<IWrappedRegionGroupFlag> getRegionGroupFlag();
} }

View File

@ -2,9 +2,9 @@ package org.codemc.worldguardwrapper.implementation.legacy.flag;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.protection.flags.StateFlag;
import org.codemc.worldguardwrapper.flag.IWrappedRegionGroupFlag; import org.codemc.worldguardwrapper.flag.*;
import org.codemc.worldguardwrapper.flag.IWrappedStatusFlag; import org.codemc.worldguardwrapper.implementation.legacy.WorldGuardImplementation;
import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.implementation.legacy.utility.WorldGuardFlagUtilities;
import java.util.Optional; import java.util.Optional;
@ -25,4 +25,9 @@ public class WrappedStatusFlag extends AbstractWrappedFlag<WrappedState> impleme
return Optional.ofNullable(value) return Optional.ofNullable(value)
.map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY); .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY);
} }
@Override
public IWrappedFlag<IWrappedRegionGroupFlag> getRegionGroupFlag() {
return WorldGuardFlagUtilities.wrap(getHandle().getRegionGroupFlag(), IWrappedRegionGroupFlag.class);
}
} }

View File

@ -3,6 +3,7 @@ package org.codemc.worldguardwrapper.implementation.legacy.utility;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.bukkit.BukkitWorld;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.protection.flags.StateFlag;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -10,9 +11,11 @@ import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import org.codemc.worldguardwrapper.flag.IWrappedFlag; import org.codemc.worldguardwrapper.flag.IWrappedFlag;
import org.codemc.worldguardwrapper.flag.WrappedRegionGroup;
import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.flag.WrappedState;
import org.codemc.worldguardwrapper.implementation.legacy.flag.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.legacy.flag.AbstractWrappedFlag;
import org.codemc.worldguardwrapper.implementation.legacy.flag.WrappedPrimitiveFlag; 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 org.codemc.worldguardwrapper.implementation.legacy.flag.WrappedStatusFlag;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
@ -28,6 +31,8 @@ public class WorldGuardFlagUtilities {
final IWrappedFlag<T> wrappedFlag; final IWrappedFlag<T> wrappedFlag;
if (type.equals(WrappedState.class)) { if (type.equals(WrappedState.class)) {
wrappedFlag = (IWrappedFlag<T>) new WrappedStatusFlag((Flag<StateFlag.State>) flag); wrappedFlag = (IWrappedFlag<T>) new WrappedStatusFlag((Flag<StateFlag.State>) flag);
} else if (type.equals(WrappedRegionGroup.class)) {
wrappedFlag = (IWrappedFlag<T>) new WrappedRegionGroupFlag((Flag<RegionGroup>) flag);
} else if (type.equals(Boolean.class) || type.equals(boolean.class)) { } else if (type.equals(Boolean.class) || type.equals(boolean.class)) {
wrappedFlag = new WrappedPrimitiveFlag(flag); wrappedFlag = new WrappedPrimitiveFlag(flag);
} else if (type.equals(Double.class) || type.equals(double.class)) { } else if (type.equals(Double.class) || type.equals(double.class)) {

View File

@ -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<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()));
}
}

View File

@ -2,8 +2,11 @@ package org.codemc.worldguardwrapper.implementation.v6.flag;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.StateFlag; 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.IWrappedStatusFlag;
import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.flag.WrappedState;
import org.codemc.worldguardwrapper.implementation.v6.utility.WorldGuardFlagUtilities;
import java.util.Optional; import java.util.Optional;
@ -25,4 +28,8 @@ public class WrappedStatusFlag extends AbstractWrappedFlag<WrappedState> impleme
.map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY); .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY);
} }
@Override
public IWrappedFlag<IWrappedRegionGroupFlag> getRegionGroupFlag() {
return WorldGuardFlagUtilities.wrap(getHandle().getRegionGroupFlag(), IWrappedRegionGroupFlag.class);
}
} }

View File

@ -3,15 +3,18 @@ package org.codemc.worldguardwrapper.implementation.v6.utility;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.bukkit.BukkitWorld;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.protection.flags.StateFlag;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import org.codemc.worldguardwrapper.flag.IWrappedFlag; import org.codemc.worldguardwrapper.flag.IWrappedFlag;
import org.codemc.worldguardwrapper.flag.WrappedRegionGroup;
import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.flag.WrappedState;
import org.codemc.worldguardwrapper.implementation.v6.flag.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.v6.flag.AbstractWrappedFlag;
import org.codemc.worldguardwrapper.implementation.v6.flag.WrappedPrimitiveFlag; 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 org.codemc.worldguardwrapper.implementation.v6.flag.WrappedStatusFlag;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
@ -27,6 +30,8 @@ public class WorldGuardFlagUtilities {
final IWrappedFlag<T> wrappedFlag; final IWrappedFlag<T> wrappedFlag;
if (type.equals(WrappedState.class)) { if (type.equals(WrappedState.class)) {
wrappedFlag = (IWrappedFlag<T>) new WrappedStatusFlag((Flag<StateFlag.State>) flag); wrappedFlag = (IWrappedFlag<T>) new WrappedStatusFlag((Flag<StateFlag.State>) flag);
} else if (type.equals(WrappedRegionGroup.class)) {
wrappedFlag = (IWrappedFlag<T>) new WrappedRegionGroupFlag((Flag<RegionGroup>) flag);
} else if (type.equals(Boolean.class) || type.equals(boolean.class)) { } else if (type.equals(Boolean.class) || type.equals(boolean.class)) {
wrappedFlag = new WrappedPrimitiveFlag(flag); wrappedFlag = new WrappedPrimitiveFlag(flag);
} else if (type.equals(Double.class) || type.equals(double.class)) { } else if (type.equals(Double.class) || type.equals(double.class)) {

View File

@ -99,7 +99,7 @@ public class WorldGuardImplementation implements IWorldGuardImplementation {
@Override @Override
public <T> Optional<T> queryFlag(Player player, Location location, IWrappedFlag<T> flag) { public <T> Optional<T> queryFlag(Player player, Location location, IWrappedFlag<T> flag) {
AbstractWrappedFlag<T> wrappedFlag = (AbstractWrappedFlag<T>) flag; AbstractWrappedFlag<T> wrappedFlag = (AbstractWrappedFlag<T>) flag;
return queryValue(player, location, wrappedFlag.getHandle()).flatMap(value -> wrappedFlag.fromWGValue(value)); return queryValue(player, location, wrappedFlag.getHandle()).flatMap(wrappedFlag::fromWGValue);
} }
@Override @Override
@ -124,8 +124,8 @@ public class WorldGuardImplementation implements IWorldGuardImplementation {
try { try {
Map.Entry<IWrappedFlag<?>, Object> wrapped = WorldGuardFlagUtilities.wrap(flag, value); Map.Entry<IWrappedFlag<?>, Object> wrapped = WorldGuardFlagUtilities.wrap(flag, value);
flags.put(wrapped.getKey(), wrapped.getValue()); flags.put(wrapped.getKey(), wrapped.getValue());
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException ignored) {
continue; // Unsupported flag type // Unsupported flag type
} }
} }
} }

View File

@ -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<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()));
}
}

View File

@ -2,8 +2,11 @@ package org.codemc.worldguardwrapper.implementation.v7.flag;
import com.sk89q.worldguard.protection.flags.Flag; import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.StateFlag; 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.IWrappedStatusFlag;
import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.flag.WrappedState;
import org.codemc.worldguardwrapper.implementation.v7.utility.WorldGuardFlagUtilities;
import java.util.Optional; import java.util.Optional;
@ -25,4 +28,8 @@ public class WrappedStatusFlag extends AbstractWrappedFlag<WrappedState> impleme
.map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY); .map(state -> state == WrappedState.ALLOW ? StateFlag.State.ALLOW : StateFlag.State.DENY);
} }
@Override
public IWrappedFlag<IWrappedRegionGroupFlag> getRegionGroupFlag() {
return WorldGuardFlagUtilities.wrap(getHandle().getRegionGroupFlag(), IWrappedRegionGroupFlag.class);
}
} }

View File

@ -12,6 +12,7 @@ import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.codemc.worldguardwrapper.flag.IWrappedFlag; import org.codemc.worldguardwrapper.flag.IWrappedFlag;
import org.codemc.worldguardwrapper.implementation.v7.flag.AbstractWrappedFlag; 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.implementation.v7.utility.WorldGuardFlagUtilities;
import org.codemc.worldguardwrapper.region.IWrappedDomain; import org.codemc.worldguardwrapper.region.IWrappedDomain;
import org.codemc.worldguardwrapper.region.IWrappedRegion; import org.codemc.worldguardwrapper.region.IWrappedRegion;

View File

@ -3,14 +3,18 @@ package org.codemc.worldguardwrapper.implementation.v7.utility;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.Vector3;
import com.sk89q.worldguard.protection.flags.Flag; 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 com.sk89q.worldguard.protection.flags.StateFlag;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import org.codemc.worldguardwrapper.flag.IWrappedFlag; import org.codemc.worldguardwrapper.flag.IWrappedFlag;
import org.codemc.worldguardwrapper.flag.WrappedRegionGroup;
import org.codemc.worldguardwrapper.flag.WrappedState; import org.codemc.worldguardwrapper.flag.WrappedState;
import org.codemc.worldguardwrapper.implementation.v7.flag.AbstractWrappedFlag; import org.codemc.worldguardwrapper.implementation.v7.flag.AbstractWrappedFlag;
import org.codemc.worldguardwrapper.implementation.v7.flag.WrappedPrimitiveFlag; 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 org.codemc.worldguardwrapper.implementation.v7.flag.WrappedStatusFlag;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
@ -27,6 +31,8 @@ public class WorldGuardFlagUtilities {
final IWrappedFlag<T> wrappedFlag; final IWrappedFlag<T> wrappedFlag;
if (type.equals(WrappedState.class)) { if (type.equals(WrappedState.class)) {
wrappedFlag = (IWrappedFlag<T>) new WrappedStatusFlag((Flag<StateFlag.State>) flag); wrappedFlag = (IWrappedFlag<T>) new WrappedStatusFlag((Flag<StateFlag.State>) flag);
} else if (type.equals(WrappedRegionGroup.class)) {
wrappedFlag = (IWrappedFlag<T>) new WrappedRegionGroupFlag((Flag<RegionGroup>) flag);
} else if (type.equals(Boolean.class) || type.equals(boolean.class)) { } else if (type.equals(Boolean.class) || type.equals(boolean.class)) {
wrappedFlag = new WrappedPrimitiveFlag(flag); wrappedFlag = new WrappedPrimitiveFlag(flag);
} else if (type.equals(Double.class) || type.equals(double.class)) { } else if (type.equals(Double.class) || type.equals(double.class)) {