【发布时间】:2021-10-12 00:35:37
【问题描述】:
我希望我的不和谐机器人在用户输入机器人 dms 时输入特定频道,以使其看起来像是用户正在通过机器人输入。我已经设法做到了,所以每当有人在机器人 dms 中输入时,我的机器人就会开始在频道中输入,但当用户停止输入时它不会停止
感谢您的帮助
我现在希望机器人以相反的方式执行此操作,这就是我在代码中添加以下几行的原因。它还不行。错误消息如下: "(node:38868) UnhandledPromiseRejectionWarning: TypeError: dmToTypeIn.startTyping 不是函数"
Client.on("typingStart", async function(channel, user){
if(user.bot){
return;
}
let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID)
if(channel.type === "dm"){
if(openTicketsByUserID[user.id]){
console.log("one")
channelToTypeIn.startTyping()
} else{
return;
}
}
})
新代码:
Client.on("typingStart", async function(channel, user) {
function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
if (channel.type === "dm") {
if (openTicketsByUserID[user.id]) {
let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID);
channelToTypeIn.startTyping();
}
let fulfilled = false;
while (!fulfilled) {
if (!user.typingIn(user.dmChannel)) {
let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID);
fulfilled = true;
channelToTypeIn.stopTyping(true);
}
}
}
↓↓↓ 还没工作的部分↓↓↓
if(openTicketsByChannelID[channel.id]){
let dmToTypeIn = Client.users.fetch(openTicketsByChannelID[channel.id].userID)
dmToTypeIn.startTyping();
}
let fulfilled = false;
while(!fulfilled){
if(!user.typingIn(channel)){
let dmToTypeIn = Client.channels.get(openTicketsByChannelID[channel.id].userID)
fulfilled = true;
dmToTypeIn.stopTyping(true);
}
}
});
【问题讨论】:
-
这能回答你的问题吗? Discord.js detect when user is typing
标签: javascript discord discord.js bots