Untitled
unknown
plain_text
a year ago
6.8 kB
25
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