首先我想说这不是我的代码,我只是在使用它:https://github.com/zeOxx/VoiceLogBot
基本上,每当用户离开或加入语音频道时,此代码都会发送一条消息,该消息包含他们的昵称。我面临的问题是,如果用户更改了昵称,之后的每条消息仍会显示原来的。
我环顾四周,一无所获。下面是代码的相关部分:
client.on('voiceStateUpdate', (oldMember, newMember) => {
// Check if voiceLogChannel has been set
if (data.voiceLogChannel === "")
return;
let username = newMember.displayName;
let oldVCID = oldMember.voiceChannelID;
let newVCID = newMember.voiceChannelID;
let oldChannelName = (oldVCID != null && typeof oldVCID != undefined) ? channels.get(oldVCID).name : null;
let newChannelName = (newVCID != null && typeof newVCID != undefined) ? channels.get(newVCID).name : null;
if (oldChannelName === null)
voiceLogChannel.sendMessage(`!whitelist add ${username}`);
else if (newChannelName === null)
voiceLogChannel.sendMessage(`!whitelist remove ${username}`);
else
voiceLogChannel.sendMessage(`!whitelist add ${username}`);
});