Lists of all applicable Keys by Block and all applicable Blocks by Key

Hi! I think it’s difficult to understand what keys are for what blocks from JavaDocs alone (COLOR/DYE_COLOR anyone?), so I made a quick plugin that makes two files with two lists: all applicable Keys by Block and all applicable Blocks by Key.

Here are results:

All applicable Keys by Block:


ACACIA_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

ACACIA_FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

ACACIA_FENCE_GATE
    DIRECTION
    IN_WALL
    OPEN
    POWERED

ACACIA_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

ACTIVATOR_RAIL
    POWERED
    RAIL_DIRECTION

AIR

ANVIL
    DIRECTION

BARRIER

BEACON

BED
    DIRECTION
    OCCUPIED

BEDROCK

BIRCH_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

BIRCH_FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

BIRCH_FENCE_GATE
    DIRECTION
    IN_WALL
    OPEN
    POWERED

BIRCH_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

BOOKSHELF

BREWING_STAND

BRICK_BLOCK

BRICK_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

BROWN_MUSHROOM

BROWN_MUSHROOM_BLOCK
    BIG_MUSHROOM_TYPE

CACTUS
    GROWTH_STAGE

CAKE
    LAYER

CARPET
    DYE_COLOR

CARROTS
    GROWTH_STAGE

CAULDRON

CHEST
    DIRECTION

CLAY

COAL_BLOCK

COAL_ORE

COBBLESTONE

COBBLESTONE_WALL
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST
    WALL_TYPE

COCOA
    DIRECTION
    GROWTH_STAGE

COMMAND_BLOCK

CRAFTING_TABLE

DARK_OAK_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

DARK_OAK_FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

DARK_OAK_FENCE_GATE
    DIRECTION
    IN_WALL
    OPEN
    POWERED

DARK_OAK_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

DAYLIGHT_DETECTOR
    POWER

DAYLIGHT_DETECTOR_INVERTED
    POWER

DEADBUSH

DETECTOR_RAIL
    POWERED
    RAIL_DIRECTION

DIAMOND_BLOCK

DIAMOND_ORE

DIRT
    DIRT_TYPE
    SNOWED

DISPENSER
    DIRECTION

DOUBLE_PLANT
    DOUBLE_PLANT_TYPE

DOUBLE_STONE_SLAB
    SEAMLESS
    SLAB_TYPE

DOUBLE_STONE_SLAB2
    SEAMLESS
    SLAB_TYPE

DOUBLE_WOODEN_SLAB
    TREE_TYPE

DRAGON_EGG

DROPPER
    DIRECTION

EMERALD_BLOCK

EMERALD_ORE

ENCHANTING_TABLE

ENDER_CHEST
    DIRECTION

END_PORTAL

END_PORTAL_FRAME
    DIRECTION

END_STONE

FARMLAND
    MOISTURE

FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

FENCE_GATE
    DIRECTION
    IN_WALL
    OPEN
    POWERED

FIRE

FLOWER_POT

FLOWING_LAVA

FLOWING_WATER

FURNACE
    DIRECTION

GLASS

GLASS_PANE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

GLOWSTONE

GOLDEN_RAIL
    POWERED
    RAIL_DIRECTION

GOLD_BLOCK

GOLD_ORE

GRASS
    SNOWED

GRAVEL

HARDENED_CLAY

HAY_BLOCK
    AXIS

HEAVY_WEIGHTED_PRESSURE_PLATE
    POWER

HOPPER
    DIRECTION

ICE

IRON_BARS
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

IRON_BLOCK

IRON_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

IRON_ORE

IRON_TRAPDOOR
    DIRECTION
    OPEN
    PORTION_TYPE

JUKEBOX

JUNGLE_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

JUNGLE_FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

JUNGLE_FENCE_GATE
    DIRECTION
    IN_WALL
    OPEN
    POWERED

JUNGLE_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

LADDER
    DIRECTION

