首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不和谐按钮Discord.JS的建议命令

使用不和谐按钮Discord.JS的建议命令
EN

Stack Overflow用户
提问于 2021-12-22 21:07:22
回答 1查看 1.3K关注 0票数 0

因此,我试图在Discord.JS中使用不和谐按钮发出一个建议命令。当我运行命令embed和按钮发送时,但是每当我单击其中一个按钮时,无论是 updates 可能是还是 discord ,它都会编辑嵌入的内容,但它从不更新数字。我试过upvote_number ++upvote_number + 1,但是它不起作用。如果有人能帮我做这件事就太棒了。谢谢。

代码语言:javascript
复制
const Discord = require('discord.js');
const disbut = require('discord-buttons');
const { MessageActionRow, MessageButton } = require("discord-buttons");
const { Color, Prefix } = require("../../config.js");
  const { MessageEmbed } = require("discord.js");

  const disbutpages = require("discord-embeds-pages-buttons")
  const db = require('quick.db');


module.exports = {
  name: "suggest",
  aliases: [],
  description: "Suggestion Command",
  usage: "^suggest <suggestion>",
  run: async(client, message, args) => {

          const SayMessage = message.content.slice(8).trim();
    
    let upvote_number = 0
    let downvote_number = 0
    let maybe_number = 0
    
    const embed = new Discord.MessageEmbed()
    .setAuthor("Suggestion from: " + message.author.tag, message.author.displayAvatarURL({dynamic: true}))
    .setThumbnail(message.author.displayAvatarURL({dynamic: true}))
    .setDescription(SayMessage)
    .addField(`Votes`, `Upvote: **${upvote_number}**
    Downvote: **${downvote_number}**`) 
    
    
    let upvotebutton = new MessageButton()
    .setLabel(`Upvote`)
    .setID(`upvote`)
    .setEmoji(`⬆️`)
    .setStyle("green")
        
    let maybebutton = new MessageButton()
    .setLabel(`Maybe`)
    .setID(`maybe`)
    .setEmoji(``)
    .setStyle("blurple")
    
    let downvotebutton = new MessageButton()
    .setLabel(`Downvote`)
    .setID(`downvote`)
    .setEmoji(`⬇️`)
    .setStyle("red")
              
        
    let row = new MessageActionRow()
    .addComponents(upvotebutton, maybebutton, downvotebutton)
    

    const MESSAGE = await message.channel.send(embed, { components: [row] })

    const filter = ( button ) => button.clicker.user.id === message.author.id
    const collector = MESSAGE.createButtonCollector(filter, { time : 120000 });

    collector.on('collect', async (b) => {

      
        if(b.id == "upvote") {
          
await upvote_number + 1
          
           await MESSAGE.edit(embed, { components: [row] });
            await b.reply.defer()

        }
      
        if(b.id == "downvote") {
downvote_number + 1
            MESSAGE.edit(embed, { components: [row] });
            await b.reply.defer()

        }

        if(b.id == "maybe") {
            maybe_number + 1
            MESSAGE.edit(embed, { components: [row] });
            await b.reply.defer()

        }

    })

    collector.on('end', (b) => {
    })
    
    }
  };

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 21:51:21

您应该使用+=操作符来回答您的问题。顺便说一下,由于按钮收集器的工作方式,建议将在一段时间后超时,这可能会导致您在未来的一些问题,所以您可能希望切换到事件。我唯一关心的其他问题是,您使用的是d.js 12discord-buttons,它们都是不推荐的。由于d.js 12由于不和谐的api更新而很快失去了支持,我强烈建议切换到v13,因为它内置了按钮,还有许多其他新特性,比如菜单和斜杠命令。

代码语言:javascript
复制
let upvote_number = 0
let downvote_number = 0
let maybe_number = 0

/* ... */

collector.on('collect', async b => {
    if(b.id == "upvote") {
        upvote_number += 1
        updateEmbed()
        await MESSAGE.edit(embed, { components: [row] })
        await b.reply.defer()

    } else if (b.id == "downvote") {
        downvote_number += 1
        updateEmbed()
        await MESSAGE.edit(embed, { components: [row] })
        await b.reply.defer()

    } else if (b.id == "maybe") {
        maybe_number += 1
        updateEmbed()
        await MESSAGE.edit(embed, { components: [row] })
        await b.reply.defer()

    }
});

updateEmbed(){
    embed.fields.find(i=>i.name==='Votes').value = `Upvote: **${upvote_number}**
    Downvote: **${downvote_number}**`
}
代码语言:javascript
复制
tldr: Use += to set vars dynamically as well as update the embed object, and update to `discord.js@latest`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70455109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档