discord.js 以代码块形式发送消息?

discord.js Send message as code block?

我正在尝试制作一个可以向我的频道发送消息的机器人,但是在代码块中,因为使用 RichEmbed 不起作用。

我查看了其他一些机器人,它们发送的消息是这样的

```
  Their title
    Body text blah blah
```

我想发送类似的东西,但是当我尝试发送时

var msg = ``` 
  Their Title
    Body text blah blah
```;

var msg = "```
  Their Title
    Body text blah blah
```";

这些都不行。

const Discord = require("discord.js");
const bot = new Discord.Client();
const TOKEN = "MY_TOKEN_ID";

bot.on("message", function(message) {

    console.log(message.content);

    if ( message.author.equals(bot.user)) 
        return;

    message.channel.send(msg);



});

bot.login(TOKEN);

我的代码在上面,有什么想法如何发送代码块吗?

你试过用这个吗?

var msg = "```Their Title\nBody text blah blah```";

\n是换行,写的时候基本就是回车了。 之后您可以将其作为普通短信发送。

function codeblock(
    language:
        | "asciidoc"
        | "autohotkey"
        | "bash"
        | "coffeescript"
        | "cpp"
        | "cs"
        | "css"
        | "diff"
        | "fix"
        | "glsl"
        | "ini"
        | "json"
        | "md"
        | "ml"
        | "prolog"
        | "py"
        | "tex"
        | "xl"
        | "xml",
    code: string,
) {
    return `\`\`\`${language}\n${code}\`\`\``;
}

用法

const msg = codeblock("css", `
#element {
    width: 500 px;
}
.button {
    width: 300 px;
}
`);

有点奇怪,但你也可以...

msg.channel.send( {
  content: "Please send this as a code block !",
  code: "js"
});

如果有人还在看,你可以这样做:

const { codeBlock } = require("@discordjs/builders");

<channel>.send(codeBlock("js", 'var foo = "bar";'));