def test_getCurrentRolesSuccess(self): role1 = RoleUtil.updateRole(123, 321, "testing", "0x000345") role2 = RoleUtil.updateRole(123, 123, "onetwothree", "0x000543") roleList = RoleUtil.getCurrentRoles(123) assert len(roleList) == 2 assert roleList[0] == role1 assert roleList[1] == role2
def listRole(ctx: commands.Context, category: Util.RoleCategory): roleList = RoleUtil.getCurrentRoles(ctx.guild.id, category) if len(roleList) == 0: return f"{category}沒有檢查到任何身份組, 請執行 `!role init`\n" else: msg = "" for role in roleList: msg += f"{role.role_name}\n" msg += f" id: {role.role_id}\n" msg += f" 顏色: {role.color}\n" msg += f" 等級: {role.level}\n\n" return msg
async def __updateUserRole(self, guild: Guild, user: User, member: Member, rank: int, channelToUse: GuildChannel, internal: bool): if user: if member: newRoles = RoleUtil.getKfpRolesFromLevel(guild.id, rank) if len(newRoles) > 0: for newRole in newRoles: newGuildRole: Role = guild.get_role(newRole.role_id) if newGuildRole: if not newGuildRole in user.roles: # 用戶有新身份組 # 先移除所有不符合的身份組 oldRoles: KfpRole = RoleUtil.getCurrentRoles( guild.id, Util.RoleCategory(newRole.category)) if oldRoles: oldGuildRoles = [] for oldRole in oldRoles: guildRole = guild.get_role( oldRole.role_id) if guildRole and guildRole in user.roles: oldGuildRoles.append(guildRole) for oldGuildRole in oldGuildRoles: await user.remove_roles(oldGuildRole) # 添加新的身份組 await user.add_roles(newGuildRole) if internal: print( "adding role {} to member {} successed!" .format(newGuildRole.name, user.name)) else: embed = Embed() embed.description = '恭喜<@!{}> 成為 {}'.format( user.id, newGuildRole.name) await channelToUse.send(embed=embed)
def test_getCurrentRolesEmpty(self): roleList = RoleUtil.getCurrentRoles(123) assert len(roleList) == 0