async def remove_rank(client: bot.Overlord, msg: discord.Message, role_name: str): role = client.get_role(role_name) if role is None: await msg.channel.send( res.get("messages.rank_role_unknown").format(role_name)) return ranks = client.config.ranks.role.copy().value() if role_name not in ranks: await msg.channel.send(res.get("messages.rank_unknown")) return del ranks[role_name] path = 'bot.ranks.role' if await __safe_alter_config(client, path, ranks): __save_config(client) log.info(f'Done') await client.control_channel.send(res.get("messages.done"))
async def edit_rank(client: bot.Overlord, msg: discord.Message, role_name: str, weight: str, membership: str, msg_count: str, vc_time: str): try: weight = int(weight) membership = int(membership) messages_count = int(msg_count) vc_time = int(vc_time) except ValueError: await msg.channel.send(res.get("messages.rank_arg_parse_error")) return role = client.get_role(role_name) if role is None: await msg.channel.send( res.get("messages.rank_role_unknown").format(role_name)) return ranks = client.config.ranks.role.copy().value() if role_name not in ranks: await msg.channel.send(res.get("messages.rank_unknown")) return ranks_weights = {ranks[r]['weight']: r for r in ranks} if weight in ranks_weights and ranks_weights[weight] != role_name: await msg.channel.send( res.get("messages.rank_role_same_weight").format( ranks_weights[weight])) return ranks[role_name] = { "weight": weight, "membership": membership, "messages": messages_count, "vc": vc_time } path = 'bot.ranks.role' if await __safe_alter_config(client, path, ranks): __save_config(client) log.info(f'Done') await client.control_channel.send(res.get("messages.done"))