fix: async-friendly collection iteration

This commit is contained in:
ethanf 2024-01-16 17:04:31 -06:00
parent b1b71ebb18
commit 713f44835e

View File

@ -163,24 +163,31 @@ client.on("interactionCreate", async (interaction) => {
// move members to addup
let idx = 0,
eCount = 0;
members.forEach(async (member) => {
idx++;
console.log(idx, members.size);
const moveToAddup = async (member) => {
try {
await member.voice.setChannel(picking);
} catch (error) {
console.error(error);
eCount++;
}
// respond when done
if (idx === members.size) {
return await interaction.followUp(
`moved members in ${
command === "resetteams" ? "blu" : "addup, blu,"
} and red${eCount > 0 ? ` (error moving ${eCount} members)` : ""}`
);
}
});
};
const moveAllToAddup = async () => {
return Promise.all(
Array.from(members, async ([memberId, member]) => {
await moveToAddup(member);
})
);
};
moveAllToAddup().then(() =>
interaction.followUp(
`moved members in ${
command === "resetteams" ? "blu" : "addup, blu,"
} and red${eCount > 0 ? ` (error moving ${eCount} members)` : ""}`
)
);
}
if (command === "fk" || command === "fatkid") {
@ -196,12 +203,12 @@ client.on("interactionCreate", async (interaction) => {
);
if (!fk) return console.error("Can't find channel 'fatkid'!");
// get members in voice channel
const members = picking.members;
if (members.size === 0) {
return await interaction.followUp("found no members in picking");
}
// get members in voice channel
let str = "",
eCount = 0;
@ -216,7 +223,7 @@ client.on("interactionCreate", async (interaction) => {
}
};
const processAllEntries = async () => {
const logAllFks = async () => {
return Promise.all(
Array.from(members, async ([memberId, member]) => {
await logFk(member);
@ -224,7 +231,7 @@ client.on("interactionCreate", async (interaction) => {
);
};
processAllEntries().then(() =>
logAllFks().then(() =>
interaction.followUp(
`fatkids: ${str}${
eCount > 0 ? ` (error moving ${eCount} members)` : ""