You're right, there is currently no way to test for the state of a door., and those event handlers (on door) are not currently mapped in 8-bit mode.
I'll see what I can do at my end, but it'll probably be a week before I can look at this.
You can work around this by manually coding a door, or possibly by using the door_operation function (if it's possible).
This should get you started if you want to take this path (remove the door from the barrier section).
// Boolean section booleans { is_door_locked : boolean "true"; is_door_open : boolean "false"; } // In on_command{} section : match "open door" { // Code your open door logic here } : match "close door" { // Code your close door logic here } : match "unlock door" { // Code your unlock door logic here } : match "lock door" { // Code your lock door logic here } // Direction that door is blocking : match "n _" { : if (is_at "your_location_id" && is_door_open == false) { // This manually blocks (without using the blocks {} section : print "The door is in your way"; : done; } }