任何可以看到任何错误或原因,为什么我的机器人不会响应命令,其在线和所有权限等,这是我的代码我已经注解令牌了
const Discord = require('discord.js');
const xml2js = require('xml2js');
const fs = require('fs');
const https = require('https');
const client = new Discord.Client({
intents: [
1 << 0, // GUILDS
1 << 9, // GUILD_MESSAGES
1 << 10, // GUILD_MESSAGE_REACTIONS
1 << 12, // DIRECT_MESSAGES
1 << 14, // GUILD_MEMBERS
1 << 16, // GUILD_VOICE_STATES
],
});
const prefix = '£';
const XML_ROLE_ID = '1106710053341372506';
client.once('ready', () => {
console.log('Bot is online!');
});
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ +/);
const command = args.shift().toLowerCase();
switch (command) {
case 'test':
message.channel.send('Bot is active and connected to guild.');
break;
case 'set up':
message.channel.send('Bot initiated in this channel.');
break;
case 'status':
message.channel.send(`Bot is currently ${client.user.presence.status}!`);
break;
case 'upload':
if (message.attachments.size == 0) {
message.channel.send('Please attach a file to your upload command!');
} else {
const attachment = message.attachments.first();
const fileName = attachment.name;
const extension = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();
if (extension !== 'xml' && extension !== 'json') {
message.channel.send('The file must be either XML or JSON!');
} else {
message.channel.send(`Do you want to validate ${fileName}?`, {
buttons: [
new Discord.MessageButton()
.setCustomId('validate')
.setLabel('Validate')
.setStyle('PRIMARY'),
new Discord.MessageButton()
.setCustomId('cancel')
.setLabel('Cancel')
.setStyle('DANGER'),
],
}).then(msg => {
const collector = msg.createMessageComponentCollector({ time: 15000 });
collector.on('end', async (collected) => {
if (msg.deleted) return;
if (collected.size === 0) {
await msg.edit({
components: [],
embeds: [new Discord.MessageEmbed().setDescription('This command has been cancelled.').setColor('#ff0000')],
});
}
});
collector.on('collect', async (i) => {
if (i.customId === 'validate') {
const file = fs.createWriteStream(fileName);
const request = https.get(attachment.url, function(response) {
response.pipe(file);
file.on('finish', function() {
let parser;
if (extension === 'xml') {
parser = new xml2js.Parser();
fs.readFile(fileName, function(err, data) {
if (err) {
message.channel.send(`There was an error parsing the XML: ${err}`);
console.error(`Error parsing XML: ${err}`);
} else {
message.member.roles.add(XML_ROLE_ID);
const embed = new Discord.MessageEmbed()
.setTitle('XML File Uploaded')
.setDescription(`File: ${fileName}`)
.setThumbnail('http://www.imghost.net/Jtr9Mm9aP91Z0HZ')
.setColor('#00ff00');
message.channel.send({ embeds: [embed] });
}
});
} else if (extension === 'json') {
fs.readFile(fileName, function(err, data) {
try {
JSON.parse(data);
const embed = new Discord.MessageEmbed()
.setTitle('JSON File Uploaded')
.setDescription(`File: ${fileName}`)
.setThumbnail('http://www.imghost.net/Jtr9Mm9aP91Z0HZ')
.setColor('#00ff00');
message.channel.send({ embeds: [embed] });
} catch (err) {
message.channel.send(`There was an error parsing the JSON: ${err}`);
console.error(`Error parsing JSON: ${err}`);
}
});
}
});
});
await msg.edit({
components: [],
embeds: [new Discord.MessageEmbed().setDescription(`The ${extension.toUpperCase()} file has been uploaded for validation.`).setColor('#00ff00')],
});
} else if (i.customId === 'cancel') {
await msg.edit({
components: [],
embeds: [new Discord.MessageEmbed().setDescription('This command has been cancelled.').setColor('#ff0000')],
});
}
});
});
}
}
break;
case 'report':
// Show any errors
break;
case 'help':
message.channel.send(`Here's a list of available commands:\n${prefix}test\n${prefix}set up\n${prefix}status\n${prefix}upload\n${prefix}report\n${prefix}help`);
break;
default:
message.channel.send('Invalid command. Type !help to see a list of available commands.');
break;
}
});
client.login('Token_hear');
说在线IN TERMINAL也有管理员权限和所需的perms意图等,但仍然不响应命令时使用,甚至没有简单的测试命令
1条答案
按热度按时间nhaq1z211#
将
client.on('message', message => {
替换为client.on('messageCreate', message => {
并创建客户端,如下所示:所以整件事就是
我刚刚测试过,它对我有效