Vamos a comenzar con el siguiente comando. Debe estar en un bloque de comando Repeat y en Always Active (Siempre Activo)
execute as @a[x=62,y=22,z=-991,dx=-4,dz=2] if items entity @s weapon.mainhand minecraft:gold_ingot run setblock 60 22 -991 minecraft:iron_door[open=true] replace
Cualquier jugador será detectado en estas coordenadas, cámbialas por las que tú quieras
Los valores dx y dz sirven para aumentar el área de detección en esos ejes
Es decir: x=1 y dx=2, la detección será desde 1 hasta 3 en la coordenada X
Después detectamos el ítem que el jugador sostiene en la mano principal
En este caso, elegimos el gold_ingot
Si el jugador sostiene este ítem dentro de esa área, el comando setblock se ejecutará, haciendo que la puerta se abra en la coordenada elegida
No hay sonido al ejecutar este comando correctamente, y para eso...
Coloca un bloque de comando Chain en la misma dirección del bloque Repeat y marca la opción Conditional y Always Active
Con los dos bloques juntos y configurados, coloca este comando en el bloque Chain
playsound minecraft:block.iron_door.open ambient @a 66 23 -991 1 1 1
Y podemos hacer lo contrario para cerrar la puerta, solo cambiando if por unless y colocando la coordenada en @s con el siguiente comando en otro bloque Repeat
execute as @a unless entity @s[x=62,y=22,z=-991,dx=-4,dz=2] if items entity @s weapon.mainhand minecraft:gold_ingot run setblock 60 22 -991 minecraft:iron_door[open=false] replace
Sonido cuando la puerta se cierre:
playsound minecraft:block.iron_door.close ambient @a 66 23 -991 1 1 1