geforkt von Mirrors/FastAsyncWorldEdit
Unmerge wall/"besides / |" masks
Dieser Commit ist enthalten in:
Ursprung
95ecb5609d
Commit
7a9549b75a
@ -0,0 +1,47 @@
|
|||||||
|
package com.fastasyncworldedit.core.extension.factory.parser.mask;
|
||||||
|
|
||||||
|
import com.fastasyncworldedit.core.extension.factory.parser.RichParser;
|
||||||
|
import com.fastasyncworldedit.core.function.mask.WallMask;
|
||||||
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
|
import com.sk89q.worldedit.command.util.SuggestionHelper;
|
||||||
|
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||||
|
import com.sk89q.worldedit.extension.input.ParserContext;
|
||||||
|
import com.sk89q.worldedit.function.mask.Mask;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
public class BesideMaskParser extends RichParser<Mask> {
|
||||||
|
|
||||||
|
public BesideMaskParser(WorldEdit worldEdit) {
|
||||||
|
super(worldEdit, "#beside", "|");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Stream<String> getSuggestions(final String argumentInput, final int index) {
|
||||||
|
if (index == 0) {
|
||||||
|
return worldEdit.getMaskFactory().getSuggestions(argumentInput).stream();
|
||||||
|
} else if (index == 1 || index == 2) {
|
||||||
|
return SuggestionHelper.suggestPositiveDoubles(argumentInput);
|
||||||
|
}
|
||||||
|
return Stream.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Mask parseFromInput(@Nonnull final String[] arguments, final ParserContext context) throws InputParseException {
|
||||||
|
if (arguments.length > 3 || arguments.length == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Mask subMask = worldEdit.getMaskFactory().parseFromInput(arguments[0], context);
|
||||||
|
int min = arguments.length > 1 ? Integer.parseInt(arguments[1]) : -1;
|
||||||
|
int max = arguments.length > 2 ? Integer.parseInt(arguments[2]) : -1;
|
||||||
|
if (min == -1 && max == -1) {
|
||||||
|
min = 1;
|
||||||
|
max = 8;
|
||||||
|
} else if (max == -1) {
|
||||||
|
max = min;
|
||||||
|
}
|
||||||
|
return new WallMask(subMask, min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,47 +1,38 @@
|
|||||||
package com.fastasyncworldedit.core.extension.factory.parser.mask;
|
package com.fastasyncworldedit.core.extension.factory.parser.mask;
|
||||||
|
|
||||||
import com.fastasyncworldedit.core.extension.factory.parser.RichParser;
|
|
||||||
import com.fastasyncworldedit.core.function.mask.WallMask;
|
import com.fastasyncworldedit.core.function.mask.WallMask;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.sk89q.worldedit.WorldEdit;
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
import com.sk89q.worldedit.command.util.SuggestionHelper;
|
|
||||||
import com.sk89q.worldedit.extension.input.InputParseException;
|
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||||
import com.sk89q.worldedit.extension.input.ParserContext;
|
import com.sk89q.worldedit.extension.input.ParserContext;
|
||||||
|
import com.sk89q.worldedit.function.mask.BlockMask;
|
||||||
|
import com.sk89q.worldedit.function.mask.ExistingBlockMask;
|
||||||
import com.sk89q.worldedit.function.mask.Mask;
|
import com.sk89q.worldedit.function.mask.Mask;
|
||||||
|
import com.sk89q.worldedit.function.mask.MaskIntersection;
|
||||||
|
import com.sk89q.worldedit.internal.registry.SimpleInputParser;
|
||||||
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import java.util.List;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
public class WallMaskParser extends RichParser<Mask> {
|
public class WallMaskParser extends SimpleInputParser<Mask> {
|
||||||
|
|
||||||
|
private static final List<String> aliases = ImmutableList.of("#wall");
|
||||||
|
|
||||||
public WallMaskParser(WorldEdit worldEdit) {
|
public WallMaskParser(WorldEdit worldEdit) {
|
||||||
super(worldEdit, "#wall", "|");
|
super(worldEdit);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Stream<String> getSuggestions(final String argumentInput, final int index) {
|
public List<String> getMatchedAliases() {
|
||||||
if (index == 0) {
|
return aliases;
|
||||||
return worldEdit.getMaskFactory().getSuggestions(argumentInput).stream();
|
|
||||||
} else if (index == 1 || index == 2) {
|
|
||||||
return SuggestionHelper.suggestPositiveDoubles(argumentInput);
|
|
||||||
}
|
|
||||||
return Stream.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Mask parseFromInput(@Nonnull final String[] arguments, final ParserContext context) throws InputParseException {
|
public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException {
|
||||||
if (arguments.length > 3 || arguments.length == 0) {
|
return new MaskIntersection(
|
||||||
return null;
|
new ExistingBlockMask(context.getExtent()),
|
||||||
}
|
new WallMask(new BlockMask(context.getExtent(), BlockTypes.AIR.getDefaultState().toBaseBlock()), 1, 8)
|
||||||
Mask subMask = worldEdit.getMaskFactory().parseFromInput(arguments[0], context);
|
);
|
||||||
int min = arguments.length > 1 ? Integer.parseInt(arguments[1]) : -1;
|
|
||||||
int max = arguments.length > 2 ? Integer.parseInt(arguments[2]) : -1;
|
|
||||||
if (min == -1 && max == -1) {
|
|
||||||
min = 1;
|
|
||||||
max = 8;
|
|
||||||
} else if (max == -1) {
|
|
||||||
max = min;
|
|
||||||
}
|
|
||||||
return new WallMask(subMask, min, max);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ package com.sk89q.worldedit.extension.factory;
|
|||||||
import com.fastasyncworldedit.core.configuration.Caption;
|
import com.fastasyncworldedit.core.configuration.Caption;
|
||||||
import com.fastasyncworldedit.core.extension.factory.parser.mask.AdjacentMaskParser;
|
import com.fastasyncworldedit.core.extension.factory.parser.mask.AdjacentMaskParser;
|
||||||
import com.fastasyncworldedit.core.extension.factory.parser.mask.AngleMaskParser;
|
import com.fastasyncworldedit.core.extension.factory.parser.mask.AngleMaskParser;
|
||||||
|
import com.fastasyncworldedit.core.extension.factory.parser.mask.BesideMaskParser;
|
||||||
import com.fastasyncworldedit.core.extension.factory.parser.mask.ExtremaMaskParser;
|
import com.fastasyncworldedit.core.extension.factory.parser.mask.ExtremaMaskParser;
|
||||||
import com.fastasyncworldedit.core.extension.factory.parser.mask.FalseMaskParser;
|
import com.fastasyncworldedit.core.extension.factory.parser.mask.FalseMaskParser;
|
||||||
import com.fastasyncworldedit.core.extension.factory.parser.mask.LiquidMaskParser;
|
import com.fastasyncworldedit.core.extension.factory.parser.mask.LiquidMaskParser;
|
||||||
@ -106,6 +107,7 @@ public final class MaskFactory extends AbstractFactory<Mask> {
|
|||||||
// Mask Parsers from FAWE
|
// Mask Parsers from FAWE
|
||||||
register(new AdjacentMaskParser(worldEdit));
|
register(new AdjacentMaskParser(worldEdit));
|
||||||
register(new AngleMaskParser(worldEdit));
|
register(new AngleMaskParser(worldEdit));
|
||||||
|
register(new BesideMaskParser(worldEdit));
|
||||||
register(new ExtremaMaskParser(worldEdit));
|
register(new ExtremaMaskParser(worldEdit));
|
||||||
register(new FalseMaskParser(worldEdit));
|
register(new FalseMaskParser(worldEdit));
|
||||||
register(new LiquidMaskParser(worldEdit));
|
register(new LiquidMaskParser(worldEdit));
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren