【问题标题】:How to get a RichEmbed from the channel by field value?如何通过字段值从通道中获取 RichEmbed?
【发布时间】:2019-04-22 18:38:00
【问题描述】:

所以,我正在为我的 Discord 频道创建机器人。我根据请求创建了一个特殊系统。例如,用户发送请求以添加到他想要的聊天中。每个请求都与一个唯一的 ID 配对。请求形成并发送到主持人可以看到这些请求的服务通道。然后,一旦请求得到解决,版主会键入类似.resolveRequest <ID> 的内容,然后此请求会被复制并发布到'resolved requests' 频道。
我写了一些代码。

生成请求:

if (command === "join-chat") {
        const data = fs.readFileSync('./requestID.txt');

        let requestID = parseInt(data, 10);

        const emb = new Discord.RichEmbed()
            .setTitle('New request')
            .setDescription('Request to add to chat')
            .addField('Who?', `**User ${msg.author.tag}**`)
            .addField('Which chat?', `**Chat: ${args[0]}**`)
            .setFooter('Request\'s ID: ' + requestID)
            .setColor('#fffb3a');

        let chan = client.channels.get('567959560900313108');
        chan.send(emb);

        requestID++;

        fs.writeFileSync('./requestID.txt', requestID.toString(10));
    }

现在.resolveRequest <ID>

if (command === '.resolveRequest') {
        msg.channel.fetchMessages({limit : 100}) //getting last 100 messages
            .then((messages) => messages.forEach(element => { //for each message get an embed
                element.embeds.forEach(element => {
                    msg.channel.send(element.fields.find('value', args[0].toString(10))); //send a message containing the ID mentioned in 'args[0]' that was taken form the message
                })
            }));
    }

.join-chat <chat_name> 可以完美运行,但.resolveRequest <ID> 根本不起作用,甚至没有错误。
有什么办法解决吗?

【问题讨论】:

  • 您可能想看看如何使用.find。此外,最好使用某种数据库来存储与请求 ID 关联的消息 ID。与搜索给定请求 ID 的所有消息相反。您不应该在数据存储/检索时使用 Discord 消息。
  • @Anu6 实际上是 discord.js,现在已弃用(改用函数),.find('value', 'key')

标签: javascript discord discord.js


【解决方案1】:

不推荐使用.find('value', 'key'),而是使用.find(thing => thing.value == 'key')

你也应该使用数据库来存储东西,但你的代码实际上并没有被破坏,它只是你检查:command === '.resolveRequest',这意味着你需要运行..resolveRequest,就像在command变量中一样前缀被剪掉了,所以把它改成:command === 'resolveRequest'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多