Discord JS - получить все каналы DM - PullRequest
0 голосов
/ 06 августа 2020

Я хочу получить все dm-каналы и все сообщения в этих каналах, которые отправил бот.

Это должно получить все каналы, к которым бот имеет доступ. Но, похоже, он извлекает только каналы гильдии.

client.channels.cache.entries()

Документы Discord говорят, что я должен явно получить DM, но я не уверен, как это сделать ...

.channels Все каналы, которые клиент в настоящее время обрабатывает, сопоставленные с их идентификаторами - пока сегментирование не используется, это будет каждый канал в каждой гильдии, членом которой является бот. Обратите внимание, что каналы DM не будут изначально кэшироваться и, следовательно, не будут присутствовать в Менеджере без их явной выборки или использования.

Тип: ChannelManager

1 Ответ

0 голосов
/ 07 августа 2020

Это невозможно, так как dm никогда не входят в полезную нагрузку api.

Чтобы получать сообщения dm, вам необходимо знать идентификатор пользователя, у которого dm открыт для бота. С этого момента вы можете открыть dm из объекта User, а затем получить все сообщения.

После этого кеш канала будет содержать dm для сеанса, в котором бот находится в сети.

...