Untitled
unknown
plain_text
a year ago
6.2 kB
3
Indexable
Never
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