LAPIS_BLOCK

LAPIS_ORE

LAVA

LEAVES
    DECAYABLE
    TREE_TYPE

LEAVES2
    DECAYABLE
    TREE_TYPE

LEVER
    AXIS
    DIRECTION
    POWERED

LIGHT_WEIGHTED_PRESSURE_PLATE
    POWER

LIT_FURNACE
    DIRECTION

LIT_PUMPKIN
    DIRECTION

LIT_REDSTONE_LAMP

LIT_REDSTONE_ORE

LOG
    LOG_AXIS
    TREE_TYPE

LOG2
    LOG_AXIS
    TREE_TYPE

MELON_BLOCK

MELON_STEM
    DIRECTION
    GROWTH_STAGE

MOB_SPAWNER

MONSTER_EGG
    DISGUISED_BLOCK_TYPE

MOSSY_COBBLESTONE

MYCELIUM
    SNOWED

NETHERRACK

NETHER_BRICK

NETHER_BRICK_FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

NETHER_BRICK_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

NETHER_WART
    GROWTH_STAGE

NOTEBLOCK

OAK_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

OBSIDIAN

PACKED_ICE

PISTON
    DIRECTION
    EXTENDED

PISTON_EXTENSION
    DIRECTION
    PISTON_TYPE

PISTON_HEAD
    DIRECTION
    PISTON_TYPE

PLANKS
    TREE_TYPE

PORTAL
    AXIS

POTATOES
    GROWTH_STAGE

POWERED_COMPARATOR
    COMPARATOR_TYPE
    DIRECTION
    POWERED

POWERED_REPEATER
    DELAY
    DIRECTION

PRISMARINE
    PRISMARINE_TYPE

PUMPKIN
    DIRECTION

PUMPKIN_STEM
    DIRECTION
    GROWTH_STAGE

QUARTZ_BLOCK
    QUARTZ_TYPE

QUARTZ_ORE

QUARTZ_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

RAIL
    RAIL_DIRECTION

REDSTONE_BLOCK

REDSTONE_LAMP

REDSTONE_ORE

REDSTONE_TORCH
    ATTACHED
    DIRECTION

REDSTONE_WIRE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST
    POWER

RED_FLOWER
    PLANT_TYPE

RED_MUSHROOM

RED_MUSHROOM_BLOCK
    BIG_MUSHROOM_TYPE

RED_SANDSTONE
    SANDSTONE_TYPE

RED_SANDSTONE_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

REEDS
    GROWTH_STAGE

SAND
    SAND_TYPE

SANDSTONE
    SANDSTONE_TYPE

SANDSTONE_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

SAPLING
    GROWTH_STAGE
    TREE_TYPE

SEA_LANTERN

SKULL
    DIRECTION
    SHOULD_DROP

SLIME

SNOW

SNOW_LAYER
    LAYER

SOUL_SAND

SPONGE
    IS_WET

SPRUCE_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

SPRUCE_FENCE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

SPRUCE_FENCE_GATE
    DIRECTION
    IN_WALL
    OPEN
    POWERED

SPRUCE_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

STAINED_GLASS
    DYE_COLOR

STAINED_GLASS_PANE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST
    DYE_COLOR

STAINED_HARDENED_CLAY
    DYE_COLOR

STANDING_BANNER
    ATTACHED
    DIRECTION

STANDING_SIGN
    ATTACHED
    DIRECTION

STICKY_PISTON
    DIRECTION
    EXTENDED

STONE
    STONE_TYPE

STONEBRICK
    BRICK_TYPE

STONE_BRICK_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

STONE_BUTTON
    DIRECTION
    POWERED

STONE_PRESSURE_PLATE
    POWERED

STONE_SLAB
    PORTION_TYPE
    SLAB_TYPE

STONE_SLAB2
    PORTION_TYPE
    SLAB_TYPE

