Skip to content

Commit dc318f6

Browse files
committed
feat(cake-day): improve removeRoleFromMembers() method
1 parent 2b47108 commit dc318f6

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

application/src/main/java/org/togetherjava/tjbot/features/cakeday/CakeDayService.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import net.dv8tion.jda.api.entities.Role;
66
import net.dv8tion.jda.api.entities.User;
77
import net.dv8tion.jda.api.entities.UserSnowflake;
8+
import net.dv8tion.jda.api.requests.RestAction;
9+
import net.dv8tion.jda.api.utils.Result;
810
import org.jooq.Query;
911
import org.jooq.impl.DSL;
1012
import org.slf4j.Logger;
@@ -149,17 +151,22 @@ protected void addCakeDayRole(Member member) {
149151
}
150152

151153
/**
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}.
153155
*
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
157159
*/
158160
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();
163170
}
164171

165172
/**

0 commit comments

Comments
 (0)