web-dev-qa-db-ja.com

ユーザーへのプライベートメッセージの送信

Discord.jsライブラリとnode.jsを使用して、ポーカーを容易にするDiscordボットを作成しています。全員にハンドが表示されることを除いて機能的であり、プレーヤーをループして、DMをハンドで送信する必要があります。

_bot.on("message", message => {
  message.channel.sendMessage("string");
});
_

これは、ユーザーがメッセージを送信したときにチャネルにメッセージを送信するコードです。ボットにプライベートチャンネルで返信する必要があります。 dmChannelを見ましたが、使用方法がわかりません。メッセージを送信するメンバーのユーザー名があります。例をいただければ幸いです。

編集:ユーザーオブジェクトを探した後、クライアント(ボット)の_.users_プロパティを使用してすべてのユーザーを取得できることがわかりました。 user.sendMessage("string")メソッドをすぐに使用してみます。

10
adapap

ボットがメッセージを送信するには、<client>.send()が必要です。clientは、ボットがメッセージを送信する場所です(チャネル、サーバー内のすべての場所、またはPM)。ボットにPM特定のユーザーにしたいので、clientとしてmessage.authorを使用できます(メッセージまたは何かで言及されたauthor等)

したがって、答えは次のとおりです。message.author.send("Your message here.")

行き詰まったときは、特定のオブジェクトのプロパティに関するDiscord.jsのドキュメントを参照することをお勧めします。ソリューションとして役立つ可能性のある特定の関数が見つかるかもしれません。

21
Kaynn

上記の回答も正常に機能しますが、通常はmessage.author.send("blah blah")の代わりにmessage.author.sendMessage("blah blah")だけを使用できることがわかりました。

.sendは、問題が発生することがある.sendMessageよりも、一般的に私にとってうまく機能する傾向があります。それが少しだけ役立つことを願っています!

2
SuperNunb

コードにif (msg.content === ('trigger') msg.author.send('text')}と言うようにします

1
DisBotDev1

自分などの所定の人にメッセージを送信する場合は、メッセージの送信先となるチャネルが自分の(自分の)ユーザーIDになるように設定できます。たとえば、Digital Trendsの不協和音ボットのチュートリアルで「to:」と表示されている場合は、ユーザーID(またはユーザーID)を使用して続行します。たとえば、特定のコードがどのように設定されているかで、「to:userID」を実行すると、その人にメッセージが送られます。または、誰かが特定のコマンドを使用するたびにボットにメッセージを送信したい場合は、「to: '12345678890'」を実行できます。数字は実際のユーザーIDのフィラーです。お役に立てれば!

0
user10925279

これは非常に簡単です。ここに例があります

ここに次のようなコマンドコードを追加します。

if(cmd === `!dm`){          
    let dUser = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
    if (!dUser) return message.channel.send("Can't find user!")
    if(!message.member.hasPermission("ADMINISTRATOR")) return message.reply("You can't you that command!")
    let dMessage = args.join(" ").slice(22);
    if(dMessage.length < 1) return message.reply('You must supply a message!')

    dUser.send(`${dUser} A moderator from WP Coding Club sent you: ${dMessage}`)

    message.author.send(`${message.author} You have sent your message to ${dUser}`)
}
0
MrPowerPanda

target.send( 'string')動作するはずです

0
Tyler Berger