Files
Syntrel/cogs/general/invite.py
neoarz ae5e828869 feat: (description) botinfo, invite, ping
Botinfo now sends ephemeral responses for interactions. Invite command generates invite links dynamically using environment permissions and adds an author icon. Ping command embeds now include an author icon for consistency.
2025-09-15 09:00:02 -04:00

50 lines
1.6 KiB
Python

"""
Copyright © Krypton 2019-Present - https://github.com/kkrypt0nn (https://krypton.ninja)
Description:
🐍 A simple template to start to code your own and personalized Discord bot in Python
Version: 6.4.0
"""
import os
import discord
from discord.ext import commands
from discord.ext.commands import Context
class Invite(commands.Cog, name="invite"):
def __init__(self, bot) -> None:
self.bot = bot
@commands.hybrid_command(
name="invite",
description="Get the invite link of the bot to be able to invite it.",
)
async def invite(self, context: Context) -> None:
"""
Get the invite link of the bot to be able to invite it.
:param context: The hybrid command context.
"""
client = self.bot.user
if client is None:
await context.send("Bot is not ready. Try again shortly.")
return
permissions = os.getenv("INVITE_PERMISSIONS", "0")
invite_url = (
f"https://discord.com/api/oauth2/authorize?client_id={client.id}"
f"&scope=bot%20applications.commands&permissions={permissions}"
)
embed = discord.Embed(description=f"Invite me by clicking [here]({invite_url}).", color=0x7289DA)
embed.set_author(name="Invite Me", icon_url="https://yes.nighty.works/raw/y5SEZ9.webp")
try:
await context.author.send(embed=embed)
await context.send("I sent you a private message!")
except discord.Forbidden:
await context.send(embed=embed)
async def setup(bot) -> None:
await bot.add_cog(Invite(bot))