Как мне пропинговать кого-то в ответ на команду в Discord.js

avatar
user15952596
9 августа 2021 в 06:52
497
1
0

Как я хочу, чтобы мой бот пинговал людей

enter image description here

Я хочу сделать так, чтобы мой бот пинговал людей всякий раз, когда он отвечает на команду, например, как я отвечаю на изображении, с @ON и фактически не включая упоминание в сообщении.

Я попытался объявить это в параметрах клиента в файле index.js, но это не сработало.

Мой файл index.js:

const fs = require('fs');
const { Discord, Client, Collection, Intents, MessageEmbed } = require('discord.js');
const bottoken = process.env.token

const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES], allowedMentions: { repliedUser: true } });
client.commands = new Collection();

const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));

for (const file of eventFiles) {
    const event = require(`./events/${file}`);
    if (event.once) {
        client.once(event.name, (...args) => event.execute(...args, client));
    } else {
        client.on(event.name, (...args) => event.execute(...args, client, MessageEmbed));
    }
}

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.login(bottoken);

Команда, которую я тестирую (это моя единственная команда, я хочу убедиться, что такие опции работают, прежде чем добавлять другие команды):

module.exports = {
    name: 'ping',
    description: 'Replies with Pong!',
    async execute(interaction) {
        await interaction.reply({ content: 'Pong!' });
    },
};
Источник

Ответы (1)

avatar
Jakye
9 августа 2021 в 07:59
0

CommandInteraction.reply отвечает только на Interaction. Вам нужно использовать Message.reply.


client.on('messageCreate', message => {
    if (message.author.bot) return false;

    if (message.content === 'reply') {
        message.reply({
            content: 'This is a reply.'
        })
    }
});