Untitled
unknown
plain_text
a year ago
6.8 kB
21
Indexable
import discord,os from datetime import datetime from datetime import timedelta from discord import app_commands,utils from discord.ext import commands token_bot = REMOVI MEU CODIGO POR SEGURANÇA intents = discord.Intents.default() client = discord.Client(intents=intents) @client.event async def on_ready(): print (f'estou pronto') id_servidor = REMOVI POR SEGURANÇA id_staff = REMOVI POR SEGURANÇA id_staff_shanks = REMOVI POR SEGURANÇA id_staff_klaus = REMOVI POR SEGURANÇA id_categoria_ticket = REMOVI POR SEGURANÇA emojiglobal = "🧰" # ESSE PODE MUDAR tipoticket = "1" staff = "1" mensagemcanal = "1" categoriadeatendimento = "1" mensagemerro = 'Sem permissão' class Dropdown(discord.ui.Select): def __init__(self): options = [ discord.SelectOption(value="ajuda", label="Ajuda", description="MUDAR DEPOIS", emoji="👋"), discord.SelectOption(value="atendimento", label="Atendimento",description="MUDAR DEPOIS" ,emoji="📨"), ] super().__init__( placeholder="Selecione uma opção...", min_values=1, max_values=1, options=options, custom_id="persistent_view:dropdown_help" ) async def callback(self, interaction: discord.Interaction): global emojiglobal global tipoticket global staff global mensagemcanal global categoriadeatendimento self.placeholder = "Selecione uma opção" self.options = self.options await interaction.message.edit(view=self.view) if self.values[0] == "ajuda": emojiglobal = "🧰" #PODE MUDAR DEPOIS tipoticket = "Ticket de ajuda" staff = id_staff mensagemcanal = "Fale com o nosso suporte" categoriadeatendimento = id_categoria_ticket await interaction.response.send_message(mensagemcanal, ephemeral=True, view=CreateTicket()) elif self.values[0] == "atendimento": emojiglobal = "🧰" #PODE MUDAR DEPOIS tipoticket = "Ticket de ajuda" staff = id_staff mensagemcanal = "PODE MUDAR DEPOIS" categoriadeatendimento = id_categoria_ticket await interaction.response.send_message(mensagemcanal, ephemeral=True, view=CreateTicket()) class DropdownView(discord.ui.View): def __init__(self): super().__init__(timeout=None) self.add_item(Dropdown()) class CreateTicket(discord.ui.View): def __init__(self): super().__init__(timeout=None) self.value=None @discord.ui.button(label="Abrir Ticket",style=discord.ButtonStyle.blurple, emoji='📨') async def ticket(self,interaction: discord.Interaction, button: discord.ui.Button): self.value = True self.stop() ticket = None embedticket = discord.Embed( colour=25252, #mudar a cor depois title='Suporte', description=f"> Olá, {interaction.user.mention}. MUDAR DEPOIS XXXXXXX." ) atendente = interaction.guild.get_role(staff) categoria = interaction.guild.get_channel(categoriadeatendimento) overwrites = { # definindo as permissões para o canal que será criado abaixo, dica default_role é o everyone interaction.guild.default_role: discord.PermissionOverwrite(read_messages=False,send_messages=True,attach_files=True,use_application_commands=True), interaction.user: discord.PermissionOverwrite(read_messages=True,send_messages=True), atendente: discord.PermissionOverwrite(read_messages=True,send_messages=True, use_application_commands=True) } ticket = await interaction.guild.create_text_channel(f"{emojiglobal}-{interaction.user.name}",overwrites=overwrites,category=categoria) await interaction.response.send_message(ephemeral=True,content=f"ticket criado \n{ticket.mention}") await ticket.send(embed=embedticket) class DeleteTicket(discord.ui.View): # Botão deletar ticket def __init__(self): super().__init__(timeout=300) self.value = None @discord.ui.button(label="Encerrar Ticket", style=discord.ButtonStyle.red, emoji='❗') async def confirm(self, interaction: discord.Interaction, button: discord.ui.Button): self.value = True self.stop() mod = interaction.guild.get_role(id_staff) if interaction.permissions.kick_members: await interaction.channel.send("Seu atendimento está sendo encerrado") await interaction.response.defer() await interaction.followup.send("Seu Atendimento foi encerrado...") class client(discord.Client): # PARTE QUE LIGA O BOT def __init__(self): super().__init__(intents=discord.Intents.default()) self.synced = False async def setup_hook(self): self.add_view(DropdownView()) async def on_ready(self): await self.wait_until_ready() if not self.synced: # Checar se os comandos slash foram sincronizados await tree.sync(guild=discord.Object(id=1252105718203682847)) self.synced = True print(f"Estou funcionando!") aclient = client() tree = app_commands.CommandTree(aclient) @tree.command(guild=discord.Object(id=1252105718203682847),name = 'setup', description='Crie um Menu ticket') @commands.has_permissions(manage_guild=True) async def setup(interaction: discord.Interaction): embed1 = discord.Embed( colour= 25256, title= 'Suporte', description="> Entre em contato com o nosso suporte!" ) if interaction.permissions.manage_guild:# Verifica a permissão de quem ta usando o comando, somente gerenciadores de servidor podem usar await interaction.response.send_message("Painel criado",ephemeral=True)# responde confirmando a criação da mensagem await interaction.channel.send(embed=embed1,view=DropdownView()) # envia a mensagem else:await interaction.response.send_message(mensagemerro,ephemeral=True)# retorna erro se a condição não for valida @tree.command(guild=discord.Object(id=1252105718203682847),name="fecharticket",description='Feche um atendimento atual.') @commands.has_permissions(manage_guild=True) async def _fecharticket(interaction: discord.Interaction): if interaction.permissions.kick_members: await interaction.response.send_message("Você deseja encerrar o seu atendimento?",view=DeleteTicket()) else: await interaction.response.send_message(mensagemerro,ephemeral=True) aclient.run(token_bot)
Editor is loading...
Leave a Comment