first commit

This commit is contained in:
RayExo
2026-07-12 15:16:07 +05:30
commit 2289301f26
915 changed files with 69400 additions and 0 deletions

105
bot/cogs/commands/dms.py Normal file
View File

@@ -0,0 +1,105 @@
import discord
from discord.ui import LayoutView, TextDisplay, Separator, Container, Button, ActionRow
from discord.ext import commands
from utils.cv2 import CV2, build_container
authorized_staff_ids = [
1263404140965396555,
767979794411028491
]
class SuccessView(LayoutView):
def __init__(self, member):
super().__init__(timeout=None)
self.member = member
self.add_item(
build_container(
TextDisplay("**Message Sent**"),
Separator(visible=True),
TextDisplay(
f"✅ Your message has been successfully sent to **{member.name}**"
),
)
)
class ErrorView(LayoutView):
def __init__(self, member):
super().__init__(timeout=None)
self.member = member
self.add_item(
build_container(
TextDisplay("**Delivery Failed**"),
Separator(visible=True),
TextDisplay(
f"❌ Could not send the message. **{member.name}** may have their DMs disabled."
),
)
)
class GenericErrorView(LayoutView):
def __init__(self, error):
super().__init__(timeout=None)
self.error = error
self.add_item(
build_container(
TextDisplay("**Error Occurred**"),
Separator(visible=True),
TextDisplay(f"🤔 Something went wrong. Error: {error}"),
)
)
class PermissionErrorView(LayoutView):
def __init__(self):
super().__init__(timeout=None)
self.add_item(
build_container(
TextDisplay("**Permission Denied**"),
Separator(visible=True),
TextDisplay("❌ You do not have permission to use this command."),
)
)
class StaffDMCog(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command(name="dmstaff")
async def dm_staff(self, ctx, member: discord.Member, *, message: str):
if ctx.author.id not in authorized_staff_ids:
view = PermissionErrorView()
await ctx.reply(view=view)
return
try:
embed = discord.Embed(
title="📢 A Message from the Staff Team",
description=message,
color=0xFF0000,
)
embed.set_footer(text=f"This message was sent by {ctx.author.name}.")
await member.send(embed=embed)
view = SuccessView(member)
await ctx.reply(view=view)
except discord.Forbidden:
view = ErrorView(member)
await ctx.reply(view=view)
except Exception as e:
view = GenericErrorView(str(e))
await ctx.reply(view=view)
print(f"Error in dmstaff command: {e}")
async def setup(bot):
await bot.add_cog(StaffDMCog(bot))