Javascript 无法读取属性';运行';未定义的不一致js
有一个帖子,但它似乎并没有解决我的问题。我正在编写一个简单的discord.js程序,当我创建一个名为forceverify的新命令时,它给出了一个错误“无法读取未定义的'run'属性” main.js:Javascript 无法读取属性';运行';未定义的不一致js,javascript,discord.js,Javascript,Discord.js,有一个帖子,但它似乎并没有解决我的问题。我正在编写一个简单的discord.js程序,当我创建一个名为forceverify的新命令时,它给出了一个错误“无法读取未定义的'run'属性” main.js: const Discord = require('discord.js'); const client = new Discord.Client(); let fetch = require('node-fetch'); const prefix = '!' const fs = r
const Discord = require('discord.js');
const client = new Discord.Client();
let fetch = require('node-fetch');
const prefix = '!'
const fs = require('fs');
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);
}
client.once('ready', () => {
console.log('Loaded');
})
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'help') {
client.commands.get('help').execute(message, args, Discord);
} else if (command === 'verify') {
client.commands.get('verify').execute(message, args, Discord);
} else if (command === 'forceverify') {
client.commands.get('forceverify').run(message, args, Discord);
}
})
client.on('guildMemberAdd', member => {
const welcomeChannel = client.channels.cache.find(ch => ch.name === 'member-log');
if (!welcomeChannel) {
console.log('No channel was found');
}
welcomeChannel.send(`Welcome!`);
client.login('The token is there');
forceverify.js
const { DiscordAPIError } = require("discord.js");
const fetch = require("node-fetch");
const packageData = require("../package.json");
module.exports = {
name: 'verify',
description: "Verify yourself to get access to the server",
execute(message, args, Discord) {
if (message.member.roles.cache.has('805210755800367104')) {
const clientUser = client.users.fetch(args[1]);
let myRole = message.guild.roles.cache.get("805531649131151390");
fetch(`https://api.sk1er.club/player/${args[0]}`)
.then(res => res.json())
.then(({ player }) => {
clientUser.member.setNickname(player.displayname).catch(console.error);
})
.catch(err => console.log(err));
} else {
message.channel.reply("You don't have sufficient permissions.");
}
}
}
其他每个命令都能正常工作,但由于某些原因,这个命令根本不起作用。我尝试了另一个问题所说的方法(即add.execute to module.exports或change.execute to.run),但都不起作用,可能是因为它找不到文件(所有内容都拼写正确)从
forceverify.js
导出的文件名为verify
,但应该是forceverify
。因此,forceverify
命令未注册,client.commands.get('forceverify')
返回未定义的
// commands/forceverify.js
module.exports = {
name: 'forceverify',
description: 'Force verify yourself to get access to the server',
execute(message, args, Discord) {
// do stuff
}
}
在调用命令时,应该调用execute
函数
client.commands.get('forceverify').execute(message, args, Discord)
您可以重构代码以简化命令调用代码
client.on('message', (message) => {
if (!message.content.startsWith(prefix) || message.author.bot) {
return
}
const args = message.content.slice(prefix.length).split(/ +/)
const command = args.shift().toLowerCase()
if (!client.commands.has(command)) {
return
}
client.commands.get(command).execute(message, args, Discord)
})
从forceverify.js
导出的文件名为verify
,但应为forceverify
。因此,forceverify
命令未注册,client.commands.get('forceverify')
返回未定义的
// commands/forceverify.js
module.exports = {
name: 'forceverify',
description: 'Force verify yourself to get access to the server',
execute(message, args, Discord) {
// do stuff
}
}
在调用命令时,应该调用execute
函数
client.commands.get('forceverify').execute(message, args, Discord)
您可以重构代码以简化命令调用代码
client.on('message', (message) => {
if (!message.content.startsWith(prefix) || message.author.bot) {
return
}
const args = message.content.slice(prefix.length).split(/ +/)
const command = args.shift().toLowerCase()
if (!client.commands.has(command)) {
return
}
client.commands.get(command).execute(message, args, Discord)
})
意外地忘记从.run更改回.execute(它仍然不工作),因为它仍然未定义。意外地忘记从.run更改回.execute(它仍然不工作),因为它仍然未定义