Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord
- import datetime
- import json
- from commands import setup, close
- class Constants:
- INVITEURL = "https://discordapp.com/oauth2/authorize?client_id=692371091368443945&scope=bot&permissions=805314622"
- TOKEN = ""
- PREFIX = "tt+"
- client = discord.Client()
- commands = {
- "setup": {"help": "Mit diesem Befehl kannst du dein eigenes Ticket System konfigurieren!", "executable": setup},
- "close": {"help": "Mit diesem Befehl kannst du das aktuelle Ticket schließen!", "executable": close}
- }
- def nf(i, n):
- return str(i).zfill(n)
- @client.event
- async def on_raw_reaction_add(payload):
- if client.get_user(payload.user_id).bot:
- return
- with open("server.json", "r") as fh:
- server = json.load(fh)
- if not "cur_open_tickets" in server[str(payload.guild_id)]:
- server[str(payload.guild_id)]["cur_open_tickets"] = {}
- if str(payload.guild_id) in server:
- if str(payload.message_id) == str(server[str(payload.guild_id)]["settings"]["msg_id"]):
- channel = client.get_channel(int(server[str(payload.guild_id)]["settings"]["channel_id"]))
- msg = await channel.fetch_message(int(server[str(payload.guild_id)]["settings"]["msg_id"]))
- member = client.get_user(payload.user_id)
- category = channel.category
- guild = client.get_guild(payload.guild_id)
- supportRoles = server[str(payload.guild_id)]["settings"]["support_roles"]
- pings = ""
- await msg.remove_reaction(payload.emoji, member)
- for ticket_count_ in server[str(payload.guild_id)]["cur_open_tickets"]:
- member_id = server[str(payload.guild_id)]["cur_open_tickets"][ticket_count_]
- if member.id == member_id:
- return
- overwrites = {
- member: discord.PermissionOverwrite(read_messages=True, send_messages=True),
- guild.default_role: discord.PermissionOverwrite(read_messages=False, send_messages=False)
- }
- for roleId in supportRoles:
- role = guild.get_role(roleId)
- overwrites[role] = discord.PermissionOverwrite(read_messages=True, send_messages=True, manage_channels=True)
- pings += role.mention + " **|** "
- pings += member.mention
- ticket_count = 0
- channels = category.channels
- for channel in channels:
- if channel.name.startswith("ticket-"):
- ticket_count += 1
- ticket_count = str(nf(ticket_count, 4))
- ticket_channel = await guild.create_text_channel(name="ticket-" + ticket_count, overwrites=overwrites, category=category)
- ticket_embed = discord.Embed(title="Willkommen im Ticket System, " + member.name + "#" + member.discriminator, description="Stelle einfach deine Frage und jemand wird dir versuchen zu helfen!\n\nSupporter könenn den Befehl tt+close nutzen um das Ticket zu schließen!", color=0x00ff00)
- ticket_embed.set_footer(text="TendoTicket System")
- await ticket_channel.send(embed=ticket_embed)
- ping_msg = await ticket_channel.send(pings)
- await ping_msg.delete()
- server[str(payload.guild_id)]["cur_open_tickets"][int(ticket_count)] = member.id
- with open("server.json", "w") as fh:
- json.dump(server, fh, indent=4)
- @client.event
- async def on_ready():
- await client.change_presence(activity=discord.Game("Tickets überwachen | " + Constants.PREFIX + "help für mehr Hilfe!"))
- print("TendoTicket ist nun fertig gestartet!")
- @client.event
- async def on_message(message):
- if message.author == client.user or message.author.bot:
- return
- if message.content.startswith(Constants.PREFIX):
- invoke = message.content[len(Constants.PREFIX):].split()[0]
- args = message.content.split()[1:]
- if invoke.lower() in commands:
- today = datetime.datetime.now().strftime("%d.%m.%Y %M:%H")
- print(f"\nCommand: {invoke}\nUser: {str(message.author)}\nServer: {message.guild.name} ({message.guild.id})\nZeit: {today}")
- await commands[invoke]["executable"].ex(args, message, client, invoke)
- client.run(Constants.TOKEN)
- print("Development")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement