Search in sources :

Example 16 with Actor

use of com.sk89q.worldedit.extension.platform.Actor in project FastAsyncWorldEdit by IntellectualSites.

the class BiomeCommands method biomeInfo.

@Command(name = "biomeinfo", desc = "Get the biome of the targeted block.", descFooter = "By default, uses all blocks in your selection.")
@CommandPermissions("worldedit.biome.info")
public void biomeInfo(Actor actor, World world, LocalSession session, @Switch(name = 't', desc = "Use the block you are looking at.") boolean useLineOfSight, @Switch(name = 'p', desc = "Use the block you are currently in.") boolean usePosition) throws WorldEditException {
    BiomeRegistry biomeRegistry = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries().getBiomeRegistry();
    Set<BiomeType> biomes = new HashSet<>();
    String messageKey;
    if (useLineOfSight) {
        if (actor instanceof Player) {
            Location blockPosition = ((Player) actor).getBlockTrace(300);
            if (blockPosition == null) {
                actor.print(Caption.of("worldedit.raytrace.noblock"));
                return;
            }
            BiomeType biome = world.getBiome(blockPosition.toVector().toBlockPoint());
            biomes.add(biome);
            messageKey = "worldedit.biomeinfo.lineofsight";
        } else {
            actor.print(Caption.of("worldedit.raytrace.require-player"));
            return;
        }
    } else if (usePosition) {
        if (actor instanceof Locatable) {
            BiomeType biome = world.getBiome(((Locatable) actor).getLocation().toVector().toBlockPoint());
            biomes.add(biome);
            messageKey = "worldedit.biomeinfo.position";
        } else {
            actor.print(Caption.of("worldedit.biomeinfo.not-locatable"));
            return;
        }
    } else {
        Region region = session.getSelection(world);
        for (BlockVector3 pt : region) {
            biomes.add(world.getBiome(pt));
        }
        messageKey = "worldedit.biomeinfo.selection";
    }
    List<Component> components = biomes.stream().map(biome -> biomeRegistry.getRichName(biome).hoverEvent(HoverEvent.showText(TextComponent.of(biome.getId())))).collect(Collectors.toList());
    actor.print(Caption.of(messageKey, TextUtils.join(components, TextComponent.of(", "))));
}
Also used : EditSession(com.sk89q.worldedit.EditSession) WorldEditAsyncCommandBuilder(com.sk89q.worldedit.command.util.WorldEditAsyncCommandBuilder) RegionFunction(com.sk89q.worldedit.function.RegionFunction) BlockVector3(com.sk89q.worldedit.math.BlockVector3) Player(com.sk89q.worldedit.entity.Player) CuboidRegion(com.sk89q.worldedit.regions.CuboidRegion) World(com.sk89q.worldedit.world.World) Switch(org.enginehub.piston.annotation.param.Switch) Caption(com.fastasyncworldedit.core.configuration.Caption) Logging(com.sk89q.worldedit.command.util.Logging) RegionMaskingFilter(com.sk89q.worldedit.function.RegionMaskingFilter) Arg(org.enginehub.piston.annotation.param.Arg) HoverEvent(com.sk89q.worldedit.util.formatting.text.event.HoverEvent) Component(com.sk89q.worldedit.util.formatting.text.Component) HashSet(java.util.HashSet) Preload(com.sk89q.worldedit.command.util.annotation.Preload) WorldEditException(com.sk89q.worldedit.WorldEditException) CommandContainer(org.enginehub.piston.annotation.CommandContainer) TextUtils(com.sk89q.worldedit.util.formatting.component.TextUtils) Operations(com.sk89q.worldedit.function.operation.Operations) Location(com.sk89q.worldedit.util.Location) WorldEdit(com.sk89q.worldedit.WorldEdit) Region(com.sk89q.worldedit.regions.Region) BiomeRegistry(com.sk89q.worldedit.world.registry.BiomeRegistry) CommandPermissions(com.sk89q.worldedit.command.util.CommandPermissions) Locatable(com.sk89q.worldedit.extension.platform.Locatable) TextComponent(com.sk89q.worldedit.util.formatting.text.TextComponent) Set(java.util.Set) REGION(com.sk89q.worldedit.command.util.Logging.LogMode.REGION) RegionVisitor(com.sk89q.worldedit.function.visitor.RegionVisitor) Confirm(com.sk89q.worldedit.command.util.annotation.Confirm) Collectors(java.util.stream.Collectors) ArgFlag(org.enginehub.piston.annotation.param.ArgFlag) Actor(com.sk89q.worldedit.extension.platform.Actor) List(java.util.List) Command(org.enginehub.piston.annotation.Command) CommandPermissionsConditionGenerator(com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator) Capability(com.sk89q.worldedit.extension.platform.Capability) PaginationBox(com.sk89q.worldedit.util.formatting.component.PaginationBox) LocalSession(com.sk89q.worldedit.LocalSession) Mask(com.sk89q.worldedit.function.mask.Mask) BiomeReplace(com.sk89q.worldedit.function.biome.BiomeReplace) BiomeType(com.sk89q.worldedit.world.biome.BiomeType) Player(com.sk89q.worldedit.entity.Player) BlockVector3(com.sk89q.worldedit.math.BlockVector3) BiomeType(com.sk89q.worldedit.world.biome.BiomeType) BiomeRegistry(com.sk89q.worldedit.world.registry.BiomeRegistry) CuboidRegion(com.sk89q.worldedit.regions.CuboidRegion) Region(com.sk89q.worldedit.regions.Region) Component(com.sk89q.worldedit.util.formatting.text.Component) TextComponent(com.sk89q.worldedit.util.formatting.text.TextComponent) HashSet(java.util.HashSet) Location(com.sk89q.worldedit.util.Location) Locatable(com.sk89q.worldedit.extension.platform.Locatable) Command(org.enginehub.piston.annotation.Command) CommandPermissions(com.sk89q.worldedit.command.util.CommandPermissions)

