blob: 0730c32187cdee68c65526ee5585c912b17c9b9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
/**
* Messages all members of a specific role in a Discord guild by the role's name.
*
* @param {Guild} guild The Discord guild.
* @param {string} roleName The name of the role.
* @param {string} message The message to send.
*
* @returns {Promise<{successes: Array, failures: Array}>} The results of the messaging attempts.
*/
export default async function messageMembersByRoleName(guild, roleName, message) {
const role = guild.roles.cache.find(
(role) => role.name.toLowerCase() === roleName.toLowerCase(),
);
if (!role) throw new Error(`Role "${roleName}" not found.`);
let successes = [];
let failures = [];
for (const member of role.members.values()) {
try {
let result = await member.send(message);
successes.push(result);
} catch (error) {
failures.push({ member, error });
}
}
return { successes, failures };
}
|