Is your feature request related to a problem? Please describe.
Calling member.add_roles(role) while using an iterable (ex: member.add_roles(*[role1, role2])) replaces the member's role property with the last role called. Calling the above for example leaves the member with the @everyone role and role2.
Describe the solution you'd like
Calling member.add_roles only appends new roles to an existing role list. In the above example, role 1 and 2 both exist on user. Calling member.add_roles(*[role3, role4]) next should result in a member having roles 1, 2, 3, 4, and the default @everyone role. In current implementation, the member ends up with only role4 in this example, plus @everyone.
Is your feature request related to a problem? Please describe.
Calling member.add_roles(role) while using an iterable (ex: member.add_roles(*[role1, role2])) replaces the member's role property with the last role called. Calling the above for example leaves the member with the @everyone role and role2.
Describe the solution you'd like
Calling member.add_roles only appends new roles to an existing role list. In the above example, role 1 and 2 both exist on user. Calling member.add_roles(*[role3, role4]) next should result in a member having roles 1, 2, 3, 4, and the default @everyone role. In current implementation, the member ends up with only role4 in this example, plus @everyone.
Describe alternatives you've considered
n/a
Additional context
n/a