Example 17 with Actor

use of com.sk89q.worldedit.extension.platform.Actor in project FastAsyncWorldEdit by IntellectualSites.

the class EditSession method dumpTracingInformation.

private void dumpTracingInformation() {
    if (this.tracingExtents == null) {
        return;
    }
    List<TracingExtent> tracingExtents = getActiveTracingExtents();
    assert actor != null;
    if (tracingExtents.isEmpty()) {
        actor.print(TextComponent.of("worldedit.trace.no-tracing-extents"));
        return;
    }
    // find the common stacks
    Set<List<TracingExtent>> stacks = new LinkedHashSet<>();
    Map<List<TracingExtent>, BlockVector3> stackToPosition = new HashMap<>();
    Set<BlockVector3> touchedLocations = Collections.newSetFromMap(BlockMap.create());
    for (TracingExtent tracingExtent : tracingExtents) {
        touchedLocations.addAll(tracingExtent.getTouchedLocations());
    }
    for (BlockVector3 loc : touchedLocations) {
        List<TracingExtent> stack = tracingExtents.stream().filter(it -> it.getTouchedLocations().contains(loc)).collect(Collectors.toList());
        boolean anyFailed = stack.stream().anyMatch(it -> it.getFailedActions().containsKey(loc));
        if (anyFailed && stacks.add(stack)) {
            stackToPosition.put(stack, loc);
        }
    }
    stackToPosition.forEach((stack, position) -> {
        // stack can never be empty, something has to have touched the position
        TracingExtent failure = stack.get(0);
        actor.printDebug(Caption.of("worldedit.trace.action-failed", failure.getFailedActions().get(position).toString(), position.toString(), failure.getExtent().getClass().getName()));
    });
}
Also used : TracingExtent(com.sk89q.worldedit.extent.TracingExtent) LinkedHashSet(java.util.LinkedHashSet) WorldEditExpressionEnvironment(com.sk89q.worldedit.regions.shape.WorldEditExpressionEnvironment) RecursiveVisitor(com.sk89q.worldedit.function.visitor.RecursiveVisitor) NoiseFilter2D(com.sk89q.worldedit.function.mask.NoiseFilter2D) CuboidRegion(com.sk89q.worldedit.regions.CuboidRegion) ForestGenerator(com.sk89q.worldedit.function.generator.ForestGenerator) Regions.maximumBlockY(com.sk89q.worldedit.regions.Regions.maximumBlockY) Fawe(com.fastasyncworldedit.core.Fawe) BlockReplace(com.sk89q.worldedit.function.block.BlockReplace) Caption(com.fastasyncworldedit.core.configuration.Caption) AffineTransform(com.sk89q.worldedit.math.transform.AffineTransform) DownwardVisitor(com.sk89q.worldedit.function.visitor.DownwardVisitor) BlockBagExtent(com.sk89q.worldedit.extent.inventory.BlockBagExtent) ArbitraryBiomeShape(com.sk89q.worldedit.regions.shape.ArbitraryBiomeShape) PassthroughExtent(com.fastasyncworldedit.core.extent.PassthroughExtent) Map(java.util.Map) KochanekBartelsInterpolation(com.sk89q.worldedit.math.interpolation.KochanekBartelsInterpolation) MaskIntersection(com.sk89q.worldedit.function.mask.MaskIntersection) FaweRegionExtent(com.fastasyncworldedit.core.extent.FaweRegionExtent) Operations(com.sk89q.worldedit.function.operation.Operations) Location(com.sk89q.worldedit.util.Location) MutableBlockVector2(com.fastasyncworldedit.core.math.MutableBlockVector2) MutableBlockVector3(com.fastasyncworldedit.core.math.MutableBlockVector3) BlockStateHolder(com.sk89q.worldedit.world.block.BlockStateHolder) OreGen(com.fastasyncworldedit.core.function.generator.OreGen) MathUtils(com.sk89q.worldedit.math.MathUtils) RandomNoise(com.sk89q.worldedit.math.noise.RandomNoise) Entity(com.sk89q.worldedit.entity.Entity) BlockTypeMask(com.sk89q.worldedit.function.mask.BlockTypeMask) ExpressionException(com.sk89q.worldedit.internal.expression.ExpressionException) Set(java.util.Set) NullRelighter(com.fastasyncworldedit.core.extent.processor.lighting.NullRelighter) EvaluationException(com.sk89q.worldedit.internal.expression.EvaluationException) BlockBag(com.sk89q.worldedit.extent.inventory.BlockBag) BlockMaskBuilder(com.fastasyncworldedit.core.function.mask.BlockMaskBuilder) Logger(org.apache.logging.log4j.Logger) GardenPatchGenerator(com.sk89q.worldedit.function.generator.GardenPatchGenerator) UndoContext(com.sk89q.worldedit.history.UndoContext) MutableVector3(com.fastasyncworldedit.core.math.MutableVector3) BaseBlock(com.sk89q.worldedit.world.block.BaseBlock) Extent(com.sk89q.worldedit.extent.Extent) BiomeType(com.sk89q.worldedit.world.biome.BiomeType) ClipboardHolder(com.sk89q.worldedit.session.ClipboardHolder) LayerVisitor(com.sk89q.worldedit.function.visitor.LayerVisitor) WaterloggedRemover(com.sk89q.worldedit.function.pattern.WaterloggedRemover) ArrayList(java.util.ArrayList) ThreadLocalRandom(java.util.concurrent.ThreadLocalRandom) RunnableVal(com.fastasyncworldedit.core.util.task.RunnableVal) CylinderRegion(com.sk89q.worldedit.regions.CylinderRegion) Nullable(javax.annotation.Nullable) LinkedHashSet(java.util.LinkedHashSet) Expression(com.sk89q.worldedit.internal.expression.Expression) BlockBagChangeSet(com.fastasyncworldedit.core.history.changeset.BlockBagChangeSet) IOException(java.io.IOException) RegionVisitor(com.sk89q.worldedit.function.visitor.RegionVisitor) Actor(com.sk89q.worldedit.extension.platform.Actor) EllipsoidRegion(com.sk89q.worldedit.regions.EllipsoidRegion) TaskManager(com.fastasyncworldedit.core.util.TaskManager) Relighter(com.fastasyncworldedit.core.extent.processor.lighting.Relighter) RegionShape(com.sk89q.worldedit.regions.shape.RegionShape) ExpressionTimeoutException(com.sk89q.worldedit.internal.expression.ExpressionTimeoutException) BlockState(com.sk89q.worldedit.world.block.BlockState) SideEffectSet(com.sk89q.worldedit.util.SideEffectSet) WorldCopyClipboard(com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard) Preloader(com.fastasyncworldedit.core.queue.implementation.preloader.Preloader) Pattern(com.sk89q.worldedit.function.pattern.Pattern) SourceMaskExtent(com.fastasyncworldedit.core.extent.SourceMaskExtent) DirectionalVisitor(com.fastasyncworldedit.core.function.visitor.DirectionalVisitor) BlockVector2(com.sk89q.worldedit.math.BlockVector2) BlockTypes(com.sk89q.worldedit.world.block.BlockTypes) BlockVector3(com.sk89q.worldedit.math.BlockVector3) SimplexNoise(com.fastasyncworldedit.core.math.random.SimplexNoise) Player(com.sk89q.worldedit.entity.Player) World(com.sk89q.worldedit.world.World) FlatRegion(com.sk89q.worldedit.regions.FlatRegion) SurfaceRegionFunction(com.fastasyncworldedit.core.function.SurfaceRegionFunction) WatchdogTickingExtent(com.sk89q.worldedit.extent.world.WatchdogTickingExtent) MaskTraverser(com.fastasyncworldedit.core.util.MaskTraverser) ChangeSetExecutor(com.sk89q.worldedit.function.operation.ChangeSetExecutor) Interpolation(com.sk89q.worldedit.math.interpolation.Interpolation) FlatRegionVisitor(com.sk89q.worldedit.function.visitor.FlatRegionVisitor) LocalBlockVectorSet(com.fastasyncworldedit.core.math.LocalBlockVectorSet) AbstractDelegateExtent(com.sk89q.worldedit.extent.AbstractDelegateExtent) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) SingleBlockTypeMask(com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask) ForwardExtentCopy(com.sk89q.worldedit.function.operation.ForwardExtentCopy) TreeGenerator(com.sk89q.worldedit.util.TreeGenerator) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) GroundFunction(com.sk89q.worldedit.function.GroundFunction) SnowSimulator(com.sk89q.worldedit.function.block.SnowSimulator) RegionMask(com.sk89q.worldedit.function.mask.RegionMask) SurvivalModeExtent(com.sk89q.worldedit.extent.world.SurvivalModeExtent) SnowSimulator.snowy(com.sk89q.worldedit.function.block.SnowSimulator.snowy) RegionIntersection(com.sk89q.worldedit.regions.RegionIntersection) Clipboard(com.sk89q.worldedit.extent.clipboard.Clipboard) RegionOffset(com.sk89q.worldedit.function.util.RegionOffset) LogManagerCompat(com.sk89q.worldedit.internal.util.LogManagerCompat) BlockType(com.sk89q.worldedit.world.block.BlockType) ExistingPattern(com.fastasyncworldedit.core.function.pattern.ExistingPattern) Collection(java.util.Collection) UUID(java.util.UUID) Settings(com.fastasyncworldedit.core.configuration.Settings) Variable(com.sk89q.worldedit.internal.expression.LocalSlot.Variable) Collectors(java.util.stream.Collectors) MathMan(com.fastasyncworldedit.core.util.MathMan) List(java.util.List) FaweCache(com.fastasyncworldedit.core.FaweCache) LegacyMapper(com.sk89q.worldedit.world.registry.LegacyMapper) BlockStateMask(com.sk89q.worldedit.function.mask.BlockStateMask) Countable(com.sk89q.worldedit.util.Countable) MaskingExtent(com.sk89q.worldedit.extent.MaskingExtent) WallMakeMask(com.fastasyncworldedit.core.function.mask.WallMakeMask) ChangeSet(com.sk89q.worldedit.history.changeset.ChangeSet) HashMap(java.util.HashMap) BlockMap(com.sk89q.worldedit.util.collection.BlockMap) ResettableExtent(com.fastasyncworldedit.core.extent.ResettableExtent) Naturalizer(com.sk89q.worldedit.function.block.Naturalizer) HashSet(java.util.HashSet) Regions(com.sk89q.worldedit.regions.Regions) SchemGen(com.fastasyncworldedit.core.function.generator.SchemGen) ProcessedWEExtent(com.fastasyncworldedit.core.extent.ProcessedWEExtent) Vector2(com.sk89q.worldedit.math.Vector2) Vector3(com.sk89q.worldedit.math.Vector3) NullRegion(com.sk89q.worldedit.regions.NullRegion) Direction(com.sk89q.worldedit.util.Direction) ChangeSetExtent(com.sk89q.worldedit.extent.ChangeSetExtent) Masks(com.sk89q.worldedit.function.mask.Masks) BaseEntity(com.sk89q.worldedit.entity.BaseEntity) Region(com.sk89q.worldedit.regions.Region) NonRisingVisitor(com.sk89q.worldedit.function.visitor.NonRisingVisitor) ExistingBlockMask(com.sk89q.worldedit.function.mask.ExistingBlockMask) Iterator(java.util.Iterator) TextComponent(com.sk89q.worldedit.util.formatting.text.TextComponent) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) Regions.minimumBlockY(com.sk89q.worldedit.regions.Regions.minimumBlockY) BoundedHeightMask(com.sk89q.worldedit.function.mask.BoundedHeightMask) FaweLimit(com.fastasyncworldedit.core.limit.FaweLimit) TracingExtent(com.sk89q.worldedit.extent.TracingExtent) Regions.asFlatRegion(com.sk89q.worldedit.regions.Regions.asFlatRegion) Node(com.sk89q.worldedit.math.interpolation.Node) GenBase(com.fastasyncworldedit.core.function.generator.GenBase) ExtentTraverser(com.fastasyncworldedit.core.util.ExtentTraverser) MaskUnion(com.fastasyncworldedit.core.function.mask.MaskUnion) ResettableMask(com.fastasyncworldedit.core.function.mask.ResettableMask) SingleRegionExtent(com.fastasyncworldedit.core.extent.SingleRegionExtent) AbstractChangeSet(com.fastasyncworldedit.core.history.changeset.AbstractChangeSet) Capability(com.sk89q.worldedit.extension.platform.Capability) ArbitraryShape(com.sk89q.worldedit.regions.shape.ArbitraryShape) Mask(com.sk89q.worldedit.function.mask.Mask) Collections(java.util.Collections) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) List(java.util.List) MutableBlockVector3(com.fastasyncworldedit.core.math.MutableBlockVector3) BlockVector3(com.sk89q.worldedit.math.BlockVector3)

