use expression switches

This commit is contained in:
dfsek
2021-09-26 13:16:43 -07:00
parent 3de02c5d63
commit 8f51707505
39 changed files with 366 additions and 687 deletions

View File

@@ -57,132 +57,81 @@ public final class BukkitAdapter {
}
public static Axis adapt(org.bukkit.Axis axis) {
switch(axis) {
case X:
return Axis.X;
case Y:
return Axis.Y;
case Z:
return Axis.Z;
default:
throw new IllegalStateException();
}
return switch(axis) {
case X -> Axis.X;
case Y -> Axis.Y;
case Z -> Axis.Z;
};
}
public static Half adapt(org.bukkit.block.data.Bisected.Half half) {
switch(half) {
case BOTTOM:
return Half.BOTTOM;
case TOP:
return Half.TOP;
default:
throw new IllegalStateException();
}
return switch(half) {
case BOTTOM -> Half.BOTTOM;
case TOP -> Half.TOP;
};
}
public static RedstoneConnection adapt(org.bukkit.block.data.type.RedstoneWire.Connection connection) {
switch(connection) {
case NONE:
return RedstoneConnection.NONE;
case UP:
return RedstoneConnection.UP;
case SIDE:
return RedstoneConnection.SIDE;
default:
throw new IllegalStateException();
}
return switch(connection) {
case NONE -> RedstoneConnection.NONE;
case UP -> RedstoneConnection.UP;
case SIDE -> RedstoneConnection.SIDE;
};
}
public static org.bukkit.block.data.type.RedstoneWire.Connection adapt(RedstoneConnection connection) {
switch(connection) {
case SIDE:
return org.bukkit.block.data.type.RedstoneWire.Connection.SIDE;
case UP:
return org.bukkit.block.data.type.RedstoneWire.Connection.UP;
case NONE:
return org.bukkit.block.data.type.RedstoneWire.Connection.NONE;
default:
throw new IllegalStateException();
}
return switch(connection) {
case SIDE -> org.bukkit.block.data.type.RedstoneWire.Connection.SIDE;
case UP -> org.bukkit.block.data.type.RedstoneWire.Connection.UP;
case NONE -> org.bukkit.block.data.type.RedstoneWire.Connection.NONE;
};
}
public static RailShape adapt(org.bukkit.block.data.Rail.Shape shape) {
switch(shape) {
case SOUTH_WEST:
return RailShape.SOUTH_WEST;
case SOUTH_EAST:
return RailShape.SOUTH_EAST;
case NORTH_EAST:
return RailShape.NORTH_EAST;
case NORTH_WEST:
return RailShape.NORTH_WEST;
case ASCENDING_EAST:
return RailShape.ASCENDING_EAST;
case ASCENDING_WEST:
return RailShape.ASCENDING_WEST;
case ASCENDING_SOUTH:
return RailShape.ASCENDING_SOUTH;
case ASCENDING_NORTH:
return RailShape.ASCENDING_NORTH;
case NORTH_SOUTH:
return RailShape.NORTH_SOUTH;
case EAST_WEST:
return RailShape.EAST_WEST;
default:
throw new IllegalStateException();
}
return switch(shape) {
case SOUTH_WEST -> RailShape.SOUTH_WEST;
case SOUTH_EAST -> RailShape.SOUTH_EAST;
case NORTH_EAST -> RailShape.NORTH_EAST;
case NORTH_WEST -> RailShape.NORTH_WEST;
case ASCENDING_EAST -> RailShape.ASCENDING_EAST;
case ASCENDING_WEST -> RailShape.ASCENDING_WEST;
case ASCENDING_SOUTH -> RailShape.ASCENDING_SOUTH;
case ASCENDING_NORTH -> RailShape.ASCENDING_NORTH;
case NORTH_SOUTH -> RailShape.NORTH_SOUTH;
case EAST_WEST -> RailShape.EAST_WEST;
};
}
public static org.bukkit.block.data.Rail.Shape adapt(RailShape shape) {
switch(shape) {
case EAST_WEST:
return org.bukkit.block.data.Rail.Shape.EAST_WEST;
case NORTH_SOUTH:
return org.bukkit.block.data.Rail.Shape.NORTH_SOUTH;
case ASCENDING_NORTH:
return org.bukkit.block.data.Rail.Shape.ASCENDING_NORTH;
case ASCENDING_SOUTH:
return org.bukkit.block.data.Rail.Shape.ASCENDING_SOUTH;
case ASCENDING_WEST:
return org.bukkit.block.data.Rail.Shape.ASCENDING_WEST;
case ASCENDING_EAST:
return org.bukkit.block.data.Rail.Shape.ASCENDING_EAST;
case NORTH_WEST:
return org.bukkit.block.data.Rail.Shape.NORTH_WEST;
case NORTH_EAST:
return org.bukkit.block.data.Rail.Shape.NORTH_EAST;
case SOUTH_EAST:
return org.bukkit.block.data.Rail.Shape.SOUTH_EAST;
case SOUTH_WEST:
return org.bukkit.block.data.Rail.Shape.SOUTH_WEST;
default:
throw new IllegalStateException();
}
return switch(shape) {
case EAST_WEST -> org.bukkit.block.data.Rail.Shape.EAST_WEST;
case NORTH_SOUTH -> org.bukkit.block.data.Rail.Shape.NORTH_SOUTH;
case ASCENDING_NORTH -> org.bukkit.block.data.Rail.Shape.ASCENDING_NORTH;
case ASCENDING_SOUTH -> org.bukkit.block.data.Rail.Shape.ASCENDING_SOUTH;
case ASCENDING_WEST -> org.bukkit.block.data.Rail.Shape.ASCENDING_WEST;
case ASCENDING_EAST -> org.bukkit.block.data.Rail.Shape.ASCENDING_EAST;
case NORTH_WEST -> org.bukkit.block.data.Rail.Shape.NORTH_WEST;
case NORTH_EAST -> org.bukkit.block.data.Rail.Shape.NORTH_EAST;
case SOUTH_EAST -> org.bukkit.block.data.Rail.Shape.SOUTH_EAST;
case SOUTH_WEST -> org.bukkit.block.data.Rail.Shape.SOUTH_WEST;
};
}
public static org.bukkit.block.data.Bisected.Half adapt(Half half) {
switch(half) {
case TOP:
return org.bukkit.block.data.Bisected.Half.TOP;
case BOTTOM:
return org.bukkit.block.data.Bisected.Half.BOTTOM;
default:
throw new IllegalStateException();
}
return switch(half) {
case TOP -> org.bukkit.block.data.Bisected.Half.TOP;
case BOTTOM -> org.bukkit.block.data.Bisected.Half.BOTTOM;
default -> throw new IllegalStateException();
};
}
public static org.bukkit.Axis adapt(Axis axis) {
switch(axis) {
case Z:
return org.bukkit.Axis.Z;
case Y:
return org.bukkit.Axis.Y;
case X:
return org.bukkit.Axis.X;
default:
throw new IllegalStateException();
}
return switch(axis) {
case Z -> org.bukkit.Axis.Z;
case Y -> org.bukkit.Axis.Y;
case X -> org.bukkit.Axis.X;
};
}
public static Vector3 adapt(Location location) {

View File

@@ -27,21 +27,16 @@ public class BukkitTree implements Tree {
private MaterialSet getSpawnable(TreeType type) {
WorldHandle handle = main.getWorldHandle();
switch(type) {
case CRIMSON_FUNGUS:
return MaterialSet.get(handle.createBlockData("minecraft:crimson_nylium"));
case WARPED_FUNGUS:
return MaterialSet.get(handle.createBlockData("minecraft:warped_nylium"));
case BROWN_MUSHROOM:
case RED_MUSHROOM:
return MaterialSet.get(handle.createBlockData("minecraft:mycelium"), handle.createBlockData("minecraft:grass_block"),
return switch(type) {
case CRIMSON_FUNGUS -> MaterialSet.get(handle.createBlockData("minecraft:crimson_nylium"));
case WARPED_FUNGUS -> MaterialSet.get(handle.createBlockData("minecraft:warped_nylium"));
case BROWN_MUSHROOM, RED_MUSHROOM -> MaterialSet.get(handle.createBlockData("minecraft:mycelium"),
handle.createBlockData("minecraft:grass_block"),
handle.createBlockData("minecraft:podzol"));
case CHORUS_PLANT -> MaterialSet.get(handle.createBlockData("minecraft:end_stone"));
default -> MaterialSet.get(handle.createBlockData("minecraft:grass_block"), handle.createBlockData("minecraft:dirt"),
handle.createBlockData("minecraft:podzol"));
case CHORUS_PLANT:
return MaterialSet.get(handle.createBlockData("minecraft:end_stone"));
default:
return MaterialSet.get(handle.createBlockData("minecraft:grass_block"), handle.createBlockData("minecraft:dirt"),
handle.createBlockData("minecraft:podzol"));
}
};
}
@Override

View File

@@ -98,32 +98,15 @@ public class BukkitMobSpawner extends BukkitBlockEntity implements MobSpawner {
public void applyState(String state) {
SerialState.parse(state).forEach((k, v) -> {
switch(k) {
case "type":
setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v.toUpperCase())));
return;
case "delay":
setDelay(Integer.parseInt(v));
return;
case "min_delay":
setMinSpawnDelay(Integer.parseInt(v));
return;
case "max_delay":
setMaxSpawnDelay(Integer.parseInt(v));
return;
case "spawn_count":
setSpawnCount(Integer.parseInt(v));
return;
case "spawn_range":
setSpawnRange(Integer.parseInt(v));
return;
case "max_nearby":
setMaxNearbyEntities(Integer.parseInt(v));
return;
case "required_player_range":
setRequiredPlayerRange(Integer.parseInt(v));
return;
default:
throw new IllegalArgumentException("Invalid property: " + k);
case "type" -> setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v.toUpperCase())));
case "delay" -> setDelay(Integer.parseInt(v));
case "min_delay" -> setMinSpawnDelay(Integer.parseInt(v));
case "max_delay" -> setMaxSpawnDelay(Integer.parseInt(v));
case "spawn_count" -> setSpawnCount(Integer.parseInt(v));
case "spawn_range" -> setSpawnRange(Integer.parseInt(v));
case "max_nearby" -> setMaxNearbyEntities(Integer.parseInt(v));
case "required_player_range" -> setRequiredPlayerRange(Integer.parseInt(v));
default -> throw new IllegalArgumentException("Invalid property: " + k);
}
});
}

