Как заставить дискорд js bot отправить прямое / личное сообщение не автору?
Я использую node.js для раздора.
После того, как я сделаю команду, я хочу, чтобы мой бот отправлял прямое / личное сообщение конкретному человеку, а не автору, который делает команду (мне).
Прямо сейчас у меня есть <@ 000000000000000000> (я думаю, что это называется ID), который имеет формат String.
Например, этот код client.sendMessage(message.author, "Hello!"); отправляет автору сообщение Hello. Но мне нужен такой, как client.sendMessage (message.user ("<@ 000000000000000000>"), "Hello!");
Существует ли такая функция?
Для справочной информации я создаю игрового бота оборотня, в котором игрокам случайным образом назначается роль, и после того, как я ввожу команду w! Play, я хочу, чтобы игроки получили свои роли в DM.
2 ответа
Да просто получить user
возразить и отправить на это. Вам понадобится их идентификатор, поэтому разберите часть идентификатора строки "<@ 0000>". Также, sendMessage
устарела. использование channel.send()
, В случае пользователя:
let str = "<@123456789>"; //Just assuming some random tag.
//removing any sign of < @ ! >...
//the exclamation symbol comes if the user has a nickname on the server.
let id = str.replace(/[<@!>]/g, '');
client.fetchUser(id)
.then(user => {user.send("Hello I dmed you!")})
Я бы не стал так писать, если у вас нет причин специально делать это.
Я использовал webhooks с git для разногласий, использовал хэштеги для общения по частному каналу (и создания каналов dm), таким образом, я могу добавить правила удаления / исключения (для администраторов или иным образом)
(Это не относится к Facebook, если вам нужна интеграция с Facebook)