我只是想知道是否有办法计算命令在我的 Discord 服务器中使用了多少次,就像屏幕截图一样。 我是编码新手。我使用了不和谐.js 12.1.1 提前谢谢你!
在此处输入图像描述
上。 例如,用户1拥抱用户 2。
用户 1拥抱N次
用户 2已被拥抱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">(,机器人在嵌入中显示消息
我想你可以有一些数据库,你可以在其中存储ID
的用户,并values
有人执行你的命令的次数。
每次有人使用命令时,您只需将那个人的value
增加ID
增加一。
编辑 #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 author
和let mentionedUser
,您需要将它们都放在不同的变量中以保存它们的计数。
这意味着您将拥有user1,他键入您需要存储在let author
=user1
中的!hug user2 "Hello"
并且let mentionedUser
=user2
对于每个用户,您需要在数据库中有 2 个不同的计数值(一个表示他们拥抱某人的次数,第二个表示他们被其他人拥抱了多少次(
我希望这会有所帮助。
我在 Heroku 旁边使用 Redis 来跟踪一个命令被使用了多少次,
我let member = message.mentions.members.first(( ||试图将计数插入到我完成的代码中,但它只考虑了提到的用户。
message.guild.members.cache.get(args[0]( || message.member;
您尝试在此处检索谁的 ID?
即使我没有提到任何人,机器人也认为我提到了我自己。 let member = message.mentions.members.first(( ||message.guild.members.cache.get(args[0]( ||消息成员;
message.member是即使您不提及任何人,它也会获得您的ID的原因。
如何让用户编写消息(例如,!hug user2"hello"(和机器人在嵌入中显示消息
你的意思是应该嵌入"你好"吗?