|
5 | 5 | import net.dv8tion.jda.api.entities.Role; |
6 | 6 | import net.dv8tion.jda.api.entities.User; |
7 | 7 | import net.dv8tion.jda.api.entities.UserSnowflake; |
| 8 | +import net.dv8tion.jda.api.requests.RestAction; |
| 9 | +import net.dv8tion.jda.api.utils.Result; |
8 | 10 | import org.jooq.Query; |
9 | 11 | import org.jooq.impl.DSL; |
10 | 12 | import org.slf4j.Logger; |
@@ -149,17 +151,22 @@ protected void addCakeDayRole(Member member) { |
149 | 151 | } |
150 | 152 |
|
151 | 153 | /** |
152 | | - * Removes a specified role from a list of members in a guild. |
| 154 | + * Removes a specified role from a list of members in a {@link Guild}. |
153 | 155 | * |
154 | | - * @param guild the guild from which to remove the role from members |
155 | | - * @param role the role to be removed from the members |
156 | | - * @param members the list of members from which the role will be removed |
| 156 | + * @param guild the {@link Guild} from which to remove the role from members |
| 157 | + * @param role the {@link Role} to be removed from the members |
| 158 | + * @param members the {@link List} of members from which the {@link Role} will be removed |
157 | 159 | */ |
158 | 160 | private void removeRoleFromMembers(Guild guild, Role role, List<Member> members) { |
159 | | - members.forEach(member -> { |
160 | | - UserSnowflake snowflake = UserSnowflake.fromId(member.getIdLong()); |
161 | | - guild.removeRoleFromMember(snowflake, role).complete(); |
162 | | - }); |
| 161 | + List<RestAction<Result<Void>>> chain = members.stream() |
| 162 | + .map(member -> guild.removeRoleFromMember(member, role).mapToResult()) |
| 163 | + .toList(); |
| 164 | + |
| 165 | + if (chain.isEmpty()) { |
| 166 | + return; |
| 167 | + } |
| 168 | + |
| 169 | + RestAction.allOf(chain).queue(); |
163 | 170 | } |
164 | 171 |
|
165 | 172 | /** |
|
0 commit comments