首页 > 解决方案 > Discord.JS v12 移至语音通道

问题描述

通过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
            }
        });
    }
});

希望它对某人有用

标签: discorddiscord.js

解决方案


推荐阅读