我想做一个不和谐机器人。我打字的时候?静音@角色,我希望我的机器人创建一个静音角色,并删除服务器中每个通道中该角色的SEND_MESSAGES
和SPEAK
权限。我有它将添加角色的人,但到目前为止,我不能让它设置权限。我用的是discord.jsv12我的代码在下面。忍受我,因为我在javascript方面没有经验,我以前也没有在StackOverflow中发布问题。
if (!message.member.permissions.has('KICK_MEMBERS'))
return message.channel.send(
"*You don't have permission to use this command.*"
);
const role = message.guild.roles.cache.find((role) => role.name === 'Muted');
const member3 = message.guild.member(user);
if (!role) {
message.guild.roles
.create({
data: {
name: 'Muted',
color: 'GREY',
},
reason: 'Created role to mute member',
})
.then(console.log)
.catch(console.error);
}
if (!user) {
message.channel.send(`There's no person to mute tho`);
return;
}
if (member3.permissions.has('ADMINISTRATOR')) {
return message.channel.send(`I can't mute ${user} because he is staff`);
}
const roleMute = message.guild.roles.cache.find(
(role) => role.name === 'Muted'
);
message.guild.channels.cache.forEach((channel) => {
channel.updateOverwrite(channel.guild.roles.roleMute, {
SEND_MESSAGES: false,
SPEAK: false,
});
});
member3.roles.add(roleMute);
您的问题在以下范围内:
message.guild.channels.cache.forEach((channel) => {
channel.updateOverwrite(channel.guild.roles.roleMute, {
SEND_MESSAGES: false,
SPEAK: false,
});
});
您正试图访问角色静音
变量,就好像它是GuildRoleManager
对象的属性(它不是)。因为您刚刚将角色Mute
定义为单数变量:
const roleMute = message.guild.roles.cache.find(
(role) => role.name === 'Muted'
);
您所要做的就是将该变量作为参数提供。
message.guild.channels.cache.forEach((channel) => {
channel.updateOverwrite(roleMute, {
SEND_MESSAGES: false,
SPEAK: false,
});
});
你几乎说对了。尝试此操作以创建您的角色并覆盖权限。将这两种方法都放在中是一种很好的做法。。。捕获
块,以便在出现错误时进行处理。
try {
role = await message.guild.roles.create({
data: {
name: 'Muted',
color: '#514f48',
permissions: [],
},
});
message.guild.channels.cache.forEach(async (channel, id) => {
await channel.updateOverwrite(role, {
SEND_MESSAGES: false,
SPEAK: false,
ADD_REACTIONS: false,
SEND_TTS_MESSAGES: false,
ATTACH_FILES: false
})
});
} catch (e) {
console.log(e.stack);
}
完成后,您可以在代码中省略这一部分
message.guild.channels.cache.forEach((channel) => {...}
我正在为我朋友组的游戏服务器开发一个discord机器人。我想添加一个命令,使语音频道中的每个人都静音。我想这是可以工作,但它返回时不是一个函数,导致机器人崩溃。这是的工作原理是,它将服务器静音发送消息的成员,但显然不是我想要的整个频道。我对不和谐是全新的。js和文档有点混乱。谢谢你的时间!
我希望我的不和谐机器人加入语音频道。但是我遇到了一个问题,每当我想让它加入风投时,什么都不会发生——甚至没有错误。我尝试过SO/Git的其他解决方案,但没有一个适合我(下面有一个)。 编辑:解决了!问题是:没有不和。已安装py[语音]模块。解决方案:
我正在努力让我的机器人进入语音频道,我已经阅读了这里的很多帖子,但没有一篇能够解决我的问题,我正在尝试让我的机器人复制yt视频的声音,但它甚至没有加入,我不知道该怎么办,下面是代码:
我找不到解决办法,所以我来了。我制造了一个不和谐的机器人。py rewrite为我的discord服务器编写,我想实现一个功能,当用户加入语音频道时,我的机器人会说些什么。 我甚至不能让机器人加入语音聊天,因为它会给出所有可能的错误。提前谢谢。 这就是我所尝试的: 还有这个 他们都给出了这个错误
我正在尝试让我的JDA discord bot删除文本频道中的所有消息,目前我使用的代码效率极低,偶尔有效,有时无效。代码: 我知道一个事实,我正在调用函数,我知道一个事实,正在传递的文本通道是正确的。请帮我同样的忙。
当我在discord内部运行以下脚本(“cmd中的node musicbot.js”)和“!play ytlink”时,bot加入语音通道,并在控制台中记录命令和链接。然而,音乐并没有开始播放。我安装了ffmpeg、ytdl核心和discord。js。 有人能帮我吗?我不知道是哪一部分搞砸了。