STONE_STAIRS
    DIRECTION
    PORTION_TYPE
    STAIR_SHAPE

TALLGRASS
    SHRUB_TYPE

TNT

TORCH
    ATTACHED
    DIRECTION

TRAPDOOR
    DIRECTION
    OPEN
    PORTION_TYPE

TRAPPED_CHEST
    DIRECTION

TRIPWIRE
    ATTACHED
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST
    DISARMED
    POWERED
    SUSPENDED

TRIPWIRE_HOOK
    ATTACHED
    DIRECTION
    POWERED
    SUSPENDED

UNLIT_REDSTONE_TORCH
    ATTACHED
    DIRECTION

UNPOWERED_COMPARATOR
    COMPARATOR_TYPE
    DIRECTION
    POWERED

UNPOWERED_REPEATER
    DELAY
    DIRECTION

VINE
    CONNECTED_DIRECTIONS
    CONNECTED_EAST
    CONNECTED_NORTH
    CONNECTED_SOUTH
    CONNECTED_WEST

WALL_BANNER
    ATTACHED
    DIRECTION

WALL_SIGN
    ATTACHED
    DIRECTION

WATER

WATERLILY

WEB

WHEAT
    GROWTH_STAGE

WOODEN_BUTTON
    DIRECTION
    POWERED

WOODEN_DOOR
    DIRECTION
    HINGE_POSITION
    OPEN
    POWERED

WOODEN_PRESSURE_PLATE
    POWERED

WOODEN_SLAB
    PORTION_TYPE
    TREE_TYPE

WOOL
    DYE_COLOR

YELLOW_FLOWER
    PLANT_TYPE

All applicable Blocks by Key:


ATTACHED
    REDSTONE_TORCH
    STANDING_BANNER
    STANDING_SIGN
    TORCH
    TRIPWIRE
    TRIPWIRE_HOOK
    UNLIT_REDSTONE_TORCH
    WALL_BANNER
    WALL_SIGN

AXIS
    HAY_BLOCK
    LEVER
    PORTAL

BIG_MUSHROOM_TYPE
    BROWN_MUSHROOM_BLOCK
    RED_MUSHROOM_BLOCK

BRICK_TYPE
    STONEBRICK

COMPARATOR_TYPE
    POWERED_COMPARATOR
    UNPOWERED_COMPARATOR

CONNECTED_DIRECTIONS
    ACACIA_FENCE
    BIRCH_FENCE
    COBBLESTONE_WALL
    DARK_OAK_FENCE
    FENCE
    GLASS_PANE
    IRON_BARS
    JUNGLE_FENCE
    NETHER_BRICK_FENCE
    REDSTONE_WIRE
    SPRUCE_FENCE
    STAINED_GLASS_PANE
    TRIPWIRE
    VINE

CONNECTED_EAST
    ACACIA_FENCE
    BIRCH_FENCE
    COBBLESTONE_WALL
    DARK_OAK_FENCE
    FENCE
    GLASS_PANE
    IRON_BARS
    JUNGLE_FENCE
    NETHER_BRICK_FENCE
    REDSTONE_WIRE
    SPRUCE_FENCE
    STAINED_GLASS_PANE
    TRIPWIRE
    VINE

CONNECTED_NORTH
    ACACIA_FENCE
    BIRCH_FENCE
    COBBLESTONE_WALL
    DARK_OAK_FENCE
    FENCE
    GLASS_PANE
    IRON_BARS
    JUNGLE_FENCE
    NETHER_BRICK_FENCE
    REDSTONE_WIRE
    SPRUCE_FENCE
    STAINED_GLASS_PANE
    TRIPWIRE
    VINE

CONNECTED_SOUTH
    ACACIA_FENCE
    BIRCH_FENCE
    COBBLESTONE_WALL
    DARK_OAK_FENCE
    FENCE
    GLASS_PANE
    IRON_BARS
    JUNGLE_FENCE
    NETHER_BRICK_FENCE
    REDSTONE_WIRE
    SPRUCE_FENCE
    STAINED_GLASS_PANE
    TRIPWIRE
    VINE

