如何在语音通道中记录时间并在我的!! userinfo命令中显示它
我正试图在频道中存储语音时间
这是我到目前为止所遇到的情况,我不知道在我试图查找无解之后要放什么
bot.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.voiceChannel
let oldUserChannel = oldMember.voiceChannel
if (oldUserChannel === undefined && newUserChannel !== undefined) {
function start() {
startTime = new date()
}
}else if(newUserChannel === undefined){
function end() {
endTime = new date()
var timeDif = endTime - startTime;
}
}
});
我想让它在公会名称和用户名下的.json文件中记录语音时间,我被卡住了
提前致谢
回答如下:问题是在你的if
语句(以及else
子句)中你创建了一个函数但你从不调用所述函数。有两种方法可以解决它,您可以在下面看到它们。
选项1:创建后调用函数
bot.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.voiceChannel
let oldUserChannel = oldMember.voiceChannel
if (oldUserChannel === undefined && newUserChannel !== undefined) {
function start() {
startTime = new date()
}
// Call the function after creating it
start();
} else if(newUserChannel === undefined) {
function end() {
endTime = new date();
var timeDif = endTime - startTime;
}
// Call the function after creating it
end();
}
});
选项2:删除函数声明并只执行代码(在我看来,更好/更清洁的选项)
bot.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.voiceChannel
let oldUserChannel = oldMember.voiceChannel
if (oldUserChannel === undefined && newUserChannel !== undefined) {
startTime = new date()
} else if(newUserChannel === undefined) {
endTime = new date();
var timeDif = endTime - startTime;
}
});
请注意,代码可能无法正常工作。假设personA加入语音频道,然后将设置startTime
。如果然后personB加入语音通道,则startTime
变量将被新的new Date()
值覆盖。如果要存储每个特定用户的开始时间,则需要将其存储在与用户相关的位置。说一个具有user
和startTime
属性的对象数组