【问题标题】:JavaScript ReferenceError: member is not definedJavaScript ReferenceError:未定义成员
【发布时间】:2021-11-26 15:51:25
【问题描述】:

所以我试图在我的服务器上编写一个实用程序机器人,但由于某种原因,这个错误弹出了“参考错误”

ReferenceError: 成员未定义

每次我解决一个问题时,都会弹出另一个问题。我知道你们会要求我保存它(会员),但我已经保存了 7 次?

这是我当前的代码:

const { Discord } = require("discord.js");

exports.run = async(client, msg, args) => {
    if(!msg.member.hasPermission('BAN_MEMBERS')) return msg.reply('You do not have permission to use this command!')

    var user = msg.mentions.user.first() || msg.guild.members.cache.get(args[0]);
    if(!user) return msg.reply('You did not mention a user for me to punish!')
    var member;
    try {
        member = await msg.guild.members.fetch(user)
    } catch(err) {
        member = null;
    }
    if(member){
        if(member.hasPermission('MANAGE_MESSAGES')) return msg.reply('You cannot ban a fellow staff member!');
    }

    var reason = args.splice(1).join(' ');
    if(!reason) return msg.reply('Please make sure to specify a reason for me to punish this user!')
    var channel = msg.guild.channels.cache.find(c => c.name === 'mod-logs');
    var verify = msg.guild.emojis.cache.find(emoji => emoji.name === 'white_check_mark')
    var log = new Discord.MessageEmbed()
    .setColor('0xecd776')
    .setDescription(`${verify} ${user} has been kicked by ${msg.author} for "**${reason}**"`)
    channel.send(logs);

    var userLog = new Discord.MessageEmbed()
    .setColor('0xecd776')
    .setDescription(`You have been banned from the server! Thats sadge. You can appeal the ban by message a staff member!`)
    try {
        await user.send(userLog);
    } catch(err) {
        console.warn(err);
    }
    

msg.guild.members.ban(user);
var confir = new Discord.MessageEmbed()
.setColor('0xecd776')
.setDescription(`${verify} ${user} has been banned by ${msg.author} for "**${reason}**"`)
msg.channel.send(confir);
msg.delete();

}

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-html -->

    const { Discord } = require("discord.js");

    exports.run = async(client, msg, args) => {
        if(!msg.member.hasPermission('BAN_MEMBERS')) return msg.reply('You do not have permission to use this command!')

        var user = msg.mentions.user.first() || msg.guild.members.cache.get(args[0]);
        if(!user) return msg.reply('You did not mention a user for me to punish!')
        var member;
        try {
            member = await msg.guild.members.fetch(user)
        } catch(err) {
            member = null;
        }
        if(member){
            if(member.hasPermission('MANAGE_MESSAGES')) return msg.reply('You cannot ban a fellow staff member!');
        }

        var reason = args.splice(1).join(' ');
        if(!reason) return msg.reply('Please make sure to specify a reason for me to punish this user!')
        var channel = msg.guild.channels.cache.find(c => c.name === 'mod-logs');
        var verify = msg.guild.emojis.cache.find(emoji => emoji.name === 'white_check_mark')
        var log = new Discord.MessageEmbed()
        .setColor('0xecd776')
        .setDescription(`${verify} ${user} has been kicked by ${msg.author} for "**${reason}**"`)
        channel.send(logs);

        var userLog = new Discord.MessageEmbed()
        .setColor('0xecd776')
        .setDescription(`You have been banned from the server! Thats sadge. You can appeal the ban by message a staff member!`)
        try {
            await user.send(userLog);
        } catch(err) {
            console.warn(err);
        }
        

    msg.guild.members.ban(user);
    var confir = new Discord.MessageEmbed()
    .setColor('0xecd776')
    .setDescription(`${verify} ${user} has been banned by ${msg.author} for "**${reason}**"`)
    msg.channel.send(confir);
    msg.delete();

    }

【问题讨论】:

    标签: javascript discord discord.js bots member


    【解决方案1】:

    你可以试试这个代码:

    const CUser = message.mentions.users.first() || message.guild.members.cache.get(args[0]) || message.guild.member(message.author);
            let member
        if (message.mentions.members.first()) {
        member = CUser
        } else {
        member = CUser.user
        }
    

    而不是你的:

        var user = msg.mentions.user.first() || msg.guild.members.cache.get(args[0]);
        if(!user) return msg.reply('You did not mention a user for me to punish!')
        var member;
        try {
            member = await msg.guild.members.fetch(user)
        } catch(err) {
            member = null;
        }
    

    请注意此代码是在 discord.js 版本 12.5.3 上编写的

    【讨论】:

    • 感谢您的帮助,但现在它说 SyntaxError: await 仅在异步函数和模块的顶层主体中有效,即使我的函数是异步的
    猜你喜欢
    • 2020-09-18
    • 2020-09-19
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多