【问题标题】:How to track the number of command uses and mentions by the user?如何跟踪用户使用和提及的命令数量?
【发布时间】:2020-10-03 06:58:28
【问题描述】:

我只是想知道是否有一种方法可以计算我的 Discord 服务器中使用了多少次命令就像屏幕截图上的那样。 我是编码新手。我使用了 discord.js 12.1.1 提前谢谢!

enter image description here

更新。 例如,user1 拥抱 user2

User1 拥抱 N

User2 已被拥抱 N

我如何计算消息作者拥抱用户的次数?

我尝试将计数插入到我完成的代码中,但它只考虑了提到的用户。

即使我没有提及任何人,机器人也会认为我提及自己..

我尝试了不同的方法,但我的大脑已经爆炸了。2天我无法理解我的错误

我将let member 更改为不同的值,但它只能同时正常工作.. -_-

别笑了,我试试(

const Discord = module.require("discord.js");
const fs = require("fs");
const config = require(`../config.json`)
const hugs = require('../db.json');


module.exports.run = async (bot, message, args) => {
 let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
    let msg =
      member === message.member
        ? `${message.author} hugs everyone`
        : `${message.author} hugged ${member}`;
    let gif = [
      "IRUb7GTCaPU8E",
      "u9BxQbM5bxvwY",
      "3EJsCqoEiq6n6", 
    ];
    let selected = gif[Math.floor(Math.random() * gif.length)];

    let id = member.id || message.author.id
    let hugCount = hugs[id];

    if (!hugCount) {
      hugs[id] = 1;

    let embed = new Discord.MessageEmbed() 
    .setDescription(`${msg}`)
      .setColor("RANDOM")
      .setFooter(`${member.user.username} hugged for the first time.`) 
      .setImage(`https://media.giphy.com/media/${selected}/giphy.gif`);


      message.channel.send(embed);

    } else {
      hugCount = (hugs[id] = hugs[id] + 1);

      let embed = new Discord.MessageEmbed() 
      .setDescription(`**${msg}**`)
        .setColor("RANDOM")
        .setFooter(`${config.prefix}${module.exports.help.name} | ${member.user.username} has been hugged ${hugCount} times.`) 
        .setImage(`https://media.giphy.com/media/${selected}/giphy.gif`);

        message.channel.send(embed);
      return message.delete()
  }

fs.writeFileSync(
  "./db.json",
  JSON.stringify(hugs),
  (err) => console.log(err)
);

}

module.exports.help = {
  name: "hugg"
};

如果可能,请帮助我 - 如何让用户写一条消息(例如,!hug user2 "hello")并让机器人在嵌入中显示消息

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    我猜你可以只拥有一些数据库,你可以在其中存储ID 的用户和values 有人执行你命令的次数。

    每次有人使用命令时,您只需为该人ID增加 value 1。

    编辑#1

    我认为这段代码

     hugCount = (hugs[id] = hugs[id] + 1);
    

    可以简化为:

     hugCount = (hugs[id] + 1);
    

    我认为问题就在这里...基本上你必须知道你需要找谁。在这里你会得到很多你无法确定里面是什么的东西。

    let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
    

    所以我建议将其更改为不同的变量...例如 let authorlet mentionedUser 并且您需要将它们都放在不同的变量中保存他们的两个计数。

    这意味着您将有 user1 键入 !hug user2 "Hello" 您需要存储在 let author = user1let mentionedUser = user2 对于每个用户,您需要在数据库中有 2 个不同的计数值(一个表示他们拥抱某人的次数,second表示他们拥抱某人的次数他们已经被其他人拥抱了)

    我希望这会有所帮助。

    【讨论】:

    • 但是如何计算消息中提到的?
    • 只取消息中提到的人,并在他的ID 中增加一些价值。我说得对吗,您希望某人被提及多少次?
    • 是的,现在我将展示我玩过的东西。我很愚蠢 xD,因此我看不到我的错误
    • @pinkmorning 我编辑了我的答案。希望对你有帮助
    • 天哪,太感谢你了,你澄清了我心中的黑暗。我现在会尝试做所有事情,希望能成功)现在我只有一个问题,我可以以手动创建的文件的形式使用数据库还是安装某种模块更好?
    猜你喜欢
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多