我在挑拨离间。js静音机器人,我有一些问题。
当有人使用命令时,我如何才能做到这一点!静音用户
将时间设置为30分钟
,原因设置为未指定原因
。但是如果他们使用!静音@用户
const userx = message.mentions.users.first();
if (!userx) {
message.channel.send("**USAGE: `!mute <User> <Time> <Reason>`");
return;
}
let time = args.slice(1).join(" ");
if (!time) time = "30min";
let reason = args.slice(2).join(" ");
if (!reason) reason = "No reason Specified";
我目前在理解
args.slice
如何工作方面遇到了问题。
如果您想让time
(第二个参数)和原因
(第二个或第三个参数)都是可选的,您需要检查一些事情:
时间
和原因
时间
原因
,所以砍掉第一个参数并加入其余的原因
要查看时间,可以使用第三方库,如ms
。
查看下面的工作代码:
const { Client, MessageMentions } = require('discord.js');
const ms = require('ms');
const client = new Client();
const prefix = '!';
client.on('message', (message) => {
if (message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'mute') {
const member = message.mentions.members.first();
// check if args[0] is a member
const firstArgIsMember =
args[0] && !!args[0].match(MessageMentions.USERS_PATTERN);
if (!member || !firstArgIsMember)
return message.channel.send('**USAGE: `!mute <User> <Time> <Reason>`**');
let reason = 'No reason specified';
let time = '30min';
// check if args[1] is time
let secondArgIsTime = !!args[1] && !!ms(args[1]);
if (secondArgIsTime) {
time = ms(ms(args[1]), { long: true });
if (args[2]) reason = args.slice(2).join(' ');
} else if (!!args[1]) {
reason = args.slice(1).join(' ');
}
return message.channel.send(
`${member} is muted for ${time}. Reason: ${reason}`,
);
}
});
因此,我编写了下面的代码,该代码将使给定通道中的所有成员静音: 但是它不起作用,我无法找出原因,因为我真的不知道setMute()函数是如何工作的。 编辑:我不确定如何访问每个成员并使其静音
我目前正在开发一个不和谐机器人,可以静音/聋哑语音聊天的一部分。它的工作,但我遇到了一些问题。当机器人试图让一大群玩家静音时,他们一个接一个地静音。当其中一个玩家的网络连接变慢时,他们下面的所有玩家都必须等到该玩家静音。这意味着一个静音/非静音可能需要5个玩家长达10秒的时间,这对于我使用它的目的来说太长了。 静音/隔音过程的简化代码: (其中“玩家”是一个包含GuildMember对象的数组)
我刚开始用node学习javascript。js和我正在尝试创建一个音乐机器人,我已经设置了命令处理程序和所有东西,但是,当我尝试运行play命令时,我一直会遇到这个错误 错误:未找到FFmpeg/avconv!在功能上。getInfo(C:\Users\johnd\OneDrive\Desktop\discordBot\node\u modules\prism media\src\core\FF
我想制作一个可分页队列命令,这样我就可以用反应控制整个队列。但是,每当我运行命令时,总是会出现错误。因此,我希望每当消息作者对⏹" 反应。这是我的密码: 但是,即使在机器人对停止反应作出反应时删除它。我从bot收到一条消息,说发生了一个错误。我无法理解为什么,也无法理解如何解决它。你能帮我吗?提前谢谢!
代码有效,但不是原因 这只会显示最后两个字的原因,我不知道为什么?我如何将其转为包含全部原因 (命令是'!静音@成员[时间][原因])
得到的包含我指定的6秒,后跟8或9秒的空音频。我的指挥有问题吗? 编辑: 表示并给我一个文件,从10秒开始有8秒的音频,然后有9或10秒的静默。 我的目标是通过REST API将这个6秒的文件流到前端。我希望用户能够正确下载此文件。理想情况下,它不会有不一致的元数据(14秒而不是6秒)。