Remove all raw usages of BSH, improve API generics

This commit is contained in:
Kenzie Togami
2018-12-26 16:39:10 -08:00
parent a88f6b8430
commit 3fefcbf971
83 changed files with 242 additions and 259 deletions

View File

@ -23,7 +23,6 @@ import com.sk89q.worldedit.IncompleteRegionException;
import com.sk89q.worldedit.NotABlockException;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.blocks.MobSpawnerBlock;
import com.sk89q.worldedit.blocks.SignBlock;
import com.sk89q.worldedit.blocks.SkullBlock;
@ -40,8 +39,8 @@ import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.registry.state.Property;
import com.sk89q.worldedit.util.HandSide;
import com.sk89q.worldedit.world.World;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
import com.sk89q.worldedit.world.registry.LegacyMapper;
@ -52,7 +51,7 @@ import java.util.Map;
/**
* Parses block input strings.
*/
public class DefaultBlockParser extends InputParser<BlockStateHolder> {
public class DefaultBlockParser extends InputParser<BaseBlock> {
public DefaultBlockParser(WorldEdit worldEdit) {
super(worldEdit);
@ -73,13 +72,13 @@ public class DefaultBlockParser extends InputParser<BlockStateHolder> {
}
@Override
public BlockStateHolder parseFromInput(String input, ParserContext context)
public BaseBlock parseFromInput(String input, ParserContext context)
throws InputParseException {
String originalInput = input;
input = input.replace(";", "|");
Exception suppressed = null;
try {
BlockStateHolder modified = parseLogic(input, context);
BaseBlock modified = parseLogic(input, context);
if (modified != null) {
return modified;
}
@ -158,7 +157,8 @@ public class DefaultBlockParser extends InputParser<BlockStateHolder> {
throw new NoMatchException("Bad state format in " + parseableData);
}
Property propertyKey = state.getBlockType().getPropertyMap().get(parts[0]);
@SuppressWarnings("unchecked")
Property<Object> propertyKey = (Property<Object>) state.getBlockType().getPropertyMap().get(parts[0]);
if (propertyKey == null) {
throw new NoMatchException("Unknown state " + parts[0] + " for block " + state.getBlockType().getName());
}
@ -182,7 +182,7 @@ public class DefaultBlockParser extends InputParser<BlockStateHolder> {
return state;
}
private BlockStateHolder parseLogic(String input, ParserContext context) throws InputParseException {
private BaseBlock parseLogic(String input, ParserContext context) throws InputParseException {
BlockType blockType = null;
Map<Property<?>, Object> blockStates = new HashMap<>();
String[] blockAndExtraData = input.trim().split("\\|");
@ -270,7 +270,9 @@ public class DefaultBlockParser extends InputParser<BlockStateHolder> {
} else {
state = blockType.getDefaultState().toFuzzy();
for (Map.Entry<Property<?>, Object> blockState : blockStates.entrySet()) {
state = state.with((Property) blockState.getKey(), blockState.getValue());
@SuppressWarnings("unchecked")
Property<Object> objProp = (Property<Object>) blockState.getKey();
state = state.with(objProp, blockState.getValue());
}
}
@ -321,7 +323,7 @@ public class DefaultBlockParser extends InputParser<BlockStateHolder> {
return new SkullBlock(state, type.replace(" ", "_")); // valid MC usernames
} else {
return state;
return state.toBaseBlock();
}
}

View File

@ -28,7 +28,7 @@ import com.sk89q.worldedit.function.mask.BlockMask;
import com.sk89q.worldedit.function.mask.Mask;
import com.sk89q.worldedit.internal.registry.InputParser;
import com.sk89q.worldedit.session.request.Request;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.block.BaseBlock;
import java.util.Set;
@ -48,7 +48,7 @@ public class BlocksMaskParser extends InputParser<Mask> {
tempContext.setRestricted(false);
tempContext.setPreferringWildcard(true);
try {
Set<BlockStateHolder> holders = worldEdit.getBlockFactory().parseFromListInput(component, tempContext);
Set<BaseBlock> holders = worldEdit.getBlockFactory().parseFromListInput(component, tempContext);
if (holders.isEmpty()) {
return null;
}

View File

@ -28,7 +28,7 @@ import com.sk89q.worldedit.function.pattern.BlockPattern;
import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.function.pattern.RandomPattern;
import com.sk89q.worldedit.internal.registry.InputParser;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.block.BaseBlock;
public class RandomPatternParser extends InputParser<Pattern> {
@ -43,7 +43,7 @@ public class RandomPatternParser extends InputParser<Pattern> {
String[] splits = input.split(",");
for (String token : StringUtil.parseListInQuotes(splits, ',', '[', ']')) {
BlockStateHolder block;
BaseBlock block;
double chance;