Untitled
unknown
plain_text
3 years ago
6.2 kB
15
Indexable
import discord
import asyncio
import random
from discord.ext import commands
from discord.commands import MissingPermissions
servers = [649691952568205342] #server ids
EMBED_DEFAULT_COLOR = 0xfcd005
CHANNEL_LEAVE_ID = 649698289221894164
id_category = 852277523868942377
id_channel_ticket_logs = 852278111491063839
id_staff_role = 851174263381426246
embed_color = 0xfcd005
class CreateTicket(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(
label = "Create Ticket", style=discord.ui.ButtonStyle.green, emoji="đ«", custom_id="create_ticket:green"
)
async def create_ticket(self, button: discord.ui.Button, interaction: discord.Interaction):
await interaction.response.send_message("Un ticket a été crée.....", ephemeral=True)
class Bot(commands.Bot):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.persistent_views_added = False
async def on_ready(self):
if not self.persistent_views_added:
self.add_view(CreateTicket(self))
self.persistent_views_added = True
print("Persistent views added")
print(f"Le bot est prĂȘt | ConnectĂ© en temps que {self.user}")
bot = commands.Bot(command_prefix='!', intents = discord.Intents.all())
@bot.command()
@commands.has_permissions(manage_guild=True)
async def setup_tickets(ctx):
embed = discord.Embed(title ='La boite Ă ticket de LĂ©on', description ='Bienvenue Ă toi, cette boite est rĂ©alisĂ©e pour t\'aider dans tes requĂȘtes ', color=embed_color)
await ctx.send(embed=embed, view=CreateTicket())
@bot.event
async def on_ready():
print("We have logged in!")
@bot.slash_command(guilds_ids = servers, name = "help", description = "Help command")
async def help(ctx):
rhelp = discord.Embed(color = EMBED_DEFAULT_COLOR)
rhelp.set_author(name = 'Commands/Help', icon_url = '')
rhelp.set_thumbnail(url='https://cdn.discordapp.com/attachments/887759600365993994/924789487740002334/logo-blue.png')
rhelp.add_field(name= 'help', value = 'Cette commande vous a ramené ici !', inline = False)
rhelp.add_field(name= 'version', value = 'Affiche le numéro de la version actuelle et la mise à jour récentes.', inline = False)
rhelp.add_field(name= 'touches', value = 'Affiche les touches du serveur.', inline = False)
rhelp.add_field(name= 'play `#music name or music link`', value = '\nCette commande permet de jouer de la musique sur le serveur.', inline = False)
rhelp.set_footer(text = 'Utilise le prefix "!" avant chaque commande !')
await ctx.respond(embed = rhelp)
@bot.slash_command(guilds_ids = servers, name = "version", description = "Shows the actual patchnote")
async def version(ctx):
ver = discord.Embed(color = EMBED_DEFAULT_COLOR)
ver.set_author(name = 'Patchnote', icon_url= '')
ver.add_field(name = 'Version: 3.0', value = f'âą Montre la nombre de joueurs \n âą Bloque les liens', inline= False)
await ctx.respond(embed = ver)
@bot.slash_command(guild_ids = servers, name = "ban", description = "Ban un membre")
@commands.has_permissions(ban_members = True, administrator = True)
async def ban(ctx, member: discord.Option(discord.Member, description = "Qui voulez vous ban ?"), reason: discord.Option(str, description = "Why?", required = True)):
if member.id == ctx.author.id: #checks to see if they're the same
await ctx.respond("Tu ne peux te ban toi mĂȘme")
elif member.guild_permissions.administrator:
await ctx.respond("ArrĂȘte d'essayer de ban un Admin :rolling_eyes:")
else:
if reason == None:
reason = f"Aucune raison procurée par {ctx.author}"
await member.ban(reason = reason)
await ctx.respond(f"<@{ctx.author.id}>, <@{member.id}> a été banni de maniÚre parfaite \n\nRaison du ban: {reason}")
@ban.error
async def banerror(ctx, error):
if isinstance(error, MissingPermissions):
await ctx.respond("Vous devez avoir les droits d'administrateur pour faire cela !!")
else:
await ctx.respond("Une erreur est survenue") #most likely due to missing permissions
raise error
@bot.slash_command(guild_ids = servers, name = "kick", description = "Kicks a member")
@commands.has_permissions(kick_members = True, administrator = True)
async def kick(ctx, member: discord.Option(discord.Member, description = "Who do you want to kick?"), reason: discord.Option(str, description = "Why?", required = False)):
if member.id == ctx.author.id: #checks to see if they're the same
await ctx.respond("Tu ne peux te kick toi mĂȘme")
elif member.guild_permissions.administrator:
await ctx.respond("ArrĂȘte d'essayer de kick un Admin :rolling_eyes:")
else:
if reason == None:
reason = f"None provided by {ctx.author}"
await member.kick(reason = reason)
await ctx.respond(f"<@{ctx.author.id}>, <@{member.id}> a été kick du serveur !\n\nRaison: {reason}")
@kick.error
async def kickerror(ctx, error):
if isinstance(error, MissingPermissions):
await ctx.respond("Vous devez avoir les droits d'administrateur pour faire cela !")
else:
await ctx.respond("Une erreur est survenue") #most likely due to missing permissions
raise error
@bot.slash_command(guilds_ids=servers, name = "purge", description = "Clear a channel's messages")
@commands.has_permissions(manage_messages = True)
@commands.cooldown(1,5, commands.BucketType.user)
async def purge(ctx, messages: discord.Option(int, description = "Combien de messages voulez vous supprimez", required = True )):
await ctx.defer()
z = await ctx.channel.purge(limit = messages)
await ctx.respond(f"J'ai clear {len(z)}")
@purge.error
async def purgeerror(ctx, error):
if isinstance(error, MissingPermissions):
await ctx.respond("Vous devez avoir les droits d'administrateur pour faire cela !")
elif isinstance(error, discord.ext.commmands.CommandOnCooldown):
await ctx.respond(error)
else:
raise error
Editor is loading...