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

问题描述 投票:0回答:1

因此,我创建了一个程序,该程序允许您使用一个变量来显示命令已执行了多少次,如下所示:

  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文件中。机器人本身具有足够的权限。

discord.js channels
1个回答
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}`);

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.