Javascript 如何在Discord.js中发出静音命令
我正在用Javascript 如何在Discord.js中发出静音命令,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在用Discord.js制作一个机器人,想知道如何添加静音功能。我希望bot在一定时间内为您提供一个预定义的静音角色,然后将其删除。制作一个好的静音命令需要做几件事: 功能 功能 功能 在执行命令时,您还应该考虑许多其他功能,例如权限限制、确认消息等。但是,这些是最基本的功能 首先,您需要使角色静音 //按id获取角色: const mutedRole=message.guild.roles.cache.get(“”); //或者,如果您无法获取id: const mutedRole=
Discord.js
制作一个机器人,想知道如何添加静音功能。我希望bot在一定时间内为您提供一个预定义的静音角色,然后将其删除。制作一个好的静音
命令需要做几件事:
- 功能
- 功能
- 功能
首先,您需要使
角色静音
//按id获取角色:
const mutedRole=message.guild.roles.cache.get(“”);
//或者,如果您无法获取id:
const mutedRole=message.guild.roles.cache.find(
(角色)=>role.name===“静音”
);
//如果没有“静音”角色,请发送错误
if(!mutedRole)
返回message.channel.send('此服务器上没有静音角色');
然后,必须获取要禁用的用户的对象
//假设您希望命令提及目标,例如:`!静音@用户`
const target=message.indications.members.first();
现在,您可以为该用户提供Muted
角色
target.roles.add(互斥对象);
要在一段时间后取消角色,需要一个延迟函数。最好的功能是。在target.roles.add()行之后:
setTimeout(()=>{
target.roles.remove(mutedRole);//删除角色
}, )
获得指定的时间将是一件棘手的事情<代码>设置超时()
仅接受毫秒作为延迟值。你可以:
- 只要始终使用
ms
time参数触发命令即可
- 始终使用非
ms
的时间值(如秒、小时等)触发命令。然后,在脚本中将给定的时间解析为ms
- 使用一个名为。您将能够使用诸如
10s
、12h
、2d
等值
如果您选择第一个选项,那么您就基本上完成了命令!只需将上述代码段中的
替换为args[1]
,一切都应该正常
如果您选择了第二个选项,那么您需要做更多的工作。如果选择在几秒钟内静音,请将
替换为args[1]*1000
。如果选择小时,请将其替换为args[1]*60000
,以此类推
如果您选择了第三个选项,您可以使用ms
包解析时间,只需将
替换为ms(args[1])
要发出静音命令,您必须给播放器一个“静音”角色,然后使用.setTimeout()
将其删除。在没有权限的情况下创建角色,因此他们不能在任何频道中写入。如何向提到的玩家添加角色?你能给出代码或者教程吗?很抱歉我是discord机器人开发的新手。args[1]来自哪里?如何构造命令?