Advertisement
Guest User

DC Bot Error

a guest
Apr 6th, 2020
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.34 KB | None | 0 0
  1. import discord
  2. import datetime
  3. import json
  4. from commands import setup, close
  5.  
  6. class Constants:
  7.     INVITEURL = "https://discordapp.com/oauth2/authorize?client_id=692371091368443945&scope=bot&permissions=805314622"
  8.     TOKEN = ""
  9.     PREFIX = "tt+"
  10.  
  11.  
  12. client = discord.Client()
  13. commands = {
  14.     "setup": {"help": "Mit diesem Befehl kannst du dein eigenes Ticket System konfigurieren!", "executable": setup},
  15.     "close": {"help": "Mit diesem Befehl kannst du das aktuelle Ticket schließen!", "executable": close}
  16. }
  17.  
  18. def nf(i, n):
  19.     return str(i).zfill(n)
  20.  
  21. @client.event
  22. async def on_raw_reaction_add(payload):
  23.     if client.get_user(payload.user_id).bot:
  24.         return
  25.     with open("server.json", "r") as fh:
  26.         server = json.load(fh)
  27.  
  28.     if not "cur_open_tickets" in server[str(payload.guild_id)]:
  29.         server[str(payload.guild_id)]["cur_open_tickets"] = {}
  30.  
  31.     if str(payload.guild_id) in server:
  32.         if str(payload.message_id) == str(server[str(payload.guild_id)]["settings"]["msg_id"]):
  33.             channel = client.get_channel(int(server[str(payload.guild_id)]["settings"]["channel_id"]))
  34.             msg = await channel.fetch_message(int(server[str(payload.guild_id)]["settings"]["msg_id"]))
  35.             member = client.get_user(payload.user_id)
  36.             category = channel.category
  37.             guild = client.get_guild(payload.guild_id)
  38.             supportRoles = server[str(payload.guild_id)]["settings"]["support_roles"]
  39.  
  40.             pings = ""
  41.             await msg.remove_reaction(payload.emoji, member)
  42.  
  43.             for ticket_count_ in server[str(payload.guild_id)]["cur_open_tickets"]:
  44.                 member_id = server[str(payload.guild_id)]["cur_open_tickets"][ticket_count_]
  45.                 if member.id == member_id:
  46.                     return
  47.  
  48.             overwrites = {
  49.                         member: discord.PermissionOverwrite(read_messages=True, send_messages=True),
  50.                         guild.default_role: discord.PermissionOverwrite(read_messages=False, send_messages=False)
  51.                           }
  52.  
  53.             for roleId in supportRoles:
  54.                 role = guild.get_role(roleId)
  55.                 overwrites[role] = discord.PermissionOverwrite(read_messages=True, send_messages=True, manage_channels=True)
  56.                 pings += role.mention + " **|** "
  57.  
  58.             pings += member.mention
  59.  
  60.             ticket_count = 0
  61.             channels = category.channels
  62.             for channel in channels:
  63.                 if channel.name.startswith("ticket-"):
  64.                     ticket_count += 1
  65.  
  66.  
  67.             ticket_count = str(nf(ticket_count, 4))
  68.  
  69.             ticket_channel = await guild.create_text_channel(name="ticket-" + ticket_count, overwrites=overwrites, category=category)
  70.  
  71.             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)
  72.             ticket_embed.set_footer(text="TendoTicket System")
  73.             await ticket_channel.send(embed=ticket_embed)
  74.  
  75.             ping_msg = await ticket_channel.send(pings)
  76.             await ping_msg.delete()
  77.  
  78.             server[str(payload.guild_id)]["cur_open_tickets"][int(ticket_count)] = member.id
  79.            
  80.     with open("server.json", "w") as fh:
  81.         json.dump(server, fh, indent=4)
  82.  
  83.  
  84.  
  85.  
  86. @client.event
  87. async def on_ready():
  88.     await client.change_presence(activity=discord.Game("Tickets überwachen | " + Constants.PREFIX + "help für mehr Hilfe!"))
  89.     print("TendoTicket ist nun fertig gestartet!")
  90.  
  91. @client.event
  92. async def on_message(message):
  93.     if message.author == client.user or message.author.bot:
  94.         return
  95.  
  96.     if message.content.startswith(Constants.PREFIX):
  97.         invoke = message.content[len(Constants.PREFIX):].split()[0]
  98.         args = message.content.split()[1:]
  99.  
  100.         if invoke.lower() in commands:
  101.             today = datetime.datetime.now().strftime("%d.%m.%Y %M:%H")
  102.  
  103.             print(f"\nCommand: {invoke}\nUser: {str(message.author)}\nServer: {message.guild.name} ({message.guild.id})\nZeit: {today}")
  104.             await commands[invoke]["executable"].ex(args, message, client, invoke)
  105.  
  106. client.run(Constants.TOKEN)
  107.  
  108.  
  109. print("Development")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement