mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-27 14:23:56 +00:00
[AB-99] changing the way roles are added/removed for experience system, as discord has a race condition in which quick additions/removals cause unexpected problems
This commit is contained in:
@@ -85,6 +85,23 @@ public class RoleServiceBean implements RoleService {
|
||||
return addRoleToMemberAsync(member.getGuild(), member.getIdLong(), role);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> updateRolesIds(Member member, List<Long> rolesToRemove, List<Long> rolesToAdd) {
|
||||
List<Role> rolesObjToRemove = rolesToRemove
|
||||
.stream().map(aLong -> member.getGuild().getRoleById(aLong))
|
||||
.toList();
|
||||
|
||||
List<Role> rolesObjToAdd = rolesToAdd
|
||||
.stream().map(aLong -> member.getGuild().getRoleById(aLong))
|
||||
.toList();
|
||||
return updateRolesObj(member, rolesObjToRemove, rolesObjToAdd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> updateRolesObj(Member member, List<Role> rolesToRemove, List<Role> rolesToAdd) {
|
||||
return member.getGuild().modifyMemberRoles(member, rolesToAdd, rolesToRemove).submit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<Void> addRoleToMemberAsync(Member member, Role role) {
|
||||
return addRoleToMemberAsync(member.getGuild(), member.getIdLong(), role);
|
||||
|
||||
@@ -16,6 +16,8 @@ public interface RoleService {
|
||||
void addRoleToMember(AUserInAServer aUserInAServer, ARole role);
|
||||
CompletableFuture<Void> addRoleToUserAsync(AUserInAServer aUserInAServer, ARole role);
|
||||
CompletableFuture<Void> addRoleToMemberAsync(Member member, Long roleId);
|
||||
CompletableFuture<Void> updateRolesIds(Member member, List<Long> rolesToRemove, List<Long> rolesToAdd);
|
||||
CompletableFuture<Void> updateRolesObj(Member member, List<Role> rolesToRemove, List<Role> rolesToAdd);
|
||||
CompletableFuture<Void> addRoleToMemberAsync(Member member, Role role);
|
||||
void addRoleToMember(Member member, ARole role);
|
||||
CompletableFuture<Void> addRoleToMemberAsync(Member member, ARole role);
|
||||
|
||||
Reference in New Issue
Block a user