geforkt von Mirrors/FastAsyncWorldEdit
Parse instead of get block for masks
Dieser Commit ist enthalten in:
Ursprung
b8cc785717
Commit
44c5447edb
@ -3,6 +3,7 @@ package com.sk89q.worldedit.function.mask;
|
|||||||
import com.boydti.fawe.object.collection.FastBitSet;
|
import com.boydti.fawe.object.collection.FastBitSet;
|
||||||
import com.boydti.fawe.object.string.MutableCharSequence;
|
import com.boydti.fawe.object.string.MutableCharSequence;
|
||||||
import com.boydti.fawe.util.StringMan;
|
import com.boydti.fawe.util.StringMan;
|
||||||
|
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
import com.sk89q.worldedit.registry.state.AbstractProperty;
|
import com.sk89q.worldedit.registry.state.AbstractProperty;
|
||||||
import com.sk89q.worldedit.registry.state.Property;
|
import com.sk89q.worldedit.registry.state.Property;
|
||||||
@ -66,7 +67,7 @@ public class BlockMaskBuilder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockMaskBuilder addRegex(String input) {
|
public BlockMaskBuilder addRegex(String input) throws InputParseException {
|
||||||
if (input.charAt(input.length() - 1) == ']') {
|
if (input.charAt(input.length() - 1) == ']') {
|
||||||
int propStart = StringMan.findMatchingBracket(input, input.length() - 1);
|
int propStart = StringMan.findMatchingBracket(input, input.length() - 1);
|
||||||
if (propStart == -1) return this;
|
if (propStart == -1) return this;
|
||||||
@ -78,7 +79,7 @@ public class BlockMaskBuilder {
|
|||||||
BlockTypes type = null;
|
BlockTypes type = null;
|
||||||
List<BlockTypes> blockTypeList = null;
|
List<BlockTypes> blockTypeList = null;
|
||||||
if (StringMan.isAlphanumericUnd(charSequence)) {
|
if (StringMan.isAlphanumericUnd(charSequence)) {
|
||||||
type = BlockTypes.get(charSequence);
|
type = BlockTypes.parse(charSequence.toString());
|
||||||
add(type);
|
add(type);
|
||||||
} else {
|
} else {
|
||||||
String regex = charSequence.toString();
|
String regex = charSequence.toString();
|
||||||
@ -153,7 +154,7 @@ public class BlockMaskBuilder {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (StringMan.isAlphanumericUnd(input)) {
|
if (StringMan.isAlphanumericUnd(input)) {
|
||||||
add(BlockTypes.get(input));
|
add(BlockTypes.parse(input));
|
||||||
} else {
|
} else {
|
||||||
for (BlockTypes myType : BlockTypes.values) {
|
for (BlockTypes myType : BlockTypes.values) {
|
||||||
if (myType.getId().matches(input)) {
|
if (myType.getId().matches(input)) {
|
||||||
|
@ -25,6 +25,7 @@ import com.sk89q.worldedit.Vector;
|
|||||||
import com.sk89q.worldedit.WorldEdit;
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
import com.sk89q.worldedit.WorldEditException;
|
||||||
import com.sk89q.worldedit.blocks.BlockMaterial;
|
import com.sk89q.worldedit.blocks.BlockMaterial;
|
||||||
|
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||||
import com.sk89q.worldedit.extension.platform.Capability;
|
import com.sk89q.worldedit.extension.platform.Capability;
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
import com.sk89q.worldedit.function.mask.Mask;
|
import com.sk89q.worldedit.function.mask.Mask;
|
||||||
@ -978,7 +979,7 @@ public enum BlockTypes implements BlockType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BlockTypes parse(String input) {
|
public static BlockTypes parse(String input) throws InputParseException {
|
||||||
input = input.toLowerCase();
|
input = input.toLowerCase();
|
||||||
|
|
||||||
if (!input.split("\\[", 2)[0].contains(":")) input = "minecraft:" + input;
|
if (!input.split("\\[", 2)[0].contains(":")) input = "minecraft:" + input;
|
||||||
@ -987,10 +988,10 @@ public enum BlockTypes implements BlockType {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
BlockStateHolder block = LegacyMapper.getInstance().getBlockFromLegacy(input);
|
BlockStateHolder block = LegacyMapper.getInstance().getBlockFromLegacy(input);
|
||||||
if (block != null) return (BlockTypes) block.getBlockType();
|
if (block != null) return block.getBlockType();
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
} catch (IndexOutOfBoundsException e) {}
|
} catch (IndexOutOfBoundsException e) {}
|
||||||
return null;
|
throw new InputParseException("Unkown block for " + input);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BlockTypes register(final String id) {
|
private static BlockTypes register(final String id) {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren