From 00f787ba318a70a175020a3d4906ccc4fb6bdcbc Mon Sep 17 00:00:00 2001 From: BodgeMaster <> Date: Fri, 13 Jan 2023 20:34:50 +0100 Subject: [PATCH] Load roles from config instead of hard-coding them --- bot.py | 140 ++++----------------------------------------------------- 1 file changed, 9 insertions(+), 131 deletions(-) diff --git a/bot.py b/bot.py index 67c1172..d6357c3 100644 --- a/bot.py +++ b/bot.py @@ -42,143 +42,21 @@ async def on_ready(): @client.tree.command(name="change_hostname") @app_commands.describe(distro='Assign yourself a role') -async def distro(interaction: discord.Interaction, distro: typing.Literal[ - 'LFS', 'Kiss', 'Gentoo', 'Void', 'NixOS', 'Alpine', - 'Arch', 'Arch-based', 'Red Hat', 'Bedrock', 'SuSE Based', - 'OpenSuSE', 'Debian', 'Debian based', 'Solus', 'Fedora', - 'Ubuntu', 'Ubuntu Based', 'BSD', 'MacOS', 'Windows' -]): +async def distro(interaction: discord.Interaction, distro: eval("typing.Literal[\""+ "\", \"".join(config["roles"].keys()) +"\"]")): if not interaction.guild.id==config["guild"]: print("Role assignment attempted from unknown guild.") return user = interaction.user - if distro == 'LFS': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813200239778856971) + role = discord.utils.get(interaction.guild.roles, id=config["roles"][distro]) + + try: await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Kiss': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=884819839212982342) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Gentoo': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=1813139495049232384) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Void': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813139633797988394) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'NixOS': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=827228988585279538) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Alpine': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=932684264967925850) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Arch': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813139868678225991) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Arch-based': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813186782534828043) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Red Hat': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=816823482318979094) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Bedrock': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=825427559604027412) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'SuSE Based': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=1034793985715224587) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'OpenSuSE': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813147179367661589) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Debian': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813142935247388672) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Debian based': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=842882283504926756) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Solus': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=820840553704325160) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Fedora': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=820621219040591884) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Ubuntu': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813139746180038697) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Ubuntu Based': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813581408052183042) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'BSD': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=879444277330055228) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'MacOS': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813147204772167680) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") - if distro == 'Windows': - user = interaction.user - role = discord.utils.get(user.guild.roles, id=813147019631788083) - await user.add_roles(role) - await interaction.response.send_message(content=f'`{role}` assigned to {user.mention}.') - print(f"`{role}` assigned to {user.mention}.") + await interaction.response.send_message(content=f'Added {role}.') + prnt("Added role.") + except: + await interaction.response.send_message(content='Something went wrong.') + print("Failed to add role. Permissions set correctly?") # This context menu command only works on messages