我正在尝试设置角色命令和设置频道命令。我试图这样做,但它不起作用

Posted

技术标签:

【中文标题】我正在尝试设置角色命令和设置频道命令。我试图这样做,但它不起作用【英文标题】:I'm trying to make a set role command and a set channel command. I've attempted to do it but it doesn't work 【发布时间】:2021-09-07 04:51:50 【问题描述】:

所以发生的事情是,我正在尝试为日志创建一个设置角色/设置频道命令和一个静音角色以使人们静音,我想知道如何做到这一点。我查看了文档和其他 *** 线程,但仍然无法正常工作。

                if(!args[1]) return message.channel.send('Please specify a arg')
                let roleName = args.slice(2).join(" ");
                var role = message.guild.roles.cache.find(role => role.name === roleName)
                if(!role)
                    message.channel.send("Thats not a role!")
                
                if(role)
                await GuildConfigSchema.update( Guild: message.guild.id ,  MuteRole: role )
                message.channel.send(`The mute role is now $role`)

【问题讨论】:

什么不起作用?是否有错误,是只执行了一部分还是根本不执行,等等。 当我 ping 它并正常执行并出于某种原因将角色添加到数据库时,它不会给出错误它发送一条消息说它不是角色。 尝试 console.logging roleName 以确保它是您所期望的,因为您没有在您提供的代码中显示您是如何定义 args 的。 如果你提到它,那不就是吗?你做到了,所以你似乎必须手动输入角色的名称 有什么办法吗? 【参考方案1】:

首先你可以使用 if(role) else 类似的东西,然后在你说的 cmets 上 当我 ping 它时因为你使用 role.name 你的代码 ping 将不起作用如果你想通过 ping 来获取角色,请使用 let role = message.mentions.roles.first();

【讨论】:

以上是关于我正在尝试设置角色命令和设置频道命令。我试图这样做,但它不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Discord bot setRole 命令只能随机工作

获取频道并循环播放 discord.net

在 discord.py 中显示设置前缀的命令(重写)

用于显示注册表项的高级审核设置的 Windows 命令

为多个服务器设置 DiscordBot 的频道 ID

动态创建一个对象