Discord.js 频道名称重命名停止工作,格式正确但不知道为什么

Discord.js channel name renaming stopped working, Correct format but don't know why

所以我创建了一个程序,它允许你有一个变量来显示一个命令被执行了多少次,它看起来是这样的:

  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次后,无论我运行命令多少次,语音通道甚至都没有改变,它只是保持"Commands Executed: 2" 难道我做错了什么?这是在主应用 javascript 文件中。机器人本身有足够的权限。

好的,问题来了。您似乎将 var timesRunned = 0 放入消息事件中。这意味着每次你 运行 命令时,这个数字都会重置为 0,这意味着它永远保持在 1。

如果将变量移到消息事件之外,它应该可以正常工作。

我再给你一个提示,因为只需将它移到消息事件之外,每次重新启动时变量都会被清除。

您可以做的是在每次命令为 运行 时获取频道,并查看频道中已经有多少人,然后加 1。您最终会得到这样的结果:

var channel = client.channels.cache.get('someID');
var numberExecuted = parseInt(channel.name.split(':').trim());
channel.setName(`Commands Executed: ${numberExecuted + 1}`);

希望对您有所帮助。