我只是想知道是否有一种方法可以计算在Discord服务器中使用命令的次数如屏幕截图。 我是编码新手。我使用了discord.js 12.1.1 预先谢谢你!
upd。 例如, user1 拥抱 user2 。
用户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” ),并在嵌入程序中显示漫游器消息
答案 0 :(得分:2)
我想您只能拥有一些数据库,您可以在其中存储$( "#countries" ).autocomplete({
minLength: 0,
autoFocus: true,
appendTo: ".output-count",
position: { my: "left top", at: "left bottom", of: ".test" },
focus: function( event, ui ) {
$( "#project" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#countries" ).val( ui.item.label );
$( "#countries-id" ).val( ui.item.value );
$( "#countries-description" ).html( ui.item.label );
return false;
},
source: function(request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response($.grep(projects, function(value) {
value = value.label || value.value || value;
return matcher.test(value) || matcher.test(normalize(value));
}));
},
source: function(request, response) {
var results = $.ui.autocomplete.filter(projects, request.term);
response(results.slice(0, 10));
}
})
个用户和ID
个用户执行命令的次数。
每当有人使用命令时,您只需将该人values
的{strong>增加{strong} value
1>。
我认为这段代码
ID
可以简化为:
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
,您需要同时获取将它们保存在不同的变量中以保存它们的计数。
这意味着您将有 user1 个键入 let mentionedUser
的用户,您需要将其存储在!hug user2 "Hello"
= let author
中,对于{{ 1}} = user1
对于每个用户,您需要在数据库中具有2个不同的计数值(一个代表他们拥抱某人的次数,第二个他们被其他人拥抱了
我希望这会有所帮助。