Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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)
Пример #4
0
 def test_getCurrentRolesEmpty(self):
     roleList = RoleUtil.getCurrentRoles(123)
     assert len(roleList) == 0