Command block runs even if other one does nothing

Solution 1:

The "conditional" setting of a command block provides ths behavior you are looking for. If you set a command-block to conditional within it's gui, it will only run if the command block behind it successfully ran it's last command. However, in your case, this may not be the best option. If you use the conditional setting in your adventure-mode machine, whenever any player gets put into adventure mode, every player would get the tellraw message, not just the one that got changed. Instead, I'd suggest switching the order of your commands, and adjusting them slightly. First, print your message to all players not in adventure mode (who aren't admin-tagged), then set the gamemode of all non-adventure mode (non admin) players to adventure. This will only print the message to those who will be changed.