refactor: Update marriage logic to use fetch_user for better compatibility in guild and DM contexts

This commit is contained in:
Slipstream 2025-05-22 21:21:53 -06:00
parent 7309767ecb
commit 1b7e96f2a5
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -218,7 +218,14 @@ class MarriageCog(commands.Cog):
# Check if proposer is already married
if proposer.id in self.marriages and self.marriages[proposer.id]["status"] == "married":
partner_id = self.marriages[proposer.id]["partner_id"]
partner = interaction.guild.get_member(partner_id)
# Use fetch_user instead of get_member to work in both guild and DM contexts
partner = interaction.guild.get_member(partner_id) if interaction.guild else None
if not partner:
# Fallback to bot's fetch_user if not found in guild or in DM context
try:
partner = await self.bot.fetch_user(partner_id)
except:
pass
partner_name = partner.display_name if partner else "someone"
await interaction.response.send_message(f"You're already married to {partner_name}!", ephemeral=True)
return
@ -226,7 +233,14 @@ class MarriageCog(commands.Cog):
# Check if proposed person is already married
if user.id in self.marriages and self.marriages[user.id]["status"] == "married":
partner_id = self.marriages[user.id]["partner_id"]
partner = interaction.guild.get_member(partner_id)
# Use fetch_user instead of get_member to work in both guild and DM contexts
partner = interaction.guild.get_member(partner_id) if interaction.guild else None
if not partner:
# Fallback to bot's fetch_user if not found in guild or in DM context
try:
partner = await self.bot.fetch_user(partner_id)
except:
pass
partner_name = partner.display_name if partner else "someone"
await interaction.response.send_message(f"{user.display_name} is already married to {partner_name}!", ephemeral=True)
return