Is there a way to do custom /say commands?

I've looked it up, and apparently there is not a way to. But, there's an NPC in my map where I have it "talking" with a /say command. So, is there a way to make it say something like [(NPC Name)] (Text) without mods?


A follow up on @Eisler485's answer:

The difference between /say and /tellraw when trying to do the same output:

<code>/say</code>

<code>/tellraw</code>

Remember that /tellraw has a lot of customisations. Just use data tags like "color":"dark_red" or "bold":"true".


Try

/tellraw @a {text:"Insert Text Here"}

If you run this command the @a runs the command for every player and they will all see the message "Insert Text Here" in the chat.

You can edit the text color by using this command

/tellraw @a {text:"This Text Is Now Green",color:green}

Now the text "This Text Is Now Green" will show up on every players' Screen in a green text.

You can make the text as long as you want it.


Rename the command block in an anvil.

If you name it "Bob" and give it the command /say "hello" it should come up as

[Bob] Hello