web-dev-qa-db-ja.com

Discordボットは名前でチャンネルを取得できません

不協和音ボットを作成していて、特定の「Welcome」チャネルにメッセージを送信したかったのです。残念ながら、私はそうすることができませんでした。これを試してみました。

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);

しかし、これはまだ定義されていません、奇妙なことに

7
Leo

名前ではなくチャネルIDを使用する必要があります。

チャンネルのチャンネルIDを取得する方法:

  1. Discord設定を開きます

  2. Appearanceに移動します

  3. Developer Modeにチェックマークを付けます(Discord設定を閉じます)

  4. 目的のチャンネルを右クリックします

  5. チャンネルIDをコピーするオプションCopy IDがあります

(チャンネル)コレクションの discord.jsドキュメント もチェックアウトしてください


さらに、.getがチャネルIDを必要とするため、このアプローチは機能しません(上記のリンクされたドキュメントを参照)。 [〜#〜] really [〜#〜]その名前でチャンネルを取得したい場合は、代わりに.findを使用します。
ただし、これはチャンネル名が複数回出現する可能性があるため、ボットが複数のサーバーで実行されている場合には本当に悪い考えです。

17
Der-Eddy

使用することもできます

bot.channels.find("name","welcome").send("Welcome!")
7
Razboy20