say
A glorified/customized "say" command. Make sure to read the comments I put in the code so you know exactly what to edit and what to not touch. The command gives you the ability to: - Make the bot send a message for you and delete the command invocation. - Restrict the command usage to certain role(s). - Send a custom error message when the user didn't specify any argument. - Restrict the output of the command only in certain channel(s). Otherwise sends a custom error message with the list of available/unlocked channel(s) that the user can redirect the output to. - Use the output's variable in embed if wanted, for more customization. I was about to just make a regular echo command's alias called "say", but then wanted it a bit fancier. Note that this tag doesn't use "echo" at all. Tag made by Asty'. For questions/suggestions, don't DM me. Ask in the CBH server.
Content
42 lines{=(COMMENT):Role(s) that is/are required to use the command. LEAVE EMPTY if you want everyone to be able to use it.
Make sure to use the ROLE(S) ID so if you change their name, it will still work, as roles ID don't change.
SEPARATE each role ID with a comma and no space. ID1,ID2}
{=(reqr):}
{=(COMMENT):You can change the error message below that shows when the user didn't specify any argument. Leave it as it is if you don't mind the existing one.}
{=(noargs):I could say nothing, but that's already what I do when you don't use me.
Make sure to specify what you'd like me to say.
Usage: `[p]say [optional channel] <message>`}
{=(COMMENT):A list of the channels ID that you ONLY want to be able to be redirected to. Supports as many whitelisted channels as needed. That way, your users won't be able to redirect the message elsewhere than the channels you set in that variable, even though they can type there.
LEAVE EMPTY if you don't mind if the users redirect it in any channel they can Send Messages in.
If you do put channels ID, separate each with a space or a comma.}
{=(avchan):}
{=(COMMENT):Message that is displayed if the user tries to make the bot say something in a channel that's not in "avchan". IGNORE if you left "avchan" empty.}
{=(wrongchanm):You're not allowed to make me say something in {1}.
Available channels: <#{join(> <#):{avchan}}>}
{=(COMMENT):--------------------------------------------------------------------------
Don't change anything below, unless you know what you're doing. There should be nothing to edit there.}
{break({args}==):{noargs}}
{delete}
{=():}
{{if({reqr}!=):require:{reqr}}}
{=(COMMENT):Checks.}
{=(chanc):{if({in(#):{1}}==true):true|false}}
{=(avsmt):{if({avchan}!=):true|false}}
{=(clean1):{replace(<#,):{replace(>,):{1}}}}
{=(av1):{if({in({clean1}):{avchan}}==true):true|false}}
{=(COMMENT):Conditional channel redirection.}
{=(red1):redirect:{clean1}}
{{and({avsmt}==false|{chanc}==true):{red1}|{and({avsmt}==true|{av1}==true):{red1}}}}
{=(COMMENT):Conditional output management.}
{=(output):{and({avsmt}==false|{chanc}==true):{args(2+)}|{and({avsmt}==true|{av1}==true):{args(2+)}|{and({avsmt}==true|{av1}==false|{chanc}==true):{wrongchanm}|{args}}}}}
{=(COMMENT):Output variable call. Can be put in an embed description for example if wanted, to customize it a bit.}
{output}Raw JSON
{
"id": 120561,
"created_at": "2020-02-16T13:14:36.000Z",
"tag_name": "say",
"nsfw": false,
"owner_id": "149926720114262016",
"uses": 63,
"description": "A glorified/customized \"say\" command.\nMake sure to read the comments I put in the code so you know exactly what to edit and what to not touch.\n\nThe command gives you the ability to:\n- Make the bot send a message for you and delete the command invocation.\n- Restrict the command usage to certain role(s).\n- Send a custom error message when the user didn't specify any argument.\n- Restrict the output of the command only in certain channel(s). Otherwise sends a custom error message with the list of available/unlocked channel(s) that the user can redirect the output to.\n- Use the output's variable in embed if wanted, for more customization.\n\nI was about to just make a regular echo command's alias called \"say\", but then wanted it a bit fancier. Note that this tag doesn't use \"echo\" at all.\n\nTag made by Asty'. For questions/suggestions, don't DM me. Ask in the CBH server.",
"restricted": false,
"shared": true,
"deleted": false,
"safe": "unrated",
"hidden": false,
"guild_id": "314660900302749696",
"sharer": "149926720114262016",
"content": "{=(COMMENT):Role(s) that is/are required to use the command. LEAVE EMPTY if you want everyone to be able to use it.\nMake sure to use the ROLE(S) ID so if you change their name, it will still work, as roles ID don't change.\nSEPARATE each role ID with a comma and no space. ID1,ID2}\n{=(reqr):}\n\n{=(COMMENT):You can change the error message below that shows when the user didn't specify any argument. Leave it as it is if you don't mind the existing one.}\n{=(noargs):I could say nothing, but that's already what I do when you don't use me.\nMake sure to specify what you'd like me to say.\nUsage: `[p]say [optional channel] <message>`}\n\n{=(COMMENT):A list of the channels ID that you ONLY want to be able to be redirected to. Supports as many whitelisted channels as needed. That way, your users won't be able to redirect the message elsewhere than the channels you set in that variable, even though they can type there.\nLEAVE EMPTY if you don't mind if the users redirect it in any channel they can Send Messages in.\nIf you do put channels ID, separate each with a space or a comma.}\n{=(avchan):}\n\n{=(COMMENT):Message that is displayed if the user tries to make the bot say something in a channel that's not in \"avchan\". IGNORE if you left \"avchan\" empty.}\n{=(wrongchanm):You're not allowed to make me say something in {1}.\nAvailable channels: <#{join(> <#):{avchan}}>}\n\n{=(COMMENT):--------------------------------------------------------------------------\nDon't change anything below, unless you know what you're doing. There should be nothing to edit there.}\n{break({args}==):{noargs}}\n\n{delete}\n{=():}\n{{if({reqr}!=):require:{reqr}}}\n\n{=(COMMENT):Checks.}\n{=(chanc):{if({in(#):{1}}==true):true|false}}\n{=(avsmt):{if({avchan}!=):true|false}}\n{=(clean1):{replace(<#,):{replace(>,):{1}}}}\n{=(av1):{if({in({clean1}):{avchan}}==true):true|false}}\n\n{=(COMMENT):Conditional channel redirection.}\n{=(red1):redirect:{clean1}}\n{{and({avsmt}==false|{chanc}==true):{red1}|{and({avsmt}==true|{av1}==true):{red1}}}}\n\n{=(COMMENT):Conditional output management.}\n{=(output):{and({avsmt}==false|{chanc}==true):{args(2+)}|{and({avsmt}==true|{av1}==true):{args(2+)}|{and({avsmt}==true|{av1}==false|{chanc}==true):{wrongchanm}|{args}}}}}\n\n{=(COMMENT):Output variable call. Can be put in an embed description for example if wanted, to customize it a bit.}\n{output}",
"embed": "{}",
"last_fetched": "2026-10-20T20:56:49.990Z"
}