diff options
| author | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-07-23 22:39:33 +0100 |
|---|---|---|
| committer | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-07-23 22:39:33 +0100 |
| commit | 4cccbdda3496aad74bdb3b4b2ad746f4367b13d9 (patch) | |
| tree | 38f8d27bee36eab2295dc5a2b044e6075bd20faf /174bg/discord-bot/source/utilities/messageMembersByRoleName.js | |
| parent | 2d7362b6fc73f4807f09f6f522fd2e1e2b306e04 (diff) | |
| download | unnamed-group-4cccbdda3496aad74bdb3b4b2ad746f4367b13d9.tar unnamed-group-4cccbdda3496aad74bdb3b4b2ad746f4367b13d9.tar.gz unnamed-group-4cccbdda3496aad74bdb3b4b2ad746f4367b13d9.tar.bz2 unnamed-group-4cccbdda3496aad74bdb3b4b2ad746f4367b13d9.tar.xz unnamed-group-4cccbdda3496aad74bdb3b4b2ad746f4367b13d9.zip | |
opti refactor
Diffstat (limited to '174bg/discord-bot/source/utilities/messageMembersByRoleName.js')
| -rw-r--r-- | 174bg/discord-bot/source/utilities/messageMembersByRoleName.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/174bg/discord-bot/source/utilities/messageMembersByRoleName.js b/174bg/discord-bot/source/utilities/messageMembersByRoleName.js new file mode 100644 index 0000000..0730c32 --- /dev/null +++ b/174bg/discord-bot/source/utilities/messageMembersByRoleName.js @@ -0,0 +1,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 }; +} |
