首页 > 解决方案 > ReferenceError:未定义不和谐;就在想踢的时候

问题描述

我不能用我的不和谐机器人踢任何人,因为这发生了,我知道为什么。这是我在控制台中得到的:

ReferenceError:未定义不和谐
    在 Object.execute (C:\Users\alber\OneDrive\Escritorio\Bot discord\commands\kick.js:17:21)
    在客户端。(C:\Users\alber\OneDrive\Escritorio\Bot discord\index.js:34:15)
    在 Client.emit (events.js:310:20)
    在 MessageCreateAction.handle (C:\Users\alber\OneDrive\Escritorio\Bot discord\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
ebsocket\handlers\MESSAGE_CREATE.js:4:32)
    在 WebSocketManager.handlePacket (C:\Users\alber\OneDrive\Escritorio\Bot discord\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
    在 WebSocketShard.onPacket (C:\Users\alber\OneDrive\Escritorio\Bot discord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
    在 WebSocketShard.onMessage (C:\Users\alber\OneDrive\Escritorio\Bot discord\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
    在 WebSocket.onMessage (C:\Users\alber\OneDrive\Escritorio\Bot discord\node_modules\ws\lib\event-target.js:120:16)
    在 WebSocket.emit (events.js:310:20)

这是代码的一部分:

const fs = require('fs');
const Discord = require('discord.js')
const { prefix, token } = require('./config.json');

const client = new Discord.Client();
client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
}

这是无效的踢命令(它只在应该禁止某人时才中断,其余的有效):

module.exports = {
    name: 'kick',
    description: 'kicks the mentioned user',
    execute(client, message, args){
    var kickUser = message.guild.member(message.mentions.users.first() || message.guild.members.fetch(args[0]))    
    if(!kickUser){
        return message.reply('¿no tageas a nadie? Kickear paraguayos es malardo.')
    }
    var kickReason = args.join(' ').slice(22)
    if(!message.member.hasPermission(['KICK_MEMBERS'])){
        return message.reply('enséñame los permisos que los vea yo que parece que no tienes.s')
    }
    if(kickUser.hasPermission(['KICK_MEMBERS'])){
        return message.reply('no puedes echar a alguien con permisos de admin.')
    }

    var kickEmbed = new Discord.RichEmbed()    
    .setDescription('Kick')
    .setColor('#35d4a7')
    .addField('Server', guild.name)
    .addField('Kickeado por', `@${message.author.id}`)
    .addField('A las', message.createdTimestamp)
    .addField('Motivo', kickReason)

    message.guild.member(kickUser).kick(kickReason)
    kickUser.send(kickEmbed)
    },
};

标签: javascriptdiscord.js

解决方案


如果您没有从 kick 命令脚本中编辑任何内容,而是按原样将其复制到此处,那么您将缺少 Discord 类的 require 语句。

尝试const Discord = require('discord.js');像在第一个代码块中那样导入它。


推荐阅读