javascript - 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)
},
};
解决方案
如果您没有从 kick 命令脚本中编辑任何内容,而是按原样将其复制到此处,那么您将缺少 Discord 类的 require 语句。
尝试const Discord = require('discord.js');
像在第一个代码块中那样导入它。
推荐阅读
- c# - 代码重构以删除重复代码
- c# - Swig:如何在回调中获取字符串
- java - 如何将两个表记录映射到java对象列表
- go - VS Code Go 扩展由于无法更改 go.mod 而无法加载?
- c - 为什么用浮点数除以整数会导致浮点数?
- asp.net-core - 如何在 Azure AD 中使用自定义 IUserRoleStore
- rust - 当忽略某些值时,如何在迭代器实现中避免不必要的昂贵操作?
- javascript - Apache Synapse 中没有 setPayloadJSON()
- python-3.x - 按年重设的累计金额
- bash - 如何在 '< 之间调用代码
我想使用“调用系统”在“<<EOF ... EOF”之间调用代码以使用gnuplot(没有file.plt)进行绘图。以下是我希望与“呼叫系统”一起使用的代码的一般示例:
gnuplot -persist <<EOF set title "graf