Javascript discord.js错误“;“未定义通道”;
因此,我制作了一个静音命令,创建了一个静音角色,并将其提供给所提到的用户,目前我得到一个错误:通道未定义, 我不知道如何修复这个错误,我需要帮助Javascript discord.js错误“;“未定义通道”;,javascript,discord,discord.js,bots,Javascript,Discord,Discord.js,Bots,因此,我制作了一个静音命令,创建了一个静音角色,并将其提供给所提到的用户,目前我得到一个错误:通道未定义, 我不知道如何修复这个错误,我需要帮助 module.exports = class MuteCommand extends BaseCommand { constructor() { super('mute', 'moderation', []); } async run(client, message, args) { if (!message.member
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('MANAGE_ROLES')) return message.channel.send("I do not have Permission to mute members.");
let reason = args.slice(1).join(' ');
let roleName = 'Muted';
let muteRole = message.guild.roles.cache.find(x => x.name === roleName);
if (typeof muteRole === undefined) {
guild.roles.create({ data: { name: 'Muted', permissions: ['SEND_MESSAGES', 'ADD_REACTIONS'] } });
} else {
}
muteRole = message.guild.roles.cache.find(x => x.name === roleName);
channel.updateOverwrite(channel.guild.roles.muteRole, { SEND_MESSAGES: false });
const mentionedMember = message.mentions.member.first() || message.guild.members.cache.get(args[0]);
const muteEmbed = 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())
.setImage(message.mentionedMember.displayAvatarURL());
if (!args[0]) return message.channel.send('You must mention a user to mute.');
if (!mentionedMember) return message.channel.send('The user mentioned is not in the server.');
if (mentionedMember.user.id == message.author.id) return message.channel.send('You cannot mute yourself.');
if (mentionedMember.user.id == client.user.id) return message.channel.send('You cannot mute me smh.');
if (!reason) reason = 'No reason given.';
if (mentionedMember.roles.cache.has(muteRole.id)) return message.channel.send('This user has already been muted.');
if (message.member.roles.highest.position <= mentionedMember.roles.highest.position) return message.chanel.send('You cannot mute someone whos role is higher and/or the same as yours');
await mentionedMember.send(muteEmbed).catch(err => console.log(err));
await mentionedMember.roles.add(muteRole.id).catch(err => console.log(err).then(message.channel.send('There was an issue while muting the mentioned Member')));
}
}
module.exports=class MuteCommand扩展BaseCommand{
构造函数(){
超级(‘静音’、‘适度’、[]);
}
异步运行(客户端、消息、参数){
if(!message.member.hasPermission(“MUTE_MEMBERS”))返回message.channel.send(“您没有使用此命令的权限”);
如果(!message.guild.me.hasPermission('MANAGE_ROLES'))返回message.channel.send(“我没有使成员静音的权限”);
让reason=args.slice(1.join)(“”);
让roleName=‘静音’;
让muterrole=message.guild.roles.cache.find(x=>x.name==roleName);
if(类型muteOf role==未定义){
创建({data:{name:'Muted',权限:['SEND_MESSAGES','ADD_REACTIONS']});
}否则{
}
muterrole=message.guild.roles.cache.find(x=>x.name==roleName);
channel.updateOverwrite(channel.guild.roles.muteRole,{SEND_MESSAGES:false});
const-sindedMember=message.sindements.member.first()| | message.guild.members.cache.get(args[0]);
const muteEmbed=new Discord.MessageEmbed()
.setTitle('您已在'+message.guild.name'中被禁用)
.setDescription('静音原因:'+原因)
.setColor(“#6DCE75”)
.setTimestamp()文件
.setFooter(client.user.tag,client.user.displayAvatarURL())
.setImage(message.referencedMember.displayAvatarURL());
if(!args[0])返回message.channel.send('必须提及要禁用的用户');
if(!NidedMember)返回message.channel.send('提到的用户不在服务器中');
if(indegatedMember.user.id==message.author.id)返回message.channel.send('您不能使自己静音');
if(indicatedMember.user.id==client.user.id)返回message.channel.send('您不能使我的smh静音');
如果(!reason)原因='未给出原因';
if(referencedMember.roles.cache.has(muteRole.id))返回message.channel.send('此用户已被禁用');
if(message.member.roles.highest.position console.log(err));
等待提及的Member.roles.add(muteRole.id).catch(err=>console.log(err).then(message.channel.send('禁用提及的成员时出现问题'));
}
}
我相信在这段代码中可能会有比我想象的更多的错误,因为我对编码相当陌生。您使用了“通道”,但没有声明它。因此,它是未定义的
检查行“channel.updateOverwrite(channel.guild.roles.muterrole,{SEND_MESSAGES:false};”
请参考以下链接
Discord.JS文档:
堆栈溢出回答:
const { Client, Intents } = require('discord.js')
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('message', msg => {
if (msg.content === 'ping') {
msg.channel.send('pong');
});
});