Kill, punch, hug, revive all have identical logic.
Fix:
async def send_interaction_media(
interaction: discord.Interaction,
member: discord.Member,
action: str,
media_prefix: str
):
"""Generic function for interaction commands"""
media_files = [f"media/{media_prefix}{i}.gif" for i in ['', '1', '2', '3']]
available = [f for f in media_files if Path(f).exists()]
message = {
'kill': f"You killed {member}",
'punch': f"You punched {member}",
'hug': f"{member} has been squeezed tightly!",
'revive': f"{member} has been brought back to life"
}[action]
if available:
await interaction.response.send_message(
message, file=discord.File(random.choice(available))
)
else:
await interaction.response.send_message(message)
Kill, punch, hug, revive all have identical logic.
Fix:
async def send_interaction_media(
interaction: discord.Interaction,
member: discord.Member,
action: str,
media_prefix: str
):
"""Generic function for interaction commands"""
media_files = [f"media/{media_prefix}{i}.gif" for i in ['', '1', '2', '3']]
available = [f for f in media_files if Path(f).exists()]
message = {
'kill': f"You killed {member}",
'punch': f"You punched {member}",
'hug': f"{member} has been squeezed tightly!",
'revive': f"{member} has been brought back to life"
}[action]
if available:
await interaction.response.send_message(
message, file=discord.File(random.choice(available))
)
else:
await interaction.response.send_message(message)
# Then simplify commands:
@client.tree.command(name="kill", description="Kill another user")
async def kill(interaction: discord.Interaction, member: discord.Member):
await send_interaction_media(interaction, member, 'kill', 'kill')
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Kill, punch, hug, revive all have identical logic.
Fix:
async def send_interaction_media(
interaction: discord.Interaction,
member: discord.Member,
action: str,
media_prefix: str
):
"""Generic function for interaction commands"""
media_files = [f"media/{media_prefix}{i}.gif" for i in ['', '1', '2', '3']]
available = [f for f in media_files if Path(f).exists()]
Then simplify commands:
@client.tree.command(name="kill", description="Kill another user")
async def kill(interaction: discord.Interaction, member: discord.Member):
await send_interaction_media(interaction, member, 'kill', 'kill')