Отправить DMed файлы и ссылки на канал на сервере - PullRequest
0 голосов
/ 16 апреля 2020

Хорошо. Это может быть странный вопрос, но мне нужна помощь, потому что я не мог найти что-нибудь в Интернете. У меня есть дискорд-бот и сервер, на котором размещены соревнования, и пользователи отправляют свои заявки через Direct Messaging мне по ссылке или по файлу своей заявки. Я хотел бы изменить это на DMing бота, а не на бота, публикующего ссылки и файлы в определенном канале на сервере. Я понятия не имею, как этого добиться, так как я начинающий, когда дело доходит до такого рода вещей. Пожалуйста, прокомментируйте, если мне нужно изменить формулировку или нужно что-то уточнить!

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

В событии message вы можете проверить, находится ли сообщение в канале dm, затем вы можете взять содержимое сообщения и отправить его на указанный канал c в качестве встраивания.

Ваше решение будет:

client.on('message', (message) => {
    if (message.channel.type === 'dm') {
        const channel = client.guilds.cache.get("GUILD_ID").channels.cache.get("CHANNEL_ID");
        const embed = new Discord.MessageEmbed()
            .setAuthor(message.author.tag, message.author.avatarURL())
            .setColor('RANDOM')
            .setDescription(message.content)

        channel.send(embed);

        if (message.attachments.array().length) {
            message.attachments.forEach((attachment) => channel.send({ files: [ attachment ] }))
        }
    }
})
0 голосов
/ 16 апреля 2020

Замените channel id фактическим идентификатором канала, на который вы хотите отправлять материалы.

Для Discord. js v12 (последняя версия):

client.on('message', ({attachments, author, content, guild}) => {
  // only do this for DMs
  if (!guild) {
    // this will simply send all the attachments, if there are any, or the message content
    // you might also want to check that the content is a link as well
    const submission = attachments.size
      ? {files: attachments.array(), content: `${author}`}
      : {content: `${content}\n${author}`}
    client.channels.cache.get('channel id').send(submission)
  }
})

Для Discord. js v11 заменить

client.channels.cache.get('channel id').send(submission)

на

client.channels.get('channel id').send(submission)
...