multi-task-widget-cross-pla.../scripts/tasks/taskMaster.js
2026-08-07 12:20:16 +10:00

72 lines
1.5 KiB
JavaScript

/**
* adds a count to user for 'taskmaster'
*
* @param {string} username
*/
async function addCountToTaskMasterUser(username, count) {
const taskmaster = await DBHandler.get("taskmaster");
if (!taskmaster.users[username.toLowerCase()]) {
taskmaster.users[username.toLowerCase()] = {
taskMasterCompleteCount: 0,
};
}
taskmaster.users[username.toLowerCase()].taskMasterCompleteCount +=
parseInt(count);
await DBHandler.set("taskmaster", taskmaster);
}
/**
* gets the count of a user from 'taskmaster'
*
* @param {string} username
* @returns {number} the count of the user
*/
async function getUserTaskMasterCount(username) {
const taskmaster = await DBHandler.get("taskmaster");
if (!taskmaster.users[username.toLowerCase()]) {
return 0;
}
return taskmaster.users[username.toLowerCase()].taskMasterCompleteCount;
}
async function getTaskMasterChampion() {
const taskmaster = await DBHandler.get("taskmaster");
if (!taskmaster.users) {
return null;
}
let champion = {
username: "",
count: 0,
};
for (const user in taskmaster.users) {
if (
user.toLowerCase() !== auth.channel.toLowerCase() &&
taskmaster.users[user].taskMasterCompleteCount > champion.count
) {
champion.username = user;
champion.count = taskmaster.users[user].taskMasterCompleteCount;
}
}
if (champion.count === 0) {
return null;
}
return champion;
}
async function resetTaskMaster() {
await DBHandler.set("taskmaster", {
users: {},
startDate: new Date(),
totalCompleteCount: 0,
});
}