CONNECTED_WEST
    ACACIA_FENCE
    BIRCH_FENCE
    COBBLESTONE_WALL
    DARK_OAK_FENCE
    FENCE
    GLASS_PANE
    IRON_BARS
    JUNGLE_FENCE
    NETHER_BRICK_FENCE
    REDSTONE_WIRE
    SPRUCE_FENCE
    STAINED_GLASS_PANE
    TRIPWIRE
    VINE

DECAYABLE
    LEAVES
    LEAVES2

DELAY
    POWERED_REPEATER
    UNPOWERED_REPEATER

DIRECTION
    ACACIA_DOOR
    ACACIA_FENCE_GATE
    ACACIA_STAIRS
    ANVIL
    BED
    BIRCH_DOOR
    BIRCH_FENCE_GATE
    BIRCH_STAIRS
    BRICK_STAIRS
    CHEST
    COCOA
    DARK_OAK_DOOR
    DARK_OAK_FENCE_GATE
    DARK_OAK_STAIRS
    DISPENSER
    DROPPER
    ENDER_CHEST
    END_PORTAL_FRAME
    FENCE_GATE
    FURNACE
    HOPPER
    IRON_DOOR
    IRON_TRAPDOOR
    JUNGLE_DOOR
    JUNGLE_FENCE_GATE
    JUNGLE_STAIRS
    LADDER
    LEVER
    LIT_FURNACE
    LIT_PUMPKIN
    MELON_STEM
    NETHER_BRICK_STAIRS
    OAK_STAIRS
    PISTON
    PISTON_EXTENSION
    PISTON_HEAD
    POWERED_COMPARATOR
    POWERED_REPEATER
    PUMPKIN
    PUMPKIN_STEM
    QUARTZ_STAIRS
    REDSTONE_TORCH
    RED_SANDSTONE_STAIRS
    SANDSTONE_STAIRS
    SKULL
    SPRUCE_DOOR
    SPRUCE_FENCE_GATE
    SPRUCE_STAIRS
    STANDING_BANNER
    STANDING_SIGN
    STICKY_PISTON
    STONE_BRICK_STAIRS
    STONE_BUTTON
    STONE_STAIRS
    TORCH
    TRAPDOOR
    TRAPPED_CHEST
    TRIPWIRE_HOOK
    UNLIT_REDSTONE_TORCH
    UNPOWERED_COMPARATOR
    UNPOWERED_REPEATER
    WALL_BANNER
    WALL_SIGN
    WOODEN_BUTTON
    WOODEN_DOOR

DIRT_TYPE
    DIRT

DISARMED
    TRIPWIRE

DISGUISED_BLOCK_TYPE
    MONSTER_EGG

DOUBLE_PLANT_TYPE
    DOUBLE_PLANT

DYE_COLOR
    CARPET
    STAINED_GLASS
    STAINED_GLASS_PANE
    STAINED_HARDENED_CLAY
    WOOL

EXTENDED
    PISTON
    STICKY_PISTON

GROWTH_STAGE
    CACTUS
    CARROTS
    COCOA
    MELON_STEM
    NETHER_WART
    POTATOES
    PUMPKIN_STEM
    REEDS
    SAPLING
    WHEAT

HINGE_POSITION
    ACACIA_DOOR
    BIRCH_DOOR
    DARK_OAK_DOOR
    IRON_DOOR
    JUNGLE_DOOR
    SPRUCE_DOOR
    WOODEN_DOOR

IN_WALL
    ACACIA_FENCE_GATE
    BIRCH_FENCE_GATE
    DARK_OAK_FENCE_GATE
    FENCE_GATE
    JUNGLE_FENCE_GATE
    SPRUCE_FENCE_GATE

IS_WET
    SPONGE