Example 18 with Actor

use of com.sk89q.worldedit.extension.platform.Actor in project FastAsyncWorldEdit by IntellectualSites.

the class DefaultBlockParser method validate.

// FAWE Start
private <T extends BlockStateHolder> T validate(ParserContext context, T holder) {
    if (context.isRestricted()) {
        Actor actor = context.requireActor();
        if (!actor.hasPermission("worldedit.anyblock") && worldEdit.getConfiguration().checkDisallowedBlocks(holder)) {
            throw new DisallowedUsageException(Caption.of("worldedit.error.disallowed-block", TextComponent.of(String.valueOf(holder))));
        }
        CompoundTag nbt = holder.getNbtData();
        if (nbt != null) {
            if (!actor.hasPermission("worldedit.anyblock.nbt")) {
                throw new DisallowedUsageException(Caption.of("fawe.error.nbt.forbidden", TextComponent.of("worldedit.anyblock.nbt")));
            }
        }
    }
    return holder;
}
Also used : DisallowedUsageException(com.sk89q.worldedit.extension.input.DisallowedUsageException) Actor(com.sk89q.worldedit.extension.platform.Actor) CompoundTag(com.sk89q.jnbt.CompoundTag)

Example 19 with Actor

use of com.sk89q.worldedit.extension.platform.Actor in project FastAsyncWorldEdit by IntellectualSites.

