所以我为我的不和谐机器人做了一个静音命令,它会发现是否存在一个“静音”角色,如果不存在,机器人会创建一个“静音”角色,然后把这个角色给提到的成员,目前当我运行命令时,它只给我一个如果命令写入错误,它应该发送的嵌入。
const BaseCommand = require('../../utils/structures/BaseCommand');
const Discord = require('discord.js');
module.exports = class MuteCommand extends BaseCommand {
constructor() {
super('mute', 'moderation', []);
}
async run(client, message, args) {
if(!message.member.hasPermission("MUTE_MEMBERS")) return message.channel.send("You do not have Permission to use this command.");
if(!message.guild.me.hasPermission("MUTE_MEMBERS")) return message.channel.send("I do not have Permissions to mute members.");
const Embedhelp = new Discord.MessageEmbed()
.setTitle('Mute Command')
.setColor('#6DCE75')
.setDescription('Use this command to Mute a member so that they cannot chat in text channels nor speak in voice channels')
.addFields(
{ name: '**Usage:**', value: '=mute (user) (time) (reason)'},
{ name: '**Example:**', value: '=mute @Michael stfu'},
{ name: '**Info**', value: 'You cannot mute yourself.\nYou cannot mute me.\nYou cannot mute members with a role higher than yours\nYou cannot mute members that have already been muted'}
)
.setFooter(client.user.tag, client.user.displayAvatarURL());
let role = 'Muted'
let muterole = message.guild.roles.cache.find(x => x.name === role);
if (typeof muterole === undefined) {
message.guild.roles.create({
data: {
name: 'muted',
color: '#ff0000',
permissions: {
SEND_MESSAGES: false,
ADD_REACTIONS: false,
SPEAK: false
}
},
reason: 'to mute people',
})
.catch(err => console.log(err).then(message.channel.send('Mute Role could not be created')))
}
const mentionedMember = message.mentions.members.first() || await message.guild.members.fetch(args[0]);
let reason = args.slice(1).join(" ");
const banEmbed = new Discord.MessageEmbed()
.setTitle('You have been Muted in '+message.guild.name)
.setDescription('Reason for Mute: '+reason)
.setColor('#6DCE75')
.setTimestamp()
.setFooter(client.user.tag, client.user.displayAvatarURL());
if (!reason) reason = 'No reason provided';
if (!args[0]) return message.channel.send(Embedhelp);
if (!mentionedMember) return message.channel.send(Embedhelp);
if (!mentionedMember.bannable) return message.channel.send(Embedhelp);
if (mentionedMember.user.id == message.author.id) return message.channel.send(Embedhelp);
if (muterole = undefined) return message.channel.send(Embedhelp);
if (mentionedMember.user.id == client.user.id) return message.channel.send(Embedhelp);
if (mentionedMember.roles.cache.has(muterole)) return message.channel.send(Embedhelp);
if (message.member.roles.highest.position <= mentionedMember.roles.highest.position) return message.channel.send(Embedhelp);
await mentionedMember.send(banEmbed).catch(err => console.log(err));
await mentionedMember.roles.add(muterole).catch(err => console.log(err).then(message.channel.send('There was an error while muting the member')))
}
}
我仍然无法找出问题所在以及原因,我非常想知道代码中的错误以及是否还有我不知道的错误。
我们可以看到您的代码:
let role = 'Muted'
let muterole = message.guild.roles.cache.find(x => x.name === role);
if (typeof muterole === undefined) {
message.guild.roles.create({
data: {
name: 'muted',
color: '#ff0000',
permissions: {
SEND_MESSAGES: false,
ADD_REACTIONS: false,
SPEAK: false
}
},
reason: 'to mute people',
})
.catch(err => console.log(err).then(message.channel.send('Mute Role could not be created')))
}
if (muterole = undefined) return message.channel.send(Embedhelp);
当muterole未定义时,这将停止运行。由于muterole无法创建,它将在运行到if muterole行时停止运行。若要解决此问题,在discord.js中创建角色时,仅当要将权限添加到角色时才需要权限标志。您不必在角色中指定您不想要的权限,因为如果您不将其标记出来,它会将所有权限标记为false。因此,我们可以用括号替换权限:
if (muterole === undefined) {
message.guild.roles.create({
data: {
name: 'muted',
color: '#ff0000',
permissions: []
},
reason: 'to mute people',
})
.catch(err => console.log(err).then(message.channel.send('Mute Role could not be created')))
}
问题内容: 最近,我一直在询问有关discord.py的大量问题,这就是其中之一。 有时候,有些人向您的不和谐服务器发送垃圾邮件,但踢或禁止它们似乎太苛刻了。我想到了一个命令,该命令将在给定的时间内删除通道上的所有新消息。 到目前为止,我的代码是: 我这一节中的代码是: 所有使用的变量都在bot的顶部预先定义。 我的问题是,该漫游器会删除其有权访问的所有频道中的所有新消息。我尝试放入该部分,但这使
我想制作一个可分页队列命令,这样我就可以用反应控制整个队列。但是,每当我运行命令时,总是会出现错误。因此,我希望每当消息作者对⏹" 反应。这是我的密码: 但是,即使在机器人对停止反应作出反应时删除它。我从bot收到一条消息,说发生了一个错误。我无法理解为什么,也无法理解如何解决它。你能帮我吗?提前谢谢!
如前所述。我正在尝试为我的Discord机器人创建一个临时静音命令。我遇到的问题是,它创建了一个静音的角色,但即使我更改了烫发,用户仍然可以编写消息。除此之外,我还收到了以下弃用警告: (节点:15956)弃用警告:集合#查找:改为传递函数
当用户使用一个新的不和谐斜杠命令时,我正试图从我们的不和谐机器人发送一个DM给他们。 代码在下面。Discord文档说`Interaction.Member应该是Discord GuildMember,但是,下面的代码给了我以下错误: TypeError:Interaction.Member.Send不是函数 我可以从data字段调用其他本地函数,但一直无法弄清楚如何将用户DM回来。我假设我做错了
我在做一个不和谐机器人,它会改变频道的特定名称 代码 .然后(newChannel= 而且我对不和谐也很陌生。js(一个月前开始)
我最近做了一个不和谐的机器人,有几个功能,这个机器人有一个先进的命令处理程序,我想知道如何做一个命令,在那里,机器人说什么你告诉它。 示例:“.say(消息)” bot以“(消息)”响应 这是我的命令处理程序 没有关于如何使用高级命令处理程序执行此操作的教程 现在的机器人是为了好玩,但我可能会使它成为适度。