因此,我创建了一个程序,该程序允许您使用一个变量来显示命令已执行了多少次,如下所示:
var timesRunned = 0
if(message.content.startsWith(`${prefix}command`)) {
timesRunned++
let myGuild = client.guilds.cache.get('Guild-ID')
let channel = myGuild.channels.cache.get('Voice-Channel-ID')
channel.setName('Commands Executed: ' + timesRunned)
.catch()
}
但是,当我运行命令超过3次之后,无论我运行该命令多少次,语音通道都不会改变,而是保持为“已执行的命令:2” 难道我做错了什么?这在主应用程序javascript文件中。该机器人本身具有足够的权限。
答案 0 :(得分:0)
好的,这是问题所在。似乎您正在将var timesRunned = 0
放入消息事件中。这意味着每次您运行命令时,此数字都将重置为0,这意味着它将永远保持为1。
如果将变量移到消息事件之外,它应该可以正常工作。
我会再给你一个提示,因为只要将其移到message事件之外,变量就会在每次重新启动时清除。
您可以做的是每次运行命令时获取通道,并查看通道中已有多少通道,然后添加1。您最终将得到如下结果:
var channel = client.channels.cache.get('someID');
var numberExecuted = parseInt(channel.name.split(':').trim());
channel.setName(`Commands Executed: ${numberExecuted + 1}`);
希望这会有所帮助。