the class PrintCommandHelp method printCommands.

private static void printCommands(int page, Stream<Command> commandStream, Actor actor, List<Command> commandList, String helpRootCommand) throws InvalidComponentException {
    InjectedValueStore store = MapBackedValueStore.create();
    store.injectValue(Key.of(Actor.class), context -> Optional.of(actor));
    // Get a list of aliases
    List<Command> commands = commandStream.filter(command -> command.getCondition().satisfied(store)).sorted(byCleanName()).collect(toList());
    String used = commandList.isEmpty() ? null : toCommandString(commandList);
    CommandListBox box = new CommandListBox((used == null ? "Help" : "Subcommands: " + used), helpRootCommand + " -s -p %page%" + (used == null ? "" : " " + used), helpRootCommand);
    if (!actor.isPlayer()) {
        box.formatForConsole();
    }
    for (Command mapping : commands) {
        String alias = (commandList.isEmpty() ? "/" : "") + mapping.getName();
        String command = Stream.concat(commandList.stream(), Stream.of(mapping)).map(Command::getName).collect(Collectors.joining(" ", "/", ""));
        box.appendCommand(alias, mapping.getDescription(), command);
    }
    actor.print(box.create(page));
}
Also used : InjectedValueStore(org.enginehub.piston.inject.InjectedValueStore) CommandListBox(com.sk89q.worldedit.util.formatting.component.CommandListBox) Command(org.enginehub.piston.Command) Actor(com.sk89q.worldedit.extension.platform.Actor)

