Can Discord Bot может отправить сообщение на канал всем желающим - PullRequest
0 голосов
/ 09 октября 2019

Я кодирую бот Discord с библиотекой discord.js на сервере nodeJs. Вот мой вопрос: возможно ли это, когда происходит событие (например, когда кто-то отправляет сообщение), когда бот отвечает членам роли или всем. Метод message.reply («мой ответ») отвечает только автору сообщения, так как я использую его сейчас ...

1 Ответ

0 голосов
/ 10 октября 2019

Ваша проблема в том, что message.reply() - очень ограниченный метод: в нем всегда упоминается автор сообщения, и вы не можете его переопределить.

Вам нужно использовать более общий метод, channel.send(), и составить упоминание самостоятельно. .reply() - это просто сокращение для часто используемой формы, но вам нужно что-то нестандартное.

Предположительно, вы хотите, чтобы это происходило в том же канале, что и сообщение, поэтому вам нужно message.channel.send("Whatever content you want").

Теперь, чтобы добавить роль, вам нужно решить, как ее выбрать. Это исправлено? Тогда вы можете жестко закодировать упоминание роли по идентификатору роли : <@&134362454976102401> (конечно, это должен быть требуемый идентификатор роли).

Если вы хотите найти рольНапример, по имени, вы должны сделать это через поиск в рассматриваемой гильдии. Вы можете получить к нему доступ, хотя бы message.guild, но имейте в виду, что он будет неопределенным для DM.

Тогда вы можете сделать что-то вроде

const role = message.guild.roles.find(role => role.name === "NameYouWant");
message.channel.send(`${role} something something`);

, поскольку объекты ролей становятся упоминаниями при преобразовании в строки.

...