不和统计添加旧的统计嵌入



所以问题是我正在制作CS:GO统计不和bot,每次你使用!stats + Steam ID时,它都会在嵌入中提供你的统计信息。第一次这样做时,它工作得很好,但之后每个使用该命令的人都会返回他的统计数据以及之前使用该命令的其他人的统计数据。示例

基本代码:

if (command === "stats") {
let stats = [];
if (stats) {
stats = [];


let steamID = args[0];
if (!steamID) return message.channel.send("Negative! You haven't added your Steam ID");
axios
.get(
`http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=${steamWebApiKey}&steamid=${steamID}&format=json`
)
.then(async data => {
let stats = data.data.playerstats.stats;
let totalKills = stats[0].value;
let totalDeaths = stats[1].value;
let hsKills = stats[25].value;
let totalMVP = stats[95].value;
let KD = totalKills / totalDeaths;
let HS = totalKills / hsKills * 100;
let Knifekills = stats[10].value;
embedStats
.setTitle("CSGO Stats")
.setColor("#FF0000")
.addField("Total Kills", totalKills, true)
.addField("Total Deaths", totalDeaths, true)
.addField("Total HeadShot Kills", hsKills, true)
.addField("MVPS", totalMVP, true)
.addField("KD", KD.toFixed(2), true)
.addField("Knife kills", Knifekills, true)
})
.catch(e => {
if (e.response.status == "500") {
message.channel.send("Negative! I couldn't find your stats, possible solution: set your game details as public on your Steam profile.");
}
});
axios
.get(
`http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=${steamWebApiKey}&steamids=${steamID}&format=json`
)
.then(async data => {
let user = data.data.response.players;
embedStats
.setThumbnail(user[0].avatarmedium)
.setDescription(`[${user[0].personaname}](${user[0].profileurl})`)
await message.channel.send(embedStats);
})
}
}

你的代码似乎没有一个最小的可重复的例子,因为我找不到embedStatsarg[0]的定义,但似乎使用addField()方法,你只是"插入";embedStats变量中的新信息,没有被"重置";你的不和用户的新请求。我建议你试着"免费">

在命令执行完成后创建一个变量,或者在所有addField()逻辑之前实例化一个新变量。

我已经找到了解决方案,我把我的统计变量"const embedStats = new Discord.MessageEmbed();"在代码的开头,而不是在命令本身,就是这么简单。

最新更新