Example 20 with Actor

use of com.sk89q.worldedit.extension.platform.Actor in project FastAsyncWorldEdit by IntellectualSites.

the class FactoryConverter method convert.

@Override
public ConversionResult<T> convert(String argument, InjectedValueAccess context) {
    Actor actor = context.injectedValue(Key.of(Actor.class)).orElseThrow(() -> new IllegalStateException("No actor"));
    LocalSession session = WorldEdit.getInstance().getSessionManager().get(actor);
    ParserContext parserContext = new ParserContext();
    parserContext.setActor(actor);
    if (actor instanceof Locatable) {
        Extent extent = ((Locatable) actor).getExtent();
        if (extent instanceof World) {
            parserContext.setWorld((World) extent);
        }
        parserContext.setExtent(new SupplyingExtent(((Locatable) actor)::getExtent));
    } else if (session.hasWorldOverride()) {
        parserContext.setWorld(session.getWorldOverride());
        parserContext.setExtent(new SupplyingExtent(session::getWorldOverride));
    }
    parserContext.setSession(session);
    parserContext.setRestricted(true);
    parserContext.setInjected(context);
    if (contextTweaker != null) {
        contextTweaker.accept(parserContext);
    }
    try {
        return SuccessfulConversion.fromSingle(factoryExtractor.apply(worldEdit).parseFromInput(argument, parserContext));
    } catch (InputParseException e) {
        return FailedConversion.from(e);
    }
}
Also used : InputParseException(com.sk89q.worldedit.extension.input.InputParseException) ResettableExtent(com.fastasyncworldedit.core.extent.ResettableExtent) SupplyingExtent(com.fastasyncworldedit.core.extent.SupplyingExtent) Extent(com.sk89q.worldedit.extent.Extent) BlockTransformExtent(com.sk89q.worldedit.extent.transform.BlockTransformExtent) Actor(com.sk89q.worldedit.extension.platform.Actor) LocalSession(com.sk89q.worldedit.LocalSession) ParserContext(com.sk89q.worldedit.extension.input.ParserContext) World(com.sk89q.worldedit.world.World) SupplyingExtent(com.fastasyncworldedit.core.extent.SupplyingExtent) Locatable(com.sk89q.worldedit.extension.platform.Locatable)

