【问题标题】:Omitting setDescription results in crash省略 setDescription 会导致崩溃
【发布时间】:2020-06-21 08:29:32
【问题描述】:

我正在尝试通过仅在正文中具有字段的 Discord 机器人创建一个 EmbedMessage,并且我想尽可能省略描述部分,或者至少能够在setDescription() 内的字符串。有没有人有办法让 EmbedMessage 只包含文本字段?

我目前使用的代码:

let botMessageEmbed = new Discord.MessageEmbed()
          .setColor('#0099ff')
          .setTitle('Mod Help Wanted!')
          .setDescription(userMessage)     //Possible to add markdown, or omit altogether?
          .addField('User in Distress', message.author.username)
          .setTimestamp()
          .setFooter('Message ID: '+message.id);

使用RichEmbed 代替MessageEmbed 无效。该应用程序适用于当前代码,但尝试这样做

setDescription('## Problem\n' + userMessage)

或替代

addField('Problem', userMessage)

代替setDescription() 使客户端崩溃。

关于如何实现我想要的输出的任何指针?

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    Discord's Markdown 不支持标题。您可以改为加粗:

    .setDescription('**Problem**' + userMessage)
    

    我无法通过以下代码使用addField 重现崩溃:

    const {Client, MessageEmbed} = require('discord.js')
    
    // my bot's token is in .env
    require('dotenv').config()
    
    const client = new Client()
    
    client.on('message', ({author, channel, content, id}) => {
      if (author.bot) return
    
      const embed = new MessageEmbed()
        .setColor('#0099ff')
        .setTitle('Mod Help Wanted!')
        .addField('Problem', content)
        .addField('User in Distress', author.username)
        .setTimestamp()
        .setFooter(`Message ID: ${id}`)
      channel.send(embed)
    })
    
    client.login(process.env.TOKEN)
    

    【讨论】:

    • 我尝试省略setDescription,同时在我的代码中将let 更改为const,它成功了。感谢您的帮助!
    猜你喜欢
    • 2016-12-14
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2015-10-22
    • 2011-04-06
    • 2021-06-28
    • 2016-01-25
    相关资源
    最近更新 更多