|
| 1 | +import discord |
| 2 | +import random |
| 3 | +from discord.ext import commands,tasks |
| 4 | +from itertools import cycle |
| 5 | +import pyjokes |
| 6 | +import joke_generator |
| 7 | + |
| 8 | +token = open("token.txt", "r").read() |
| 9 | +mainaccid=open("mainaccid.txt", "r").read() |
| 10 | + |
| 11 | +bot = commands.Bot(command_prefix='!joker ') |
| 12 | +bot.remove_command("help") |
| 13 | +status=cycle(["Why So Sad!?","JOKER IS HERE","Use !joker"]) |
| 14 | + |
| 15 | +@bot.command(pass_context=True) |
| 16 | +async def help(ctx): |
| 17 | + author=ctx.message.author |
| 18 | + help_embed=discord.Embed(title="Joker Help",description="Use !joker before any command",color=discord.Colour.red()) |
| 19 | + #help_embed.set_thumbnail(url=bot.user.avatar_url) |
| 20 | + help_embed.set_thumbnail(url="https://media.tenor.com/images/b9432c96a5ff07c194f337e7b43ff248/tenor.gif") |
| 21 | + help_embed.add_field(name="mention",value="mentions a user",inline=False) |
| 22 | + help_embed.add_field(name="whois/info/details",value="returns details of mentioned user",inline=False) |
| 23 | + help_embed.add_field(name="getdp/getprofilepic/dp",value="returns the profile pic of mentioned user",inline=False) |
| 24 | + help_embed.add_field(name="pm/dm/pvtmessage",value="sends private message to mentioned user",inline=False) |
| 25 | + help_embed.add_field(name="clean/clear",value="one with managing messages permission can delete n number of msgs from a channel",inline=False) |
| 26 | + help_embed.add_field(name="hi/hello",value="say hi",inline=False) |
| 27 | + help_embed.add_field(name="uthere/areuthere",value="ask are you there",inline=False) |
| 28 | + help_embed.add_field(name="insult/troll",value="insult someone",inline=False) |
| 29 | + help_embed.add_field(name="goodmorning/gm",value="wish goodmorning",inline=False) |
| 30 | + help_embed.add_field(name="goodnight/goodn8/nightynight/gn",value="wish goodnight",inline=False) |
| 31 | + help_embed.add_field(name="bye/sayonara/adios",value="say bye",inline=False) |
| 32 | + help_embed.add_field(name="spam",value="spam some text n number of times",inline=False) |
| 33 | + help_embed.add_field(name="choice/choose/select/random",value="choose random item from a list",inline=False) |
| 34 | + help_embed.add_field(name="ping",value="display the ping",inline=False) |
| 35 | + help_embed.add_field(name="cjoke/coding_joke",value="crack a coding related joke",inline=False) |
| 36 | + help_embed.add_field(name="joke",value="crack a joke",inline=False) |
| 37 | + #help_embed.set_image(url="https://media.tenor.com/images/b9432c96a5ff07c194f337e7b43ff248/tenor.gif") |
| 38 | + help_embed.set_footer(text="Requested by: "+str(author)) |
| 39 | + await author.send(embed=help_embed) |
| 40 | + |
| 41 | +def is_it_me(ctx): |
| 42 | + return str(ctx.author.id) == mainaccid |
| 43 | + |
| 44 | +@bot.event |
| 45 | +async def on_ready(): |
| 46 | + change_status.start() |
| 47 | + print('We have logged in as {0.user}'.format(bot)) |
| 48 | + |
| 49 | +@tasks.loop(seconds=10) |
| 50 | +async def change_status(): |
| 51 | + await bot.change_presence(status=discord.Status.online,activity=discord.Game(next(status))) |
| 52 | + |
| 53 | +@bot.event |
| 54 | +async def on_member_join(member): |
| 55 | + for channel in member.server.channels: |
| 56 | + if str(channel)=="general": |
| 57 | + await bot.send_message(f"""WELCOME TO THE SERVER {member.mention}""") |
| 58 | + |
| 59 | +@bot.event |
| 60 | +async def on_command_error(ctx,error): |
| 61 | + if isinstance(error, commands.MissingRequiredArgument): |
| 62 | + await ctx.send("Please pass in all required arguments!") |
| 63 | + elif isinstance(error,commands.CommandNotFound): |
| 64 | + await ctx.send("Invalid command!") |
| 65 | + |
| 66 | +@bot.command() |
| 67 | +async def mention(ctx, user : discord.Member): |
| 68 | + await ctx.send(user.mention) |
| 69 | + |
| 70 | +@bot.command(aliases=["info","details"]) |
| 71 | +async def whois(ctx, member : discord.Member = None): |
| 72 | + if not member: |
| 73 | + member = ctx.author |
| 74 | + embed=discord.Embed(title=member.name,description=member.mention,color=discord.Colour.red()) |
| 75 | + embed.add_field(name="ID",value=member.id,inline=False) |
| 76 | + embed.set_thumbnail(url=member.avatar_url) |
| 77 | + await ctx.send(embed=embed) |
| 78 | + |
| 79 | +@bot.command(aliases=["getprofilepic","dp"]) |
| 80 | +async def getdp(ctx, member: discord.Member = None): |
| 81 | + if not member: |
| 82 | + member = ctx.author |
| 83 | + await ctx.send(member.avatar_url) |
| 84 | + |
| 85 | +##@bot.command(aliases=["memeify"]) |
| 86 | +##@commands.check(is_it_me) |
| 87 | +##async def meme(ctx, member: discord.Member = None): |
| 88 | +## if not member: |
| 89 | +## member = ctx.author |
| 90 | + |
| 91 | + |
| 92 | +@bot.command(aliases=["dm","pvtmessage"]) |
| 93 | +async def pm(ctx , member: discord.Member = None,*,text): |
| 94 | + if not member: |
| 95 | + member = ctx.author |
| 96 | + await member.send(text) |
| 97 | + |
| 98 | +@bot.command(aliases=["clean"]) |
| 99 | +@commands.has_permissions(manage_messages=True) |
| 100 | +async def clear(ctx,amount=1): |
| 101 | + await ctx.channel.purge(limit=amount+1) |
| 102 | + |
| 103 | +hi_urls=["https://media.tenor.com/images/89875b33e32cdd0d1777553653a6717c/tenor.gif", |
| 104 | + "https://media.tenor.com/images/852dab1b47145c779f3266a9ac76d922/tenor.gif", |
| 105 | + "https://media.tenor.com/images/18e364be2476610c0c760a631c63416e/tenor.gif", |
| 106 | + "https://media.tenor.com/images/fe3e2d08c49445ca807935eba60e5627/tenor.gif", |
| 107 | + "https://media.tenor.com/images/5fbe85446cdfa0c3ce15b1e4ddc58c37/tenor.gif", |
| 108 | + "https://media.tenor.com/images/1ab4a2bf24e962b03c27a4c8352c3e2f/tenor.gif", |
| 109 | + "https://media.tenor.com/images/1ee82bdcacdbc8ec55443a349ac1ef03/tenor.gif", |
| 110 | + "https://media.tenor.com/images/e6afa2be25c23e4c6f82f6e2faeb3400/tenor.gif"] |
| 111 | +@bot.command(aliases=["hi"]) |
| 112 | +async def hello(ctx, member : discord.Member = None): |
| 113 | + if not member: |
| 114 | + member = ctx.author |
| 115 | + await ctx.send('Hello! '+member.mention) |
| 116 | + await ctx.send(random.choice(hi_urls)) |
| 117 | + |
| 118 | +uthere_urls=["https://media.tenor.com/images/fa2e94e3d890184f667cf9d0a381a213/tenor.gif", |
| 119 | + "https://media.tenor.com/images/e27c3c608e5502accd4853d343be876c/tenor.gif", |
| 120 | + "https://media.tenor.com/images/fae3cdddd0ca0a75b4fee69188d84e67/tenor.gif", |
| 121 | + "https://media.tenor.com/images/fb438267a923f041ab3b8d5ef2c2e2a4/tenor.gif", |
| 122 | + "https://media.tenor.com/images/843febaec8b2476756038d8300b6c861/tenor.gif", |
| 123 | + "https://media.tenor.com/images/8073fab909716c5cbebfdb6bcc86af71/tenor.gif", |
| 124 | + "https://media.tenor.com/images/9ea44380b5ba010d2e40f321da1564a9/tenor.gif"] |
| 125 | +@bot.command(aliases=["uthere"]) |
| 126 | +async def areuthere(ctx, user : discord.Member = None): |
| 127 | + if not user: |
| 128 | + user=ctx.author |
| 129 | + await ctx.send('Are You There? '+user.mention) |
| 130 | + await ctx.send(random.choice(uthere_urls)) |
| 131 | + |
| 132 | +insult_urls=["https://media.tenor.com/images/19c50486ee6b472aba2817024c5ee4a5/tenor.gif", |
| 133 | + "https://media.tenor.com/images/2141dce8c8a73632749ede31cb6dd215/tenor.gif", |
| 134 | + "https://media.tenor.com/images/7397ff5d71c043634233a2be91053d8a/tenor.gif", |
| 135 | + "https://media.tenor.com/images/14cf6a44d0bd56f95eab06051c2c8bfd/tenor.gif", |
| 136 | + "https://media.tenor.com/images/256b5c5dc88a7c74f010ee0505d931ee/tenor.gif", |
| 137 | + "https://media.tenor.com/images/bc0fd16a9423fbe24127f8cccf247846/tenor.gif", |
| 138 | + "https://media.tenor.com/images/e8713cf0d9b7fc9d03215c394b8ffa0b/tenor.gif", |
| 139 | + "https://media.tenor.com/images/ba01b4ab2950342c129876164aa2d70d/tenor.gif"] |
| 140 | +@bot.command(aliases=["troll"]) |
| 141 | +async def insult(ctx, user : discord.Member =None): |
| 142 | + if not user: |
| 143 | + user=ctx.author |
| 144 | + await ctx.send('Insulting'+user.mention) |
| 145 | + await ctx.send(random.choice(insult_urls)) |
| 146 | + |
| 147 | +gm_urls=["https://media.tenor.com/images/027da4b11ab91e5c0dffb388a8c6f060/tenor.gif", |
| 148 | + "https://media.tenor.com/images/84a8c2f0a681c3fc7db9b7084122d5a1/tenor.gif", |
| 149 | + "https://media.tenor.com/images/c591a3e438a4249775bf00457b915793/tenor.gif", |
| 150 | + "https://media.tenor.com/images/2890b109fc92eff030d1c24db0d2a761/tenor.gif", |
| 151 | + "https://media.tenor.com/images/5852b06765c604372f640218b4e24b3d/tenor.gif", |
| 152 | + "https://media.tenor.com/images/8e9f35f9648ab4256531dde31de09a9f/tenor.gif", |
| 153 | + "https://media.tenor.com/images/8f4a3f2f406ecccc8f790d63e5c94e3e/tenor.gif"] |
| 154 | +@bot.command(aliases=["gm"]) |
| 155 | +async def goodmorning(ctx, user : discord.Member =None): |
| 156 | + if not user: |
| 157 | + user=ctx.author |
| 158 | + await ctx.send('Good Morning! '+user.mention) |
| 159 | + await ctx.send(random.choice(gm_urls)) |
| 160 | + |
| 161 | +gn_urls=["https://media.tenor.com/images/dec42b8d70a58a62cf106ecac1023d60/tenor.gif", |
| 162 | + "https://media.tenor.com/images/ccd68c7c41800fb7090eced436a1bda0/tenor.gif", |
| 163 | + "https://media.tenor.com/images/ef780440dce0fe33dedf9ca205f2ca1c/tenor.gif", |
| 164 | + "https://media.tenor.com/images/106064f0a356423af9e2ac51bef3409a/tenor.gif", |
| 165 | + "https://media.tenor.com/images/819d5eb6ae504c1b94eacdfa13878688/tenor.gif", |
| 166 | + "https://media.tenor.com/images/4a92c3367012116430b31d2315a5b701/tenor.gif", |
| 167 | + "https://media.tenor.com/images/2e89a44860147edcc6349ed3da9c234f/tenor.gif"] |
| 168 | +@bot.command(aliases=["goodn8","nightynight","gn"]) |
| 169 | +async def goodnight(ctx, user : discord.Member =None): |
| 170 | + if not user: |
| 171 | + user=ctx.author |
| 172 | + await ctx.send('Good Night! '+user.mention) |
| 173 | + await ctx.send(random.choice(gn_urls)) |
| 174 | + |
| 175 | +bye_urls=["https://media.tenor.com/images/5becc8db5702cc2f9affea9559f10cd1/tenor.gif", |
| 176 | + "https://media.tenor.com/images/e955f55bab6839ec724531e3bae3303c/tenor.gif", |
| 177 | + "https://media.tenor.com/images/0f5b101d294b217d13b3badb43c38fa0/tenor.gif", |
| 178 | + "https://media.tenor.com/images/217be23d6af58e44d7e0fb48595815bd/tenor.gif", |
| 179 | + "https://media.tenor.com/images/93106f99ea2f7638fa0a49af0dc1bd9c/tenor.gif", |
| 180 | + "https://media.tenor.com/images/80534b478b519f315230d7d1c993a326/tenor.gif", |
| 181 | + "https://media.tenor.com/images/bb2599195ea28683463badc924f01c81/tenor.gif", |
| 182 | + "https://media.tenor.com/images/a13b5ae7e6efa9391c2feacaaeaf5656/tenor.gif", |
| 183 | + "https://media.tenor.com/images/9c6383ca347da05c30cc4dbb986d1ca2/tenor.gif", |
| 184 | + "https://media.tenor.com/images/9b282281b97686e155961a542dc57f87/tenor.gif", |
| 185 | + "https://media.tenor.com/images/a211545ceb0e837aba11287fae0b4dce/tenor.gif"] |
| 186 | +@bot.command(aliases=["sayonara","adios"]) |
| 187 | +async def bye(ctx, user : discord.Member =None): |
| 188 | + if not user: |
| 189 | + user=ctx.author |
| 190 | + await ctx.send('Bye! '+user.mention) |
| 191 | + await ctx.send(random.choice(bye_urls)) |
| 192 | + |
| 193 | +@bot.command() |
| 194 | +async def spam(ctx, times,*,text): |
| 195 | + for i in range(int(times)): |
| 196 | + await ctx.send(text) |
| 197 | + |
| 198 | +@bot.command(aliases=["choose","select","random"]) |
| 199 | +async def choice(ctx,options="yes ,no"): |
| 200 | + await ctx.send(random.choice(options.split(","))) |
| 201 | + |
| 202 | +@bot.command() |
| 203 | +async def ping(ctx): |
| 204 | + await ctx.send(f'Pong! {round(bot.latency *1000)}ms') |
| 205 | + |
| 206 | +@bot.command(aliases=["cjoke"]) |
| 207 | +async def coding_joke(ctx): |
| 208 | + await ctx.send(pyjokes.get_joke()) |
| 209 | + |
| 210 | +@bot.command() |
| 211 | +async def joke(ctx): |
| 212 | + await ctx.send(joke_generator.generate()) |
| 213 | + |
| 214 | + |
| 215 | +bot.run(token) |
0 commit comments