通过voiceStateUpdate,我跟踪用户从一个语音频道到另一个语音频道的移动。 但是如果有人将用户拖入另一个语音频道,如何捕捉这种情况?
我尝试在服务器日志中搜索:
logs.entries.first().executor.id;
但在未经授权的转换和拖动的情况下,它会给出同样的结果。
我没有得到答复。但我想出了我自己的方法:
client.on("voiceStateUpdate", (oldState, newState) => {
let oldChannel = oldState.channel;
let newChannel = newState.channel;
let oldMember = oldState.member;
let newMember = newState.member;
if(oldState.channel && newState.channel && newChannel !== oldChannel) {
//Get log
newMember.guild.fetchAuditLogs().then(logs => {
//Get first
let firstEv = logs.entries.first();
if (Date.now() - firstEv.createdTimestamp < 5000) {
//dragging
} else {
//no dragging
}
});
}
});
希望对大家有用