Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.36 KB | None | 0 0
  1. import discord
  2. from discord.ext import commands
  3. from discord import utils
  4. import asyncio
  5.  
  6. class BugCommand:
  7. """A bug reporting command."""
  8.  
  9. def __init__(self, bot):
  10. self.bot = bot
  11.  
  12. @commands.command(name="bugreport", pass_context=True, no_pm=True)
  13. async def BugCommand(self, ctx):
  14. """idklol"""
  15. author = ctx.message.author
  16. serverr = ctx.message.server
  17. channel = self.bot.get_channel("414890753601437696")
  18. staffchannel = self.bot.get_channel("267275633233625088")
  19. aprole = discord.utils.get(serverr.roles, name="Bugs/Help")
  20. await self.bot.delete_message(ctx.message)
  21. if aprole in author.roles:
  22. aapplied = await self.bot.send_message(author, embed=discord.Embed(title="Help", description="You already have a support ticket wait for that to expire first or DM a ONLINE staff member.", color=0xff5357))
  23. await asyncio.sleep(30)
  24. await self.bot.delete_message(aapplied)
  25. else:
  26. while True:
  27. avatar = author.avatar_url if author.avatar \
  28. else author.default_avatar_url
  29. roles = serverr.roles
  30. role = discord.utils.get(roles, id="417094521919373323")
  31. await self.bot.add_roles(author, role)
  32. em = discord.Embed(title="Bug-ID: {}".format(author.id), color=0xff5357)
  33. em.set_author(name='Bug report by {}'.format(author.name), icon_url=avatar)
  34. howmsg = await self.bot.say(embed=discord.Embed(title="How", description="Explain in as much detail as possible what you did to make the bug/exploit happen and what you were doing before.", color=0xff5357))
  35. while True:
  36. how = await self.bot.wait_for_message(channel=howmsg.channel, author=author, timeout=600)
  37. if how == None:
  38. time = await self.bot.say(embed=discord.Embed(title="Time", description="You ran out of time try again!", color=0xff5357))
  39. await self.bot.delete_message(howmsg)
  40. await asyncio.sleep(30)
  41. await self.bot.delete_message(time)
  42. break
  43. else:
  44. em.add_field(name="How: ", value=how.content, inline=True)
  45. await self.bot.delete_message(howmsg)
  46. await self.bot.delete_message(how)
  47. break
  48. if how == None:
  49. break
  50. reproducemsg = await self.bot.say(embed=discord.Embed(title="Reproduce", description="Can you reproduce said bug/exploit? If so how.", color=0xff5357))
  51. while True:
  52. reproduce = await self.bot.wait_for_message(channel=reproducemsg.channel, author=author, timeout=600)
  53. if reproduce == None:
  54. time = await self.bot.say(embed=discord.Embed(title="Time", description="You ran out of time try again!", color=0xff5357))
  55. await self.bot.delete_message(reproducemsg)
  56. await asyncio.sleep(30)
  57. await self.bot.delete_message(time)
  58. break
  59. else:
  60. em.add_field(name="Reproducable: ", value=reproduce.content, inline=True)
  61. await self.bot.delete_message(reproducemsg)
  62. await self.bot.delete_message(reproduce)
  63. break
  64. if reproduce == None:
  65. break
  66. modsmsg = await self.bot.say(embed=discord.Embed(title="Mods", description="Which mods are involved in this bug/exploit.", color=0xff5357))
  67. while True:
  68. mods = await self.bot.wait_for_message(channel=modsmsg.channel, author=author, timeout=600)
  69. if mods == None:
  70. time = await self.bot.say(embed=discord.Embed(title="Time", description="You ran out of time try again!", color=0xff5357))
  71. await self.bot.delete_message(modsmsg)
  72. await asyncio.sleep(30)
  73. await self.bot.delete_message(time)
  74. break
  75. else:
  76. em.add_field(name="Mods involved: ", value=mods.content, inline=True)
  77. await self.bot.delete_message(modsmsg)
  78. await self.bot.delete_message(mods)
  79. break
  80. if mods == None:
  81. break
  82. servermsg = await self.bot.say(embed=discord.Embed(title="Server", description="Which server did you do this bug/exploit on: Project Ozone 2 or Divine Journey.", color=0xff5357))
  83. while True:
  84. server = await self.bot.wait_for_message(channel=servermsg.channel, author=author, timeout=600)
  85. if server == None:
  86. time = await self.bot.say(embed=discord.Embed(title="Time", description="You ran out of time try again!", color=0xff5357))
  87. await self.bot.delete_message(servermsg)
  88. await asyncio.sleep(30)
  89. await self.bot.delete_message(time)
  90. break
  91. else:
  92. em.add_field(name="Server: ", value=server.content, inline=True)
  93. await self.bot.delete_message(servermsg)
  94. await self.bot.delete_message(server)
  95. break
  96. if server == None:
  97. break
  98. em.set_footer(text="© DerpDays - 2018")
  99. everyone_perms = discord.PermissionOverwrite(read_messages=False)
  100. my_perms = discord.PermissionOverwrite(read_messages=True)
  101. everyone = discord.ChannelPermissions(target=serverr.default_role, overwrite=everyone_perms)
  102. mine = discord.ChannelPermissions(target=author, overwrite=my_perms)
  103. staff = discord.ChannelPermissions(target=discord.utils.get(serverr.roles, name="Staff"), overwrite=my_perms)
  104. bugchannel = await self.bot.create_channel(serverr, 'Bug-{}'.format(author.name), everyone, mine, staff)
  105. staffmsg = await self.bot.send_message(staffchannel, "@here", embed=discord.Embed(title="Bugs", description="{} is reporting a bug in {}!".format(author.mention, bugchannel.mention), color=0xff5357))
  106. await self.bot.send_message(bugchannel, embed=discord.Embed(title="Bugs", description="Please wait for a member of staff to help you this channel will be deleted after a hour if no-one answers you run the command again!", color=0xff5357))
  107. botmsg = await self.bot.send_message(bugchannel, embed=em)
  108. sentmsg = await self.bot.say(embed=discord.Embed(title="Bugs", description="Bug report sent successfully!"))
  109. await asyncio.sleep(30)
  110. await self.bot.delete_message(sentmsg)
  111. #await asyncio.sleep(30)
  112. await asyncio.sleep(3570)
  113. await self.bot.remove_roles(author, role)
  114. await self.bot.delete_message(staffmsg)
  115. await self.bot.delete_channel(bugchannel)
  116.  
  117.  
  118.  
  119.  
  120. def setup(bot):
  121. bot.add_cog(BugCommand(bot))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement