Да, вы можете.
А теперь как?
Сначала вы должны получить сообщение dm. Message
имеет свойство channel
, представляющее канал, в котором было получено сообщение. Это свойство может быть трех различных типов, все из которых имеют расширение Channel
, которые имеют свойство type
.
Это свойство type
может иметь 6 значений:
- dm - канал DM
- group - канал DM группы
- text - текстовый канал гильдии
- voice - голосовой канал гильдии
- category - канал категории гильдии
- news - канал новостей гильдии
- store - канал магазина гильдии
и из свойства Message.channel
есть такое указание:
Тип: TextChannel
или DMChannel
или GroupDMChannel
Итак, у нас есть 3 возможных результата для message.channel.type
: "dm"
, "text"
, "group"
.
После того, как вы проверили, является ли сообщение дм или нет, вы должны скопировать его на свой сервер. Опять же, тип Message
имеет интересные для нас свойства: content
и attachments
.
Способ обработки вложений немного сложнее, чем сам контент. Вам нужно будет найти тип MessageAttachment
и использовать его свойство как url
.
Но для content
это действительно просто, это просто строка. Таким образом, мы просто должны получить наш канал и отправить сообщение.
В приведенном ниже примере я получаю гильдию и сервер, используя их ID. Вы можете жестко закодировать их, поместить в файл json, в базу данных или получить их в своем сообщении и сделать команду dm, например:
+send ID a message with many words
.
let channelID = "X";
let guildID = "X";
client.on('message', (message) => {
if(message.channel.type === 'dm'){
let embed = new Discord.RichEmbed()
.setAuthor(client.guilds.get(guildID).members.get(message.author.id).displayName, message.author.displayAvatarURL)
.setColor('#FAA')
.setDescription(message.content);
client.channels.get(channelID).send(embed);
}
});