From 442cdf2e512b65797ac6020a6d91d11c69036528 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 3 Apr 2024 20:30:16 +0200 Subject: [PATCH] added default implementations to make implementations simpler --- api/build.gradle.kts | 2 +- .../net/thenextlvl/protect/area/Area.java | 15 +++ .../thenextlvl/protect/area/AreaProvider.java | 35 +++++-- .../thenextlvl/protect/area/Container.java | 8 +- .../thenextlvl/protect/area/GlobalArea.java | 25 +++++ .../protect/area/RegionizedArea.java | 89 ++++++++++++++++- .../thenextlvl/protect/flag/FlagProvider.java | 48 +++++---- .../thenextlvl/protect/area/CraftArea.java | 15 ++- .../protect/area/CraftAreaProvider.java | 47 +-------- .../protect/area/CraftGlobalArea.java | 30 ------ .../protect/area/CraftRegionizedArea.java | 97 +------------------ .../protect/command/AreaRedefineCommand.java | 2 +- .../protect/flag/CraftFlagProvider.java | 36 ------- 13 files changed, 197 insertions(+), 252 deletions(-) delete mode 100644 plugin/src/main/java/net/thenextlvl/protect/flag/CraftFlagProvider.java diff --git a/api/build.gradle.kts b/api/build.gradle.kts index c664f84..1c52781 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } group = "net.thenextlvl.protect" -version = "2.0.2-pre2" +version = "2.0.2-pre4" java { withSourcesJar() diff --git a/api/src/main/java/net/thenextlvl/protect/area/Area.java b/api/src/main/java/net/thenextlvl/protect/area/Area.java index 5c4d8ed..5f52c1f 100644 --- a/api/src/main/java/net/thenextlvl/protect/area/Area.java +++ b/api/src/main/java/net/thenextlvl/protect/area/Area.java @@ -3,6 +3,7 @@ import core.annotation.MethodsReturnNotNullByDefault; import net.thenextlvl.protect.flag.FlagProvider; import org.bukkit.World; +import org.jetbrains.annotations.NotNull; /** * The Area interface represents an area inside a world. @@ -45,4 +46,18 @@ public interface Area extends Container, FlagProvider, Comparable { * @return the world associated with this Area */ World getWorld(); + + /** + * {@inheritDoc} + *

+ * Compares this Area object with the specified Area object for order. + * The comparison is based on the priority of the areas. + * + * @param area the Area object to be compared + * @return a negative or positive integer or zero + */ + @Override + default int compareTo(@NotNull Area area) { + return Integer.compare(getPriority(), area.getPriority()); + } } diff --git a/api/src/main/java/net/thenextlvl/protect/area/AreaProvider.java b/api/src/main/java/net/thenextlvl/protect/area/AreaProvider.java index b01649f..94c0666 100644 --- a/api/src/main/java/net/thenextlvl/protect/area/AreaProvider.java +++ b/api/src/main/java/net/thenextlvl/protect/area/AreaProvider.java @@ -8,6 +8,7 @@ import org.bukkit.block.Block; import org.bukkit.entity.Entity; +import java.util.Comparator; import java.util.Optional; import java.util.stream.Stream; @@ -33,7 +34,9 @@ public interface AreaProvider { * @param world the world to retrieve areas from * @return a stream of areas in the given world */ - Stream getAreas(World world); + default Stream getAreas(World world) { + return getAreas().filter(area -> area.getWorld().equals(world)); + } /** * Retrieves a stream of areas at the given location. @@ -41,7 +44,9 @@ public interface AreaProvider { * @param location the location to retrieve areas from * @return a stream of areas at the given location */ - Stream getAreas(Location location); + default Stream getAreas(Location location) { + return getAreas(location.getWorld()).filter(area -> area.contains(location)); + } /** * Retrieves a stream of areas that contain the given block. @@ -49,7 +54,9 @@ public interface AreaProvider { * @param block the block to check for containment * @return a stream of areas containing the given block */ - Stream getAreas(Block block); + default Stream getAreas(Block block) { + return getAreas(block.getLocation()); + } /** * Retrieves a stream of areas that contain the given entity. @@ -57,7 +64,9 @@ public interface AreaProvider { * @param entity the entity to check for containment * @return a stream of areas containing the given entity */ - Stream getAreas(Entity entity); + default Stream getAreas(Entity entity) { + return getAreas(entity.getLocation()); + } /** * Retrieves the global area of the given world. @@ -73,7 +82,11 @@ public interface AreaProvider { * @param location the location to retrieve the area from * @return the area at the given location */ - Area getArea(Location location); + default Area getArea(Location location) { + return getAreas(location) + .max(Comparator.comparingInt(Area::getPriority)) + .orElseGet(() -> getArea(location.getWorld())); + } /** * Retrieves the area with the highest priority that contains the given block. @@ -81,7 +94,9 @@ public interface AreaProvider { * @param block the block to retrieve the area from * @return the area that contains the given block */ - Area getArea(Block block); + default Area getArea(Block block) { + return getArea(block.getLocation()); + } /** * Retrieves the area with the highest priority that contains the given entity. @@ -89,7 +104,9 @@ public interface AreaProvider { * @param entity the entity to check for containment * @return the area that contains the given entity */ - Area getArea(Entity entity); + default Area getArea(Entity entity) { + return getArea(entity.getLocation()); + } /** * Retrieves an optional Area with the given name. @@ -97,5 +114,7 @@ public interface AreaProvider { * @param name the name of the Area to retrieve * @return an Optional containing the Area if found, or an empty Optional otherwise */ - Optional getArea(@NamePattern String name); + default Optional getArea(@NamePattern String name) { + return getAreas().filter(area -> area.getName().equals(name)).findAny(); + } } diff --git a/api/src/main/java/net/thenextlvl/protect/area/Container.java b/api/src/main/java/net/thenextlvl/protect/area/Container.java index 88e85dd..eca7998 100644 --- a/api/src/main/java/net/thenextlvl/protect/area/Container.java +++ b/api/src/main/java/net/thenextlvl/protect/area/Container.java @@ -32,7 +32,9 @@ public interface Container { * @param block the block to check * @return true if the block is contained within the container, false otherwise */ - boolean contains(Block block); + default boolean contains(Block block) { + return contains(block.getLocation()); + } /** * Determines if the given entity is contained within the container. @@ -40,7 +42,9 @@ public interface Container { * @param entity the entity to check * @return true if the entity is contained within the container, false otherwise */ - boolean contains(Entity entity); + default boolean contains(Entity entity) { + return contains(entity.getLocation()); + } /** * Retrieves a list of entities that are contained within this container. diff --git a/api/src/main/java/net/thenextlvl/protect/area/GlobalArea.java b/api/src/main/java/net/thenextlvl/protect/area/GlobalArea.java index d5de19c..3fdb157 100644 --- a/api/src/main/java/net/thenextlvl/protect/area/GlobalArea.java +++ b/api/src/main/java/net/thenextlvl/protect/area/GlobalArea.java @@ -1,7 +1,32 @@ package net.thenextlvl.protect.area; +import core.annotation.MethodsReturnNotNullByDefault; +import core.annotation.ParametersAreNotNullByDefault; +import org.bukkit.Location; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import java.util.List; + /** * The GlobalArea interface represents the area of an entire world. */ +@MethodsReturnNotNullByDefault +@ParametersAreNotNullByDefault public interface GlobalArea extends Area { + + @Override + default List getEntities() { + return getWorld().getEntities(); + } + + @Override + default List getPlayers() { + return getWorld().getPlayers(); + } + + @Override + default boolean contains(Location location) { + return getWorld().equals(location.getWorld()); + } } diff --git a/api/src/main/java/net/thenextlvl/protect/area/RegionizedArea.java b/api/src/main/java/net/thenextlvl/protect/area/RegionizedArea.java index 996f844..e4189bb 100644 --- a/api/src/main/java/net/thenextlvl/protect/area/RegionizedArea.java +++ b/api/src/main/java/net/thenextlvl/protect/area/RegionizedArea.java @@ -1,10 +1,29 @@ package net.thenextlvl.protect.area; +import com.sk89q.worldedit.EditSession; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.bukkit.BukkitWorld; +import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; +import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; +import com.sk89q.worldedit.function.operation.ForwardExtentCopy; +import com.sk89q.worldedit.function.operation.Operations; import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.session.ClipboardHolder; import core.annotation.MethodsReturnNotNullByDefault; import core.annotation.ParametersAreNotNullByDefault; import core.annotation.TypesAreNotNullByDefault; +import net.thenextlvl.protect.event.AreaSchematicDeleteEvent; +import net.thenextlvl.protect.event.AreaSchematicLoadEvent; import net.thenextlvl.protect.schematic.SchematicHolder; +import org.bukkit.Location; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; /** * The RegionizedArea interface represents an area that is bound to a region. @@ -25,17 +44,77 @@ public interface RegionizedArea extends Area, SchematicHolder T getRegion(); /** - * Redefines the region associated with this area. + * Sets the region associated with this {@link RegionizedArea}. * - * @param region the new region to redefine - * @return true if the redefinition is successful, false otherwise + * @param region the region to set + * @return true if the region was successfully set, false otherwise */ - boolean redefine(T region); + boolean setRegion(T region); /** * Checks if the area is too big. * * @return true if the area is too big, false otherwise */ - boolean isTooBig(); + default boolean isTooBig() { + return getRegion().getVolume() >= 1_000_000_000; + } + + @Override + default boolean deleteSchematic() { + return getSchematic().exists() && (new AreaSchematicDeleteEvent<>(this).callEvent() && getSchematic().delete()); + } + + @Override + @SuppressWarnings("ResultOfMethodCallIgnored") + default void saveSchematic() throws IOException, WorldEditException { + var file = getSchematic().getAbsoluteFile(); + file.getParentFile().mkdirs(); + file.createNewFile(); + try (var editSession = WorldEdit.getInstance().newEditSession(new BukkitWorld(getWorld())); + var writer = BuiltInClipboardFormat.FAST.getWriter(new FileOutputStream(getSchematic()))) { + var clipboard = new BlockArrayClipboard(getRegion()); + var extent = new ForwardExtentCopy(editSession, getRegion(), clipboard, getRegion().getMinimumPoint()); + extent.setCopyingEntities(true); + extent.setCopyingBiomes(true); + Operations.complete(extent); + writer.write(clipboard); + } + } + + @Override + default boolean loadSchematic() throws IOException, WorldEditException { + if (!getSchematic().isFile()) return false; + var event = new AreaSchematicLoadEvent<>(this); + if (!event.callEvent()) return false; + var world = new BukkitWorld(getWorld()); + try (EditSession editSession = WorldEdit.getInstance().newEditSession(world)) { + var clipboard = BuiltInClipboardFormat.FAST.getReader(new FileInputStream(getSchematic())).read(); + world.getEntities(getRegion()).forEach(com.sk89q.worldedit.entity.Entity::remove); + var operation = new ClipboardHolder(clipboard).createPaste(editSession).to(getRegion().getMinimumPoint()). + copyBiomes(true).copyEntities(true).ignoreAirBlocks(false).build(); + Operations.complete(operation); + event.getSuccessListeners().forEach(consumer -> consumer.accept(this)); + return true; + } + } + + @Override + default boolean contains(Location location) { + return getRegion().contains(location.getBlockX(), location.getBlockY(), location.getBlockZ()); + } + + @Override + default List getEntities() { + return getWorld().getEntities().stream() + .filter(this::contains) + .toList(); + } + + @Override + default List getPlayers() { + return getWorld().getPlayers().stream() + .filter(this::contains) + .toList(); + } } diff --git a/api/src/main/java/net/thenextlvl/protect/flag/FlagProvider.java b/api/src/main/java/net/thenextlvl/protect/flag/FlagProvider.java index a97d913..d1e5c84 100644 --- a/api/src/main/java/net/thenextlvl/protect/flag/FlagProvider.java +++ b/api/src/main/java/net/thenextlvl/protect/flag/FlagProvider.java @@ -9,46 +9,54 @@ * The FlagProvider interface represents an object that can store and retrieve flags and their associated states. */ public interface FlagProvider { + /** - * Sets the state of a flag. + * Retrieves the map of all flags and their associated state. * - * @param flag The flag to set the state of. - * @param state The state to be set for the flag. - * @param The type of the flag state. + * @return a map of flags and their associated state */ - void setFlag(@NotNull Flag flag, T state); + @NotNull Map, @Nullable Object> getFlags(); /** - * Retrieves the state of a flag. + * Sets the map of all flags and their associated state. * - * @param flag The flag to retrieve the state of. - * @param The type of the flag state. - * @return The state of the flag. + * @param flags A map of flags and their associated states. */ - T getFlag(@NotNull Flag flag); + void setFlags(@NotNull Map, @Nullable Object> flags); /** - * Retrieves the map of all flags and their associated state. + * Sets the state of a flag. * - * @return a map of flags and their associated state + * @param flag The flag to set the state of. + * @param state The state to be set for the flag. + * @param The type of the flag state. */ - @NotNull Map, @Nullable Object> getFlags(); + default void setFlag(@NotNull Flag flag, T state) { + getFlags().put(flag, state); + } /** - * Sets the map of all flags and their associated state. + * Retrieves the state of a flag. * - * @param flags A map of flags and their associated states. + * @param flag The flag to retrieve the state of. + * @param The type of the flag state. + * @return The state of the flag. */ - void setFlags(@NotNull Map, @Nullable Object> flags); + @SuppressWarnings("unchecked") + default T getFlag(@NotNull Flag flag) { + return (T) getFlags().getOrDefault(flag, flag.defaultValue()); + } /** * Checks if the flag has a state defined. * * @param flag The flag to check the state of. - * @param The type of the flag. + * @param The type of the flag. * @return true if a state is defined, true otherwise. */ - boolean hasFlag(@NotNull Flag flag); + default boolean hasFlag(@NotNull Flag flag) { + return getFlags().containsKey(flag); + } /** * Removes a flag from the FlagProvider. @@ -57,5 +65,7 @@ public interface FlagProvider { * @param The type of the flag value. * @return true if the flag was successfully removed, false otherwise. */ - boolean removeFlag(@NotNull Flag flag); + default boolean removeFlag(@NotNull Flag flag) { + return getFlags().remove(flag) != null; + } } diff --git a/plugin/src/main/java/net/thenextlvl/protect/area/CraftArea.java b/plugin/src/main/java/net/thenextlvl/protect/area/CraftArea.java index 6c491e9..02c6aa9 100644 --- a/plugin/src/main/java/net/thenextlvl/protect/area/CraftArea.java +++ b/plugin/src/main/java/net/thenextlvl/protect/area/CraftArea.java @@ -2,13 +2,17 @@ import lombok.Getter; import lombok.Setter; -import net.thenextlvl.protect.flag.CraftFlagProvider; +import net.thenextlvl.protect.flag.Flag; import org.bukkit.World; -import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.LinkedHashMap; +import java.util.Map; @Getter @Setter -public abstract class CraftArea extends CraftFlagProvider implements Area { +public abstract class CraftArea implements Area { + private Map, @Nullable Object> flags = new LinkedHashMap<>(); private final @NamePattern String name; private final World world; private int priority; @@ -18,9 +22,4 @@ protected CraftArea(@NamePattern String name, World world, int priority) { this.world = world; this.priority = priority; } - - @Override - public int compareTo(@NotNull Area area) { - return Integer.compare(getPriority(), area.getPriority()); - } } diff --git a/plugin/src/main/java/net/thenextlvl/protect/area/CraftAreaProvider.java b/plugin/src/main/java/net/thenextlvl/protect/area/CraftAreaProvider.java index 1284f5f..49fe06b 100644 --- a/plugin/src/main/java/net/thenextlvl/protect/area/CraftAreaProvider.java +++ b/plugin/src/main/java/net/thenextlvl/protect/area/CraftAreaProvider.java @@ -6,12 +6,9 @@ import core.file.FileIO; import lombok.RequiredArgsConstructor; import net.thenextlvl.protect.ProtectPlugin; -import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import java.util.*; +import java.util.Collection; import java.util.stream.Stream; @RequiredArgsConstructor @@ -28,50 +25,8 @@ public Stream getAreas() { .flatMap(Collection::stream); } - @Override - public Stream getAreas(World world) { - return getAreas().filter(area -> area.getWorld().equals(world)); - } - - @Override - public Stream getAreas(Location location) { - return getAreas(location.getWorld()).filter(area -> area.contains(location)); - } - - @Override - public Stream getAreas(Block block) { - return getAreas(block.getLocation()); - } - - @Override - public Stream getAreas(Entity entity) { - return getAreas(entity.getLocation()); - } - @Override public GlobalArea getArea(World world) { return CraftGlobalArea.of(world); } - - @Override - public Area getArea(Location location) { - return getAreas(location) - .max(Comparator.comparingInt(Area::getPriority)) - .orElseGet(() -> getArea(location.getWorld())); - } - - @Override - public Area getArea(Block block) { - return getArea(block.getLocation()); - } - - @Override - public Area getArea(Entity entity) { - return getArea(entity.getLocation()); - } - - @Override - public Optional getArea(String name) { - return getAreas().filter(area -> area.getName().equals(name)).findAny(); - } } diff --git a/plugin/src/main/java/net/thenextlvl/protect/area/CraftGlobalArea.java b/plugin/src/main/java/net/thenextlvl/protect/area/CraftGlobalArea.java index f1ba40b..d4dde1e 100644 --- a/plugin/src/main/java/net/thenextlvl/protect/area/CraftGlobalArea.java +++ b/plugin/src/main/java/net/thenextlvl/protect/area/CraftGlobalArea.java @@ -3,14 +3,9 @@ import core.annotation.FieldsAreNotNullByDefault; import core.annotation.MethodsReturnNotNullByDefault; import core.annotation.ParametersAreNotNullByDefault; -import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; import java.util.HashMap; -import java.util.List; import java.util.Map; @FieldsAreNotNullByDefault @@ -28,31 +23,6 @@ private CraftGlobalArea(World world) { this(world, -1); } - @Override - public boolean contains(Location location) { - return getWorld().equals(location.getWorld()); - } - - @Override - public boolean contains(Block block) { - return getWorld().equals(block.getWorld()); - } - - @Override - public boolean contains(Entity entity) { - return getWorld().equals(entity.getWorld()); - } - - @Override - public List getEntities() { - return getWorld().getEntities(); - } - - @Override - public List getPlayers() { - return getWorld().getPlayers(); - } - public static CraftGlobalArea of(World world, int priority) { return globalAreas.computeIfAbsent(world, w -> new CraftGlobalArea(w, priority)); } diff --git a/plugin/src/main/java/net/thenextlvl/protect/area/CraftRegionizedArea.java b/plugin/src/main/java/net/thenextlvl/protect/area/CraftRegionizedArea.java index 9a991b1..89dfe52 100644 --- a/plugin/src/main/java/net/thenextlvl/protect/area/CraftRegionizedArea.java +++ b/plugin/src/main/java/net/thenextlvl/protect/area/CraftRegionizedArea.java @@ -1,35 +1,15 @@ package net.thenextlvl.protect.area; -import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.WorldEditException; -import com.sk89q.worldedit.bukkit.BukkitWorld; -import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; -import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; -import com.sk89q.worldedit.function.operation.ForwardExtentCopy; -import com.sk89q.worldedit.function.operation.Operations; -import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; -import com.sk89q.worldedit.session.ClipboardHolder; import core.annotation.MethodsReturnNotNullByDefault; import core.annotation.ParametersAreNotNullByDefault; import core.annotation.TypesAreNotNullByDefault; import lombok.Getter; import net.thenextlvl.protect.ProtectPlugin; import net.thenextlvl.protect.event.AreaRedefineEvent; -import net.thenextlvl.protect.event.AreaSchematicDeleteEvent; -import net.thenextlvl.protect.event.AreaSchematicLoadEvent; -import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; @Getter @TypesAreNotNullByDefault @@ -47,85 +27,10 @@ protected CraftRegionizedArea(ProtectPlugin plugin, @NamePattern String name, Wo @Override @SuppressWarnings("unchecked") - public boolean redefine(T region) { + public boolean setRegion(T region) { var clone = (T) region.clone(); if (!new AreaRedefineEvent<>(this, clone).callEvent()) return false; this.region = clone; return true; } - - @Override - public boolean contains(Location location) { - if (!getWorld().equals(location.getWorld())) return false; - var position = BlockVector3.at(location.getX(), location.getY(), location.getZ()); - return getRegion().contains(position); - } - - @Override - public boolean contains(Block block) { - return contains(block.getLocation()); - } - - @Override - public boolean contains(Entity entity) { - return contains(entity.getLocation()); - } - - @Override - public List getEntities() { - return getWorld().getEntities().stream() - .filter(this::contains) - .toList(); - } - - @Override - public List getPlayers() { - return getWorld().getPlayers().stream() - .filter(this::contains) - .toList(); - } - - @Override - public boolean isTooBig() { - return getRegion().getVolume() >= 1_000_000_000; - } - - @Override - public boolean deleteSchematic() { - return getSchematic().exists() && (new AreaSchematicDeleteEvent<>(this).callEvent() && getSchematic().delete()); - } - - @Override - @SuppressWarnings("ResultOfMethodCallIgnored") - public void saveSchematic() throws IOException, WorldEditException { - var file = getSchematic().getAbsoluteFile(); - file.getParentFile().mkdirs(); - file.createNewFile(); - try (var editSession = WorldEdit.getInstance().newEditSession(new BukkitWorld(getWorld())); - var writer = BuiltInClipboardFormat.FAST.getWriter(new FileOutputStream(getSchematic()))) { - var clipboard = new BlockArrayClipboard(getRegion()); - var extent = new ForwardExtentCopy(editSession, getRegion(), clipboard, getRegion().getMinimumPoint()); - extent.setCopyingEntities(true); - extent.setCopyingBiomes(true); - Operations.complete(extent); - writer.write(clipboard); - } - } - - @Override - public boolean loadSchematic() throws IOException, WorldEditException { - if (!getSchematic().isFile()) return false; - var event = new AreaSchematicLoadEvent<>(CraftRegionizedArea.this); - if (!event.callEvent()) return false; - var world = new BukkitWorld(getWorld()); - try (EditSession editSession = WorldEdit.getInstance().newEditSession(world)) { - var clipboard = BuiltInClipboardFormat.FAST.getReader(new FileInputStream(getSchematic())).read(); - world.getEntities(getRegion()).forEach(com.sk89q.worldedit.entity.Entity::remove); - var operation = new ClipboardHolder(clipboard).createPaste(editSession).to(getRegion().getMinimumPoint()). - copyBiomes(true).copyEntities(true).ignoreAirBlocks(false).build(); - Operations.complete(operation); - event.getSuccessListeners().forEach(consumer -> consumer.accept(CraftRegionizedArea.this)); - return true; - } - } } diff --git a/plugin/src/main/java/net/thenextlvl/protect/command/AreaRedefineCommand.java b/plugin/src/main/java/net/thenextlvl/protect/command/AreaRedefineCommand.java index 791eaec..9f712ab 100644 --- a/plugin/src/main/java/net/thenextlvl/protect/command/AreaRedefineCommand.java +++ b/plugin/src/main/java/net/thenextlvl/protect/command/AreaRedefineCommand.java @@ -51,7 +51,7 @@ else if (regionizedArea.getSchematic().isFile()) var worldEdit = JavaPlugin.getPlugin(WorldEditPlugin.class); var region = worldEdit.getSession(player).getSelection(); if (region instanceof CuboidRegion cuboidRegion && regionizedArea instanceof CuboidArea cuboidArea) { - redefine = cuboidArea.redefine(cuboidRegion); + redefine = cuboidArea.setRegion(cuboidRegion); } plugin.bundle().sendMessage(player, redefine ? "area.redefine.success" : "area.redefine.fail", Placeholder.parsed("area", area.getName())); diff --git a/plugin/src/main/java/net/thenextlvl/protect/flag/CraftFlagProvider.java b/plugin/src/main/java/net/thenextlvl/protect/flag/CraftFlagProvider.java deleted file mode 100644 index 0d6f4a6..0000000 --- a/plugin/src/main/java/net/thenextlvl/protect/flag/CraftFlagProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.thenextlvl.protect.flag; - -import lombok.Getter; -import lombok.Setter; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.LinkedHashMap; -import java.util.Map; - -@Getter -@Setter -public class CraftFlagProvider implements FlagProvider { - private Map, @Nullable Object> flags = new LinkedHashMap<>(); - - @Override - public void setFlag(@NotNull Flag flag, T state) { - getFlags().put(flag, state); - } - - @Override - @SuppressWarnings("unchecked") - public T getFlag(@NotNull Flag flag) { - return (T) getFlags().getOrDefault(flag, flag.defaultValue()); - } - - @Override - public boolean hasFlag(@NotNull Flag flag) { - return getFlags().containsKey(flag); - } - - @Override - public boolean removeFlag(@NotNull Flag flag) { - return getFlags().remove(flag) != null; - } -}