【发布时间】:2020-12-21 19:35:29
【问题描述】:
是否有可能我可以检测到用户是否开始/停止输入? 我使用 Discord.js Webpack 第 12 版,但似乎找不到任何解决方案?
【问题讨论】:
标签: events discord.js bots typing
是否有可能我可以检测到用户是否开始/停止输入? 我使用 Discord.js Webpack 第 12 版,但似乎找不到任何解决方案?
【问题讨论】:
标签: events discord.js bots typing
我遇到了同样的问题,我使用 JavaScript 中内置的 setTimeout() 函数解决了它。这是我的代码 sn-p:
client.on("typingStart", function(channel, user){
//What you want to execute while someone is typing...
console.log('User is typing!')
setTimeout(() => {
//What you want to execute when someone stops typing...
console.log('User is no longer typing')
}, 5000)
})
您可以随意更改值5000,它代表在有人停止输入后将编码等待的时间,以毫秒为单位。我认为5000 很好,但这取决于你。
【讨论】:
您可以使用typingStart() 事件,该事件将在用户开始输入时触发。
client.on('typingStart', (channel, user) => {
console.log(`${user.username} is typing in ${channel.name}`)
};
还有User.typingIn()方法,它会检查用户是否在指定频道输入,并返回boolean。
if (<user>.typingIn(<channel>))
console.log(`${<user>.username} in typing in ${<channel>.name}`);
(您也可以使用typingDurationIn() 和typingSinceIn() 方法)
最后,您可以查看TextChannel 的TextChannel.typing 属性来检测是否有人 在该频道中输入。
if (<channel>.typing)
console.log(`Somebody is typing in ${channel.name}`);
(您也可以使用typingCount 属性来查看有多少人在给定频道中打字)
【讨论】:
discord.js 事件。