modified: bot.py
This commit is contained in:
37
bot.py
37
bot.py
@@ -3406,16 +3406,24 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
async def send_response(content=None, embed=None, ephemeral=False, file=None):
|
||||
try:
|
||||
if is_slash_command:
|
||||
if hasattr(ctx, 'followup') and ctx.followup:
|
||||
await ctx.followup.send(content=content, embed=embed, ephemeral=ephemeral, file=file)
|
||||
elif hasattr(ctx, 'response') and not ctx.response.is_done():
|
||||
await ctx.response.send_message(content=content, embed=embed, ephemeral=ephemeral, file=file)
|
||||
else:
|
||||
await ctx.send(content=content, embed=embed, file=file)
|
||||
else:
|
||||
await ctx.send(content=content, embed=embed, file=file)
|
||||
except Exception as e:
|
||||
logger.error(f"Error sending response: {e}")
|
||||
# Fallback to regular send if followup fails
|
||||
logger.error(f"Error sending response in warn command: {e}")
|
||||
# Final fallback - try basic send
|
||||
try:
|
||||
await ctx.send(content=content, embed=embed, file=file)
|
||||
except:
|
||||
pass
|
||||
if embed:
|
||||
await ctx.send(embed=embed)
|
||||
elif content:
|
||||
await ctx.send(content=content)
|
||||
except Exception as fallback_error:
|
||||
logger.error(f"Fallback send also failed: {fallback_error}")
|
||||
|
||||
try:
|
||||
# Parse message ID and context range from reason if provided inline
|
||||
@@ -3531,7 +3539,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
moderator_id=ctx.author.id,
|
||||
reason=reason,
|
||||
message_data=message_data,
|
||||
message_id=message_id_int if message_id else None
|
||||
message_id=int(parsed_message_id) if parsed_message_id else None
|
||||
)
|
||||
|
||||
# Get guild settings for threshold checking
|
||||
@@ -3650,9 +3658,20 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
}
|
||||
|
||||
if message_data:
|
||||
log_additional_info["Referenced Message"] = f"ID: {message_data['id']}"
|
||||
log_additional_info["Message Channel"] = f"<#{message_data['channel_id']}>"
|
||||
if message_data['content']:
|
||||
# Handle both old and new message_data formats
|
||||
if isinstance(message_data, dict) and "main_message" in message_data:
|
||||
main_msg = message_data.get("main_message")
|
||||
if main_msg:
|
||||
log_additional_info["Referenced Message"] = f"ID: {main_msg.get('id')}"
|
||||
log_additional_info["Message Channel"] = f"<#{main_msg.get('channel_id')}>"
|
||||
if main_msg.get('content'):
|
||||
content_preview = main_msg['content'][:200] + "..." if len(main_msg['content']) > 200 else main_msg['content']
|
||||
log_additional_info["Message Content"] = content_preview
|
||||
else:
|
||||
# Handle old format
|
||||
log_additional_info["Referenced Message"] = f"ID: {message_data.get('id')}"
|
||||
log_additional_info["Message Channel"] = f"<#{message_data.get('channel_id')}>"
|
||||
if message_data.get('content'):
|
||||
content_preview = message_data['content'][:200] + "..." if len(message_data['content']) > 200 else message_data['content']
|
||||
log_additional_info["Message Content"] = content_preview
|
||||
|
||||
|
||||
Reference in New Issue
Block a user