Aggregations

Actor (com.sk89q.worldedit.extension.platform.Actor)25 World (com.sk89q.worldedit.world.World)10 List (java.util.List)8 Player (com.sk89q.worldedit.entity.Player)6 BlockVector3 (com.sk89q.worldedit.math.BlockVector3)6 Subscribe (com.sk89q.worldedit.util.eventbus.Subscribe)6 ArrayList (java.util.ArrayList)6 WorldEdit (com.sk89q.worldedit.WorldEdit)5 Location (com.sk89q.worldedit.util.Location)5 TextComponent (com.sk89q.worldedit.util.formatting.text.TextComponent)5 Collectors (java.util.stream.Collectors)5 Caption (com.fastasyncworldedit.core.configuration.Caption)4 LocalSession (com.sk89q.worldedit.LocalSession)4 InputParseException (com.sk89q.worldedit.extension.input.InputParseException)4 Capability (com.sk89q.worldedit.extension.platform.Capability)4 Locatable (com.sk89q.worldedit.extension.platform.Locatable)4 Mask (com.sk89q.worldedit.function.mask.Mask)4 ResettableExtent (com.fastasyncworldedit.core.extent.ResettableExtent)3 NoMatchException (com.sk89q.worldedit.extension.input.NoMatchException)3 Region (com.sk89q.worldedit.regions.Region)3