Discord 不和谐投票+;硬币[top.gg]

Discord 不和谐投票+;硬币[top.gg],discord,discord.js,Discord,Discord.js,我想将我的bot的“投票”命令与top.gg的api集成在一起,我希望类似于下面的命令。这个命令是我的机器人的“work”命令,这样你就有了一个基数,我想修改它,这样,当投票给我的机器人时,它会向投票的用户提供“6k硬币”。你能解释一下我怎么做吗?我将在下面留下我的工作命令代码,这样您就可以有一个想法了 async run({ message, args, prefix, author }, t) { if (!args[0]) { User.findOne({ idU: message.a

我想将我的bot的“投票”命令与top.gg的api集成在一起,我希望类似于下面的命令。这个命令是我的机器人的“work”命令,这样你就有了一个基数,我想修改它,这样,当投票给我的机器人时,它会向投票的用户提供“6k硬币”。你能解释一下我怎么做吗?我将在下面留下我的工作命令代码,这样您就可以有一个想法了

async run({ message, args, prefix, author }, t) {
if (!args[0]) {
  User.findOne({ idU: message.author.id }, async (err, user) => {
    let xp = Math.floor(Math.random() * 90) + 1;
    let work = user.work.cooldown;
    let cooldown = 1.44e7;
    let money = Math.ceil(user.work.level * 2 * user.work.coins + 400);
    let nextlevel = user.work.nextLevel * user.work.level;

    if (work !== null && cooldown - (Date.now() - work) > 0) {
      return message.quote(
        `<:daily:842204620977864734> Você deve esperar **${moment
          .duration(cooldown - (Date.now() - work))
          .format("h [hora(s)], m [minuto(s)] e s [segundos]")
          .replace("minsuto(s)", "minuto(s)")}** até poder trabalhar novamente`
      );
    } else {
      if (user.work.exp + xp > nextlevel) {
        message.quote(
          `Parabéns, sua empresa acaba de subir para o level **${
            user.work.level + 1
          }**.`
        );
        await User.findOneAndUpdate(
          { idU: message.author.id },
          {
            $set: {
              "work.cooldown": Date.now(),
              "work.exp": 0,
              coins: user.coins + money,
              "work.level": user.work.level + 1,
            },
          }
        );
      } else {
        message.quote(
          `<:work:846536054399303700><:coins_k:846487970612903976> Você trabalhou com sucesso e obteve **${money.toLocaleString()} coins** e **${xp} de XP**.`
        );
        await User.findOneAndUpdate(
          { idU: message.author.id },
          {
            $set: {
              "work.cooldown": Date.now(),
              "work.exp":
                user.work.exp + xp > nextlevel ? 0 : user.work.exp + xp,
              coins: user.coins + money,
            },
          }
        );
      }
    }
  });
  return;
}
异步运行({message,args,prefix,author},t){
如果(!args[0]){
User.findOne({idU:message.author.id},异步(err,User)=>{
设xp=Math.floor(Math.random()*90)+1;
让工作=user.work.cooldown;
让冷却时间=1.44e7;
让money=Math.ceil(user.work.level*2*user.work.coins+400);
设nextlevel=user.work.nextlevel*user.work.level;
if(work!==null&&cooldown-(Date.now()-work)>0){
返回消息.quote(
`Vocêdeve esperar**${时刻
.持续时间(冷却时间-(Date.now()-work))
.格式(“h[hora(s)],m[minuto(s)]e s[segundos]”)
.替换(“minsuto(s)”,“minuto(s)”)}**atépoder trabalhar Novatemente`
);
}否则{
如果(user.work.exp+xp>nextlevel){
message.quote(
`第二,在第o层的基础上,对地下建筑进行改造**${
user.work.level+1
}**.`
);
等待User.findOneAndUpdate(
{idU:message.author.id},
{
$set:{
“工作。冷却”:日期。现在(),
“work.exp”:0,
硬币:user.coins+货币,
“work.level”:user.work.level+1,
},
}
);
}否则{
message.quote(
`Vocêtrabalhou com成功获得**${money.tolocalstring()}硬币**e**${xp}de xp**`
);
等待User.findOneAndUpdate(
{idU:message.author.id},
{
$set:{
“工作。冷却”:日期。现在(),
“work.exp”:
user.work.exp+xp>nextlevel?0:user.work.exp+xp,
硬币:user.coins+货币,
},
}
);
}
}
});
返回;
}

您可以使用
https://top.gg/api/bots/:bot_id/check?userId=userid
端点

const fetch=require(“节点提取”);//导入节点提取模块
const botId=client.user.id;//获取客户端(bot)id
const uId=message.author.id;//获取作者id
常量url=`https://top.gg/api/bots/${botId}/check?userId=${uId}`;//api端点
获取(url,{method:“GET”,头:{Authorization:“your top.gg bot token”})
.然后((res)=>res.text())
。然后((json)=>{
var isVoted=JSON.parse(JSON).voted;
如果(ISNOTED==0){
returnmessage.channel.send(“您还没有投票”);
}
message.channel.send(“感谢您的投票”);
});
请注意,此代码并不完美

您可以从
https://top.gg/bot/your-bot-id/webhooks


来源:

通过更新帖子,我成功地获得了想要的结果,我将把下面的代码留给其他有同样问题的人

const botId = client.user.id; //
  const uId = message.author.id; // get the author id
  const url = `https://top.gg/api/bots/${botId}/check?userId=${uId}`; // api endpoint
  
  fetch(url, {
        method: "GET", headers: { Authorization: "top.gg token" },
    })
        .then((res) => res.text())
        .then((json) => {
          let isVoted = JSON.parse(json).voted;
    User.findOne({ idU: message.author.id }, async (err, user) => {

    //================= Imports =================//
    let cooldown = 4.68e7;
    let coins = Math.floor(Math.random() * 5000);
    let vote = user.vote;
    let atual = user.coins;
    let time = cooldown - (Date.now() - vote);

            if (isVoted !== null && cooldown - (Date.now() - vote) > 0) {

              return message.channel.send(`**Você já votou em mim hoje!**\n\nVolte em **${moment
                .duration(time)
                .format(
                  "h [Horas] m [Minutos] e s [Segundos]"
                )}**`);
          }

            message.channel.send(`**Vote em mim em:** https://top.gg/bot/762320527637217312/vote **e receba até 5K de coins de forma aleatória!**`);

            await User.findOneAndUpdate(
              { idU: message.author.id },
              { $set: { coins: coins + atual, vote: Date.now() } }
            );
          });
        });

感谢您的澄清,这是非常有用的!