1. ホーム
  2. node.js

[解決済み】Discord.js が特定のチャンネルにメッセージを送信する場合

2022-01-28 07:38:44

質問

非常に簡単なことを実現できずにいます。特定のチャンネルにメッセージを送ることができません。ドキュメントやスタックオーバーフローの類似スレッドに目を通しました。

<ブロッククオート

クライアント.チャンネル.get().send()

は動作しません。 これは関数ではありません。 また、公式ドキュメントにはChannelクラスのメソッドとして書かれていませんが、これまで私が見つけたすべてのスレッドでは、Channelを使用するようにと書かれています。

ボットがメッセージに返信するようにするには、メッセージをリッスンして message.reply() しかし、私はそれを望んでいるわけではありません。私はボットに特定のチャンネルで何かを言わせたいのです。 client.on('ready')

何が足りないのでしょうか?

解決方法は?

すでにテストしたコードが提供されていないので、動作するreadyイベントのコードを提供します!

    client.on('ready', client => {
        client.channels.get('CHANNEL ID').send('Hello here!');
    })

チャンネルIDが文字列であることに注意してください。

うまくいったかどうか教えてください、ありがとうございます

2020年6月13日 編集

Discord.js のアップデートには cache メソッドの前に、channel のメンバーである

もし、あなたのモジュールがレガシーであれば、上記はまだ機能します。私の最近の解決策は、send行を以下のように変更するとうまくいきます。

        client.channels.cache.get('CHANNEL ID').send('Hello here!')

TypeScript を使用している場合は、チャネルをキャストして TextChannel.send(message) メソッドを使用すると、コンパイラーエラーが発生しません。

import { TextChannel } from 'discord.js';

( client.channels.cache.get('CHANNEL ID') as TextChannel ).send('Hello here!')