Dans une clock rapide, tu peux faire en sorte que quand il a un bloc de redstone/gravier/briquet dans son inventaire, sa le supprime et lui give le bloc/item avec le bon data.
Ou alors, tu fait la gamerule pour que les blocks ne droppent pas, tu créer un objectif qui met le score un 1 quand on mine un bloc de redstone(/scoreboard objectives add mineblockredstone stat.mineBlock.minecraft.redstone_block) et tu lui give le block avec les bon datas (et tu reset le score bien sûr).
A toi de choisir ce qui te semble le mieux.
EDIT: j'ai réalisé la seconde solution en 2 commands blocks :
scoreboard players set @p minestone 0
execute @p[score_minestone_min=1] ~ ~ ~ /give @p stone 1 0 {CanPlaceOn:["minecraft:redstone_block"]}
J'ai fait ceci avant :
/gamerule doTileDrop false
/scoreboard objectives add minestone stat.mineBlock.minecraft.stone
Voila comment faire pour la 2ième solution.