Я создавал дискотечного бота и хотел, чтобы он отправлял сообщение на определенный канал «Добро пожаловать». К сожалению, я не смог этого сделать. Я попробовал это.

const welcomeChannel = bot.channels.get("name", "welcome")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);

Однако в этом "welcomeChannel не определено".

Редактировать:

Я попробовал использовать

const welcomeChannel = bot.channels.get("id", "18NUMBERIDHERE")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);

Но это до сих пор не определено, как ни странно

15
Leo 7 Янв 2017 в 01:08

3 ответа

Лучший ответ

Вы должны использовать идентификатор канала вместо его имени.

Как получить идентификатор канала канала:

  1. Откройте настройки Discord

  2. Перейти к Appearance

  3. Отметьте Developer Mode (и закройте настройки Discord)

  4. Щелкните правой кнопкой мыши на желаемом канале

  5. Теперь есть опция Copy ID, чтобы скопировать идентификатор канала

Также ознакомьтесь с документацией discord.js для ( канал) коллекции


Кроме того, ваш подход не будет работать, потому что .get хочет идентификатор канала (см. Связанную документацию выше). Если вы ДЕЙСТВИТЕЛЬНО хотите получить канал по его имени, используйте для этого .find.
Это, однако, очень плохая идея, если ваш бот работает на нескольких серверах, поскольку имена каналов теперь могут встречаться несколько раз.

19
Der-Eddy 1 Окт 2017 в 21:53

Ваша ошибка может быть связана с тем, что вы используете bot.channels.get(), что не самая лучшая идея, потому что discord.js не очень удобен, когда речь идет об использовании .send() для нескольких элементов.

Вместо этого попробуйте использовать member.guild.channels.find("name", "channel").send();, если это возможно. Если это в client.on("message"), то просто используйте message.member.channels.find("name", "channel").send();

Примечание: моя память перепутана, поэтому, если это не сработает, попробуйте .get() вместо find.

0
Jacob Clark 6 Янв 2020 в 05:47

Вы также можете использовать

bot.channels.find("name","welcome").send("Welcome!")
7
zx485 22 Дек 2017 в 21:22