Setblock when entering custom dimension

So I want to set the block the player is standing on when they enter a custom dimension. I have two ideas for a result I like but can't figure out how I would get either working without too much complexity...

Firstly I could have the player standing on the block they were holding when they entered the dimension. This would requrie 1 of the block they're holding to be removed from their inventory and then placed below their feet. I ran into a wall trying to get it to work properly with the offhand. Also I'd need to filter out any item which isn't a placeable block which is a fair bit of effort going through every item in the game (couldn't find any sort of grouping for placeable blocks)

Secondly I could have the player spawn on an obsidian block, the only thing is I wouldn't want the posibility of the player getting infinite obsidian from this dimension so the obsidian block they would spawn on would need to not drop anything, however other obsidian blocks/items would need to act as normal. Thats the issue I ran into with that one.

Would be open to any new ideas aswell

Continue to help post