modified: bot.py
This commit is contained in:
24
bot.py
24
bot.py
@@ -2927,9 +2927,19 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
- reason: Reason for the warning
|
||||
- message_id: Optional message ID to reference
|
||||
"""
|
||||
# Defer the response immediately to prevent timeout
|
||||
# Defer the response immediately to prevent timeout (only for slash commands)
|
||||
if hasattr(ctx, 'interaction') and ctx.interaction:
|
||||
await ctx.defer()
|
||||
|
||||
# Helper function to send messages correctly based on command type
|
||||
async def send_response(content=None, embed=None, ephemeral=False):
|
||||
if hasattr(ctx, 'interaction') and ctx.interaction:
|
||||
# Slash command - use followup
|
||||
await ctx.followup.send(content=content, embed=embed, ephemeral=ephemeral)
|
||||
else:
|
||||
# Prefix command - use normal send
|
||||
await ctx.send(content=content, embed=embed)
|
||||
|
||||
try:
|
||||
# message_data will be populated if message_id is provided
|
||||
message_data = None
|
||||
@@ -2940,7 +2950,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
try:
|
||||
message_id_int = int(message_id)
|
||||
except ValueError:
|
||||
await ctx.followup.send(f"❌ Invalid message ID: {message_id}")
|
||||
await send_response(content=f"❌ Invalid message ID: {message_id}")
|
||||
return
|
||||
# Try to get message data from current channel first
|
||||
message_data = await get_message_data(ctx.channel, message_id_int)
|
||||
@@ -2965,7 +2975,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
description="You need moderation permissions (Level 5 or higher) to use this command.",
|
||||
color=0xff0000
|
||||
)
|
||||
await ctx.followup.send(embed=embed, ephemeral=True)
|
||||
await send_response(embed=embed, ephemeral=True)
|
||||
return
|
||||
|
||||
# Cannot warn yourself
|
||||
@@ -2975,7 +2985,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
description="You cannot warn yourself!",
|
||||
color=0xff0000
|
||||
)
|
||||
await ctx.followup.send(embed=embed, ephemeral=True)
|
||||
await send_response(embed=embed, ephemeral=True)
|
||||
return
|
||||
|
||||
# Check if target has higher permissions
|
||||
@@ -2987,7 +2997,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
description="You cannot warn someone with equal or higher permissions than you.",
|
||||
color=0xff0000
|
||||
)
|
||||
await ctx.followup.send(embed=embed, ephemeral=True)
|
||||
await send_response(embed=embed, ephemeral=True)
|
||||
return
|
||||
|
||||
# Increase warn count
|
||||
@@ -3092,7 +3102,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
inline=False
|
||||
)
|
||||
|
||||
await ctx.followup.send(embed=embed)
|
||||
await send_response(embed=embed)
|
||||
|
||||
# Log the warning action
|
||||
log_additional_info = {
|
||||
@@ -3149,7 +3159,7 @@ async def warn(ctx, user: discord.User, reason: str = "No reason provided", mess
|
||||
description="An error occurred while processing the warning. Please try again.",
|
||||
color=0xff0000
|
||||
)
|
||||
await ctx.followup.send(embed=embed)
|
||||
await send_response(embed=embed)
|
||||
|
||||
@client.hybrid_command()
|
||||
async def mywarns(ctx):
|
||||
|
||||
Reference in New Issue
Block a user