#node.js #discord #discord.js
Вопрос:
Я попытался выполнить тестовую команду client.on
, которая сработала, но все остальное в моем обработчике команд не работает. Ничего не возвращается, я что-то делаю не так?
Проблема: Моя команда ping вообще ничего не делает.
Index.js файл
require('dotenv').config();
const Discord = require('discord.js');
const { Client, Collection, Intents } = require('discord.js');
const config = require('./config.json');
const fs = require("fs");
const client = new Client({ disableMentions: 'everyone', partials: ['MESSAGE', 'CHANNEL', 'REACTION'], ws: { intents: Intents.ALL } });
const PREFIX = config.PREFIX;
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.commands = new Collection();
Файл Ping
let config = require('../config.json');
const Discord = require('discord.js');
const { MessageEmbed } = require('discord.js');
module.exports = {
name: 'ping',
category: 'Info',
description: 'Returns the bot's latency and API ping.',
aliases: ['latency'],
usage: 'ping',
userperms: [],
botperms: [],
run: async (client, message, args) => {
message.channel.send('🏓 Pinging....').then((msg) => {
const pEmbed = new MessageEmbed()
.setTitle('🏓 Pong!')
.setColor('BLUE')
.setDescription(
`Latency: ${Math.floor(
msg.createdTimestamp - message.createdTimestamp,
)}msnAPI Latency: ${client.ws.ping}ms`,
);
msg.edit(pEmbed);
});
},
};
Ответ №1:
Вам нужно добавить событие, которое будет срабатывать каждый раз при создании сообщения, и бот сможет его увидеть.
Примером в версии 12 может быть (с использованием message
:
client.on('message', message => {
if (message.content.startsWith("!ping")) {
message.channel.send('Pong!');
}
});
В версии v13 message
является устаревшим, поэтому используйте messageCreate
:
client.on('messageCreate', message => {
if (message.content.startsWith("!ping")) {
message.channel.send('Pong!');
}
});
Комментарии:
1. Однако проблема не в этом, я сделал это заранее, и это сработало нормально. Моя проблема в том, что бот ничего не возвращает для
module.exports
2. @ignshifts Вы имеете в виду, что не можете получить доступ к модулю в файле команды ?-?
3. Да, это ничего не дает
4. @ignshifts, что именно ничего не делает,вы пробовали
if(message.content.startsWith('!ping') { client.commands.get('ping
).выполнить(клиент,сообщение, аргументы) }` или что-то еще, чтобы код в файле действительно выполнялся в событии5. Файл ping, когда я запускаю команду, ничего не происходит. Я не говорю о создании команды для события или сообщения; Я сделал это заранее, как я уже говорил, и это сработало.