mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 23:26:45 +01:00
Port PlaceFlag
This commit is contained in:
parent
3bccedd95f
commit
55cfb7600d
@ -31,6 +31,7 @@ import com.github.intellectualsites.plotsquared.plot.flags.implementations.MiscB
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MiscInteractFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MobPlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MycelGrowFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PlayerInteractFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PveFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PvpFlag;
|
||||
@ -2919,7 +2920,7 @@ import java.util.regex.Pattern;
|
||||
return;
|
||||
}
|
||||
} else if (!plot.isAdded(pp.getUUID())) {
|
||||
Set<BlockType> place = plot.getFlag(Flags.PLACE, null);
|
||||
List<BlockType> place = plot.getFlag(PlaceFlag.class);
|
||||
if (place != null) {
|
||||
Block block = event.getBlock();
|
||||
if (place.contains(BukkitAdapter.asBlockType(block.getType()))) {
|
||||
|
@ -609,6 +609,7 @@ public enum Captions implements Caption {
|
||||
FLAG_DESCRIPTION_NOTIFY_ENTER("Set to `true` to notify the plot owners when someone enters the plot.", "Flags"),
|
||||
FLAG_DESCRIPTION_NOTIFY_LEAVE("Set to `true` to notify the plot owners when someone leaves the plot.", "Flags"),
|
||||
FLAG_DESCRIPTION_NO_WORLDEDIT("Set to `true` to disable WorldEdit usage within the plot.", "Flags"),
|
||||
FLAG_DESCRIPTION_PLACE("Define a list of materials players should be able to place in the plot.", "Flags"),
|
||||
FLAG_DESCRIPTION_PLAYER_INTERACT("Set to `true` to allow guests to interact with players in the plot.", "Flags"),
|
||||
FLAG_DESCRIPTION_PRICE("Set a price for a plot. Must be a positive decimal number.", "Flags"),
|
||||
FLAG_DESCRIPTION_PVE("Set to `true` to enable PVE inside the plot.", "Flags"),
|
||||
|
@ -48,6 +48,7 @@ import com.github.intellectualsites.plotsquared.plot.flags.implementations.Mycel
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.NoWorldeditFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.NotifyEnterFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.NotifyLeaveFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PlayerInteractFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PlotWeatherFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PriceFlag;
|
||||
@ -161,6 +162,7 @@ public final class GlobalFlagContainer extends FlagContainer {
|
||||
|
||||
// Block type list flags
|
||||
this.addFlag(BreakFlag.BREAK_NONE);
|
||||
this.addFlag(PlaceFlag.PLACE_NONE);
|
||||
|
||||
|
||||
// Misc
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.github.intellectualsites.plotsquared.plot.flags.implementations;
|
||||
|
||||
import com.github.intellectualsites.plotsquared.plot.config.Captions;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.types.BlockTypeListFlag;
|
||||
import com.sk89q.worldedit.world.block.BlockType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlaceFlag extends BlockTypeListFlag<PlaceFlag> {
|
||||
public static final PlaceFlag PLACE_NONE = new PlaceFlag(Collections.emptyList());
|
||||
|
||||
protected PlaceFlag(List<BlockType> blockTypeList) {
|
||||
super(blockTypeList, Captions.FLAG_DESCRIPTION_PLACE);
|
||||
}
|
||||
|
||||
@Override protected PlaceFlag flagOf(@NotNull List<BlockType> value) {
|
||||
return new PlaceFlag(value);
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ import com.github.intellectualsites.plotsquared.plot.flag.Flags;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.DeviceInteractFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MiscPlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.MobPlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.PlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.flags.implementations.VehiclePlaceFlag;
|
||||
import com.github.intellectualsites.plotsquared.plot.listener.PlayerBlockEventType;
|
||||
import com.github.intellectualsites.plotsquared.plot.object.Location;
|
||||
@ -183,13 +184,10 @@ public abstract class EventUtil {
|
||||
if (plot.getFlag(MobPlaceFlag.class)) {
|
||||
return true;
|
||||
}
|
||||
Optional<Set<BlockType>> flagValue = plot.getFlag(Flags.PLACE);
|
||||
Set<BlockType> value = flagValue.orElse(null);
|
||||
if (value == null || !value.contains(BlockTypes.AIR) && !value
|
||||
.contains(blockType)) {
|
||||
if (Permissions.hasPermission(player,
|
||||
Captions.PERMISSION_ADMIN_INTERACT_OTHER.getTranslated(),
|
||||
false)) {
|
||||
List<BlockType> place = plot.getFlag(PlaceFlag.class);
|
||||
if (!place.contains(BlockTypes.AIR) && !place.contains(blockType)) {
|
||||
if (Permissions
|
||||
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.getTranslated(), false)) {
|
||||
return true;
|
||||
}
|
||||
return !(!notifyPerms || MainUtil
|
||||
@ -213,13 +211,10 @@ public abstract class EventUtil {
|
||||
if (plot.getFlag(MiscPlaceFlag.class)) {
|
||||
return true;
|
||||
}
|
||||
Optional<Set<BlockType>> flag = plot.getFlag(Flags.PLACE);
|
||||
Set<BlockType> value = flag.orElse(null);
|
||||
if (value == null || !value.contains(BlockTypes.AIR) && !value
|
||||
.contains(blockType)) {
|
||||
if (Permissions.hasPermission(player,
|
||||
Captions.PERMISSION_ADMIN_INTERACT_OTHER.getTranslated(),
|
||||
false)) {
|
||||
List<BlockType> place = plot.getFlag(PlaceFlag.class);
|
||||
if (!place.contains(BlockTypes.AIR) && !place.contains(blockType)) {
|
||||
if (Permissions
|
||||
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.getTranslated(), false)) {
|
||||
return true;
|
||||
}
|
||||
return !(!notifyPerms || MainUtil
|
||||
|
Loading…
Reference in New Issue
Block a user