View File

@@ -97,32 +97,15 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity {
public void terra$applyState(String state) {
SerialState.parse(state).forEach((k, v) -> {
switch(k) {
case "type":
terra$setSpawnedType(FabricEntryPoint.getTerraPlugin().getWorldHandle().getEntity(v));
return;
case "delay":
terra$setDelay(Integer.parseInt(v));
return;
case "min_delay":
terra$setMinSpawnDelay(Integer.parseInt(v));
return;
case "max_delay":
terra$setMaxSpawnDelay(Integer.parseInt(v));
return;
case "spawn_count":
terra$setSpawnCount(Integer.parseInt(v));
return;
case "spawn_range":
terra$setSpawnRange(Integer.parseInt(v));
return;
case "max_nearby":
terra$setMaxNearbyEntities(Integer.parseInt(v));
return;
case "required_player_range":
terra$setRequiredPlayerRange(Integer.parseInt(v));
return;
default:
throw new IllegalArgumentException("Invalid property: " + k);
case "type" -> terra$setSpawnedType(FabricEntryPoint.getTerraPlugin().getWorldHandle().getEntity(v));
case "delay" -> terra$setDelay(Integer.parseInt(v));
case "min_delay" -> terra$setMinSpawnDelay(Integer.parseInt(v));
case "max_delay" -> terra$setMaxSpawnDelay(Integer.parseInt(v));
case "spawn_count" -> terra$setSpawnCount(Integer.parseInt(v));
case "spawn_range" -> terra$setSpawnRange(Integer.parseInt(v));
case "max_nearby" -> terra$setMaxNearbyEntities(Integer.parseInt(v));
case "required_player_range" -> terra$setRequiredPlayerRange(Integer.parseInt(v));
default -> throw new IllegalArgumentException("Invalid property: " + k);
}
});
}

View File

@@ -30,188 +30,119 @@ public final class FabricAdapter {
}
public static Direction adapt(com.dfsek.terra.api.block.state.properties.enums.Direction direction) {
switch(direction) {
case SOUTH:
return Direction.SOUTH;
case NORTH:
return Direction.NORTH;
case WEST:
return Direction.WEST;
case EAST:
return Direction.EAST;
case UP:
return Direction.UP;
case DOWN:
return Direction.DOWN;
}
throw new IllegalArgumentException();
return switch(direction) {
case SOUTH -> Direction.SOUTH;
case NORTH -> Direction.NORTH;
case WEST -> Direction.WEST;
case EAST -> Direction.EAST;
case UP -> Direction.UP;
case DOWN -> Direction.DOWN;
};
}
public static com.dfsek.terra.api.block.state.properties.enums.Direction adapt(Direction direction) {
switch(direction) {
case SOUTH:
return com.dfsek.terra.api.block.state.properties.enums.Direction.SOUTH;
case NORTH:
return com.dfsek.terra.api.block.state.properties.enums.Direction.NORTH;
case WEST:
return com.dfsek.terra.api.block.state.properties.enums.Direction.WEST;
case EAST:
return com.dfsek.terra.api.block.state.properties.enums.Direction.EAST;
case UP:
return com.dfsek.terra.api.block.state.properties.enums.Direction.UP;
case DOWN:
return com.dfsek.terra.api.block.state.properties.enums.Direction.DOWN;
}
throw new IllegalArgumentException();
return switch(direction) {
case SOUTH -> com.dfsek.terra.api.block.state.properties.enums.Direction.SOUTH;
case NORTH -> com.dfsek.terra.api.block.state.properties.enums.Direction.NORTH;
case WEST -> com.dfsek.terra.api.block.state.properties.enums.Direction.WEST;
case EAST -> com.dfsek.terra.api.block.state.properties.enums.Direction.EAST;
case UP -> com.dfsek.terra.api.block.state.properties.enums.Direction.UP;
case DOWN -> com.dfsek.terra.api.block.state.properties.enums.Direction.DOWN;
};
}
public static WallHeight adapt(WallShape shape) {
switch(shape) {
case LOW:
return WallHeight.LOW;
case NONE:
return WallHeight.NONE;
case TALL:
return WallHeight.TALL;
}
throw new IllegalArgumentException();
return switch(shape) {
case LOW -> WallHeight.LOW;
case NONE -> WallHeight.NONE;
case TALL -> WallHeight.TALL;
};
}
public static WallShape adapt(WallHeight shape) {
switch(shape) {
case LOW:
return WallShape.LOW;
case NONE:
return WallShape.NONE;
case TALL:
return WallShape.TALL;
}
throw new IllegalArgumentException();
return switch(shape) {
case LOW -> WallShape.LOW;
case NONE -> WallShape.NONE;
case TALL -> WallShape.TALL;
};
}
public static RedstoneConnection adapt(WireConnection connection) {
switch(connection) {
case NONE:
return RedstoneConnection.NONE;
case UP:
return RedstoneConnection.UP;
case SIDE:
return RedstoneConnection.SIDE;
}
throw new IllegalArgumentException();
return switch(connection) {
case NONE -> RedstoneConnection.NONE;
case UP -> RedstoneConnection.UP;
case SIDE -> RedstoneConnection.SIDE;
};
}
public static WireConnection adapt(RedstoneConnection connection) {
switch(connection) {
case NONE:
return WireConnection.NONE;
case UP:
return WireConnection.UP;
case SIDE:
return WireConnection.SIDE;
}
throw new IllegalArgumentException();
return switch(connection) {
case NONE -> WireConnection.NONE;
case UP -> WireConnection.UP;
case SIDE -> WireConnection.SIDE;
};
}
public static Half adapt(BlockHalf half) {
switch(half) {
case BOTTOM:
return Half.BOTTOM;
case TOP:
return Half.TOP;
default:
throw new IllegalStateException();
}
return switch(half) {
case BOTTOM -> Half.BOTTOM;
case TOP -> Half.TOP;
};
}
public static BlockHalf adapt(Half half) {
switch(half) {
case TOP:
return BlockHalf.TOP;
case BOTTOM:
return BlockHalf.BOTTOM;
default:
throw new IllegalStateException();
}
return switch(half) {
case TOP -> BlockHalf.TOP;
case BOTTOM -> BlockHalf.BOTTOM;
default -> throw new IllegalStateException();
};
}
public static RailShape adapt(net.minecraft.block.enums.RailShape railShape) {
switch(railShape) {
case EAST_WEST:
return RailShape.EAST_WEST;
case NORTH_EAST:
return RailShape.NORTH_EAST;
case NORTH_WEST:
return RailShape.NORTH_WEST;
case SOUTH_EAST:
return RailShape.SOUTH_EAST;
case SOUTH_WEST:
return RailShape.SOUTH_WEST;
case NORTH_SOUTH:
return RailShape.NORTH_SOUTH;
case ASCENDING_EAST:
return RailShape.ASCENDING_EAST;
case ASCENDING_NORTH:
return RailShape.ASCENDING_NORTH;
case ASCENDING_SOUTH:
return RailShape.ASCENDING_SOUTH;
case ASCENDING_WEST:
return RailShape.ASCENDING_WEST;
}
throw new IllegalStateException();
return switch(railShape) {
case EAST_WEST -> RailShape.EAST_WEST;
case NORTH_EAST -> RailShape.NORTH_EAST;
case NORTH_WEST -> RailShape.NORTH_WEST;
case SOUTH_EAST -> RailShape.SOUTH_EAST;
case SOUTH_WEST -> RailShape.SOUTH_WEST;
case NORTH_SOUTH -> RailShape.NORTH_SOUTH;
case ASCENDING_EAST -> RailShape.ASCENDING_EAST;
case ASCENDING_NORTH -> RailShape.ASCENDING_NORTH;
case ASCENDING_SOUTH -> RailShape.ASCENDING_SOUTH;
case ASCENDING_WEST -> RailShape.ASCENDING_WEST;
};
}
public static net.minecraft.block.enums.RailShape adapt(RailShape railShape) {
switch(railShape) {
case EAST_WEST:
return net.minecraft.block.enums.RailShape.EAST_WEST;
case NORTH_EAST:
return net.minecraft.block.enums.RailShape.NORTH_EAST;
case NORTH_WEST:
return net.minecraft.block.enums.RailShape.NORTH_WEST;
case SOUTH_EAST:
return net.minecraft.block.enums.RailShape.SOUTH_EAST;
case SOUTH_WEST:
return net.minecraft.block.enums.RailShape.SOUTH_WEST;
case NORTH_SOUTH:
return net.minecraft.block.enums.RailShape.NORTH_SOUTH;
case ASCENDING_EAST:
return net.minecraft.block.enums.RailShape.ASCENDING_EAST;
case ASCENDING_NORTH:
return net.minecraft.block.enums.RailShape.ASCENDING_NORTH;
case ASCENDING_SOUTH:
return net.minecraft.block.enums.RailShape.ASCENDING_SOUTH;
case ASCENDING_WEST:
return net.minecraft.block.enums.RailShape.ASCENDING_WEST;
}
throw new IllegalStateException();
return switch(railShape) {
case EAST_WEST -> net.minecraft.block.enums.RailShape.EAST_WEST;
case NORTH_EAST -> net.minecraft.block.enums.RailShape.NORTH_EAST;
case NORTH_WEST -> net.minecraft.block.enums.RailShape.NORTH_WEST;
case SOUTH_EAST -> net.minecraft.block.enums.RailShape.SOUTH_EAST;
case SOUTH_WEST -> net.minecraft.block.enums.RailShape.SOUTH_WEST;
case NORTH_SOUTH -> net.minecraft.block.enums.RailShape.NORTH_SOUTH;
case ASCENDING_EAST -> net.minecraft.block.enums.RailShape.ASCENDING_EAST;
case ASCENDING_NORTH -> net.minecraft.block.enums.RailShape.ASCENDING_NORTH;
case ASCENDING_SOUTH -> net.minecraft.block.enums.RailShape.ASCENDING_SOUTH;
case ASCENDING_WEST -> net.minecraft.block.enums.RailShape.ASCENDING_WEST;
};
}
public static Axis adapt(Direction.Axis axis) {
switch(axis) {
case X:
return Axis.X;
case Y:
return Axis.Y;
case Z:
return Axis.Z;
default:
throw new IllegalStateException();
}
return switch(axis) {
case X -> Axis.X;
case Y -> Axis.Y;
case Z -> Axis.Z;
};
}
public static Direction.Axis adapt(Axis axis) {
switch(axis) {
case Z:
return Direction.Axis.Z;
case Y:
return Direction.Axis.Y;
case X:
return Direction.Axis.X;
default:
throw new IllegalStateException();
}
return switch(axis) {
case Z -> Direction.Axis.Z;
case Y -> Direction.Axis.Y;
case X -> Direction.Axis.X;
};
}
}