ボットに「入力中...」と表示させたい
channel.sendTyping()を使用する
v12以前のstartTypingとは異なり一度しか動作しない message.channel.startTyping() で入力開始、message.channel.stopTyping() で入力停止
止めるまでずっと続いて、止めたあとも数秒間続くことがある
startTyping() は Promise が返るけど、stopTyping() は void なので注意しよう。 この後に msg.reply('~') などを入れたい時は setTimeout() 内に入れよう。
code:js
message.channel.startTyping()
setTimeout(() => {
message.channel.stopTyping()
// message.reply('Hey!')
}, 1000)
code:js
const sleep = time => new Promise(resolve => setTimeout(resolve, time))
client.on('message', async message => {
message.channel.startTyping()
await sleep(1000)
message.channel.stopTyping()
message.reply('Hey!')
})
注意
startTyping() に await を付けたりすると永遠に入力中になってしまう。