Can I use the chat function to activate command blocks? [duplicate]

I want to be able to detect if a certain word in chat is said like:

Console: Please say yes to be teleported or no to remain
Player1: yes
Player1 teleported to [insert random coordinates here]

Something that would monitor the chat for a certain word.


Unfortunately there is simply no way, currently, to test for what players say in chat.


There is however an alternative which is quite similar; using /tellraw along with the new (1.8 snapshots only so far) /trigger command. This would allow you to create a message in chat that looks something like this:

Would you like to be teleported? [Yes]

And would actually work when you clicked the [Yes] button.


First you'll need to create an objective (lets say, Objective1) with type "trigger". Then, you'll need to use /scoreboard players enable Player1 Objective1 to allow Player1 to use /trigger Objective1. You'll need to do this each time you ask the player if they want to teleport.

Then, to display the actual clickable message, run something like this in a command block:

/tellraw Player1 {"text":"Do you wish to be teleported? ","extra":[{"text":"[Yes]","clickEvent":{"action":"run_command","value":"/trigger Objective1 set 1"}}]}

This sets their Objective1 score to 1, and from there you can simply do something like /tp @a[score_Objective1_min=1] Coordinates.


Here's a site that's quite useful for generating tellraw commands; there is a lot you can do with them but the syntax can initially be very confusing: http://ezekielelin.com/minecraft/tellraw/


Even simpler than the above, again made with the very useful tool ezekielelin's tellraw generator If you put this into a command block all you need to do is change the [target player] and x, y, z and add/ remove the x and y rotation

tellraw @a {"text":"","extra":[{"text":"Do you want to be teleported?"},{"text":"[Yes]","clickEvent":{"action":"run_command","value":"/tp [target player] <x> <y> <z> [<y-rot> <x-rot>]"}}]}