LAYER
    CAKE
    SNOW_LAYER

LOG_AXIS
    LOG
    LOG2

MOISTURE
    FARMLAND

OCCUPIED
    BED

OPEN
    ACACIA_DOOR
    ACACIA_FENCE_GATE
    BIRCH_DOOR
    BIRCH_FENCE_GATE
    DARK_OAK_DOOR
    DARK_OAK_FENCE_GATE
    FENCE_GATE
    IRON_DOOR
    IRON_TRAPDOOR
    JUNGLE_DOOR
    JUNGLE_FENCE_GATE
    SPRUCE_DOOR
    SPRUCE_FENCE_GATE
    TRAPDOOR
    WOODEN_DOOR

PISTON_TYPE
    PISTON_EXTENSION
    PISTON_HEAD

PLANT_TYPE
    RED_FLOWER
    YELLOW_FLOWER

PORTION_TYPE
    ACACIA_STAIRS
    BIRCH_STAIRS
    BRICK_STAIRS
    DARK_OAK_STAIRS
    IRON_TRAPDOOR
    JUNGLE_STAIRS
    NETHER_BRICK_STAIRS
    OAK_STAIRS
    QUARTZ_STAIRS
    RED_SANDSTONE_STAIRS
    SANDSTONE_STAIRS
    SPRUCE_STAIRS
    STONE_BRICK_STAIRS
    STONE_SLAB
    STONE_SLAB2
    STONE_STAIRS
    TRAPDOOR
    WOODEN_SLAB

POWER
    DAYLIGHT_DETECTOR
    DAYLIGHT_DETECTOR_INVERTED
    HEAVY_WEIGHTED_PRESSURE_PLATE
    LIGHT_WEIGHTED_PRESSURE_PLATE
    REDSTONE_WIRE

POWERED
    ACACIA_DOOR
    ACACIA_FENCE_GATE
    ACTIVATOR_RAIL
    BIRCH_DOOR
    BIRCH_FENCE_GATE
    DARK_OAK_DOOR
    DARK_OAK_FENCE_GATE
    DETECTOR_RAIL
    FENCE_GATE
    GOLDEN_RAIL
    IRON_DOOR
    JUNGLE_DOOR
    JUNGLE_FENCE_GATE
    LEVER
    POWERED_COMPARATOR
    SPRUCE_DOOR
    SPRUCE_FENCE_GATE
    STONE_BUTTON
    STONE_PRESSURE_PLATE
    TRIPWIRE
    TRIPWIRE_HOOK
    UNPOWERED_COMPARATOR
    WOODEN_BUTTON
    WOODEN_DOOR
    WOODEN_PRESSURE_PLATE

PRISMARINE_TYPE
    PRISMARINE

QUARTZ_TYPE
    QUARTZ_BLOCK

RAIL_DIRECTION
    ACTIVATOR_RAIL
    DETECTOR_RAIL
    GOLDEN_RAIL
    RAIL

SANDSTONE_TYPE
    RED_SANDSTONE
    SANDSTONE

SAND_TYPE
    SAND

SEAMLESS
    DOUBLE_STONE_SLAB
    DOUBLE_STONE_SLAB2

SHOULD_DROP
    SKULL

SHRUB_TYPE
    TALLGRASS

SLAB_TYPE
    DOUBLE_STONE_SLAB
    DOUBLE_STONE_SLAB2
    STONE_SLAB
    STONE_SLAB2

SNOWED
    DIRT
    GRASS
    MYCELIUM

STAIR_SHAPE
    ACACIA_STAIRS
    BIRCH_STAIRS
    BRICK_STAIRS
    DARK_OAK_STAIRS
    JUNGLE_STAIRS
    NETHER_BRICK_STAIRS
    OAK_STAIRS
    QUARTZ_STAIRS
    RED_SANDSTONE_STAIRS
    SANDSTONE_STAIRS
    SPRUCE_STAIRS
    STONE_BRICK_STAIRS
    STONE_STAIRS

STONE_TYPE
    STONE

SUSPENDED
    TRIPWIRE
    TRIPWIRE_HOOK

TREE_TYPE
    DOUBLE_WOODEN_SLAB
    LEAVES
    LEAVES2
    LOG
    LOG2
    PLANKS
    SAPLING
    WOODEN_SLAB

WALL_TYPE
    COBBLESTONE_WALL

Please notice that this is still not enough to confidently .offer those keys, because some blocks accept only some values from enum-like data. For example, Sign could not be set to UP Direction. I dunno how to generalize and print all this.

This could be easily modified to print keys for items or entities.

DISCLAIMER: This list could be incomplete or wrong, it’s generated from a plugin that I wrote very quickly without much double-checking. Also, it could be very quickly become obsolete, make sure to generate it yourself from plugin sources above.

P.S. I’m sorry if it’s already covered somewhere in the docs.

7 Likes

Afaik this is not covered on the docs. But if you get this list a bit more complete and checked, we’ll be more than happy to include it on the docs :wink: However maintaining it directly on the docs can be a pain fast, so i’d prefer to either link to this post or to somewhere else, to not have it directly on the docs.

Maybe sort it by block and list all possible values or type of value?
For ex. make a table that looks like this:

`` Block …| the corresponding keys | applicable value per key

block1 …| key1… | value type and range
… | key2 …| value type and range

``

I was bored and looked into that… quickly made a plugin that extracts some of that data into a mysql table to enable nice listing and filtering.

But i have a little problem:
I got all BlockTypes: Sponge.getRegistry().getAllOf(BlockType.class)
I got all Keys through reflection. Keys.class.getFields();
But didn’t found much information about the values those Keys can hold, because generic types are not available at runtime. I just can get the default values of the default block states and look at their class…

As an example the (unformatted) data i currently managed to extract looks like this:

  • minecraft:wooden_button
    • DIRECTION (org.spongepowered.common.data.value.mutable.SpongeValue => SpongeValue{key=Key{Value:Value, Query: Direction}, defaultValue=NONE, actualValue=NORTH})
    • POWERED (org.spongepowered.common.data.value.mutable.SpongeValue => SpongeValue{key=Key{Value:Value, Query: Powered}, defaultValue=false, actualValue=false})
  • minecraft:stained_hardened_clay
    • DYE_COLOR (org.spongepowered.common.data.value.mutable.SpongeValue => SpongeValue{key=Key{Value:Value, Query: DyeColor}, defaultValue=white, actualValue=white})

Do you have an idea how to get more information at runtime or do we have to parse source code or do all of that by hand?

You can get generic parameters via reflection.

https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#getGenericType--

1 Like

I tried to list all acceptable values:
[code] [list]
But there are three problems, making this list wrong:

  1. Some values depend on other values: for example, AXIS of lever depends of it’s DIRECTION - XZ for UP and DOWN and Y for all others. Getting and listing all that combinatorial stuff in a static table is not realistic.
  2. DISPENSER and DROPPER are listed as unable to be in UP and DOWN DIRECTION while they can be in that direction.
  3. Any RAIL_DIRECTION for any rail except for simple rail is returned as non-applicable, while it is applicable.
    …and I’m pretty sure it’s not the only problems. In case of 2 and 3, blockState.with on line 105 returns null for some reason. I’m stumped how to solve it, maybe I should have used Catalogues and Game Registry? Or my code has some other errors?

Edit: Hm, seems like I can’t set Dispenser to Direction.UP even manually, while SOUTH works. Same to manually setting RailDirections to rails. Can someone confirm this? Maybe this is a SpongeCommon bug, but I’m not sure. Maybe bug is from my side.

1 Like

@windy Oh … ok thats irritating… I’ve been so sure about that xD
You’ll never stop learning :smiley: thx