async def on_message(message): db = fileIO("data/ignore/ignore_list.json", "load") author = message.author server = message.server channel = message.channel settings = {"Channels" : [], "Users" : [], "Roles" : []} if message.content.startswith("b!"): if server.id not in db: db[server.id] = settings fileIO("data/ignore/ignore_list.json", "save", db) print("[ Ignore ] Adding {} to ignore_list.json..".format(server.name)) if channel.id in db[server.id]["Channels"]: ok = await bot.send_message(message.channel, "This channel is in the ignore list, please use another channel.") await asyncio.sleep(10) await bot.delete_message(ok) print("[ Ignore ] Ignoring {} in ignored channel {}.".format(message.author.name, message.channel.name)) elif author.id in db[server.id]["Users"]: ok = await bot.send_message(message.channel, "You are in the ignore list, please consult a mod or admin for your server.") await asyncio.sleep(10) await bot.delete_message(ok) print("[ Ignore ] Ignoring {} ignored user.".format(message.author.name)) elif set(r.id for r in author.roles) & set(db[server.id]["Roles"]): ok = await bot.send_message(message.channel, "You are a member of an ignored role. Please consult a mod or admin for your server.") print("[ Ignore ] Ignoring {} apart of ignore role.".format(message.author.name)) await asyncio.sleep(10) await bot.delete_message(ok) else: await bot.process_commands(message)
async def disable(self, ctx): """disables the modlog""" server = ctx.message.server db = fileIO(self.direct, "load") if not server.id in db: await self.bot.say( "Server not found, use modlogset to set a channnel") return del db[server.id] fileIO(self.direct, "save", db) await self.bot.say("I will no longer send modlog notifications here")
async def toggle(self, ctx): """Enables or Disables the Antilink""" server = ctx.message.server db = fileIO(self.link_data, "load") db[server.id]["Toggle"] = not db[server.id]["Toggle"] if db[server.id]["Toggle"] is True: msg = "Successfully Enabled the Antilinks System\nNote: I need the \"Manage Messages\" Permission to delete messages" else: msg = "I have successfully disabled the Antilinks System." await self.bot.reply(msg) fileIO(self.link_data, "save", db)
async def antiinvite(self, ctx): """Enables or Disables the Antilink""" server = ctx.message.server db = fileIO(self.link_data, "load") db[server.id]["No Invite"] = not db[server.id]["No Invite"] if db[server.id]["No Invite"] is True: msg = "Successfully Enabled AntiInvite\nI will delete all invite links from now on\nNote: I need the \"Manage Messages\" Permission to delete messages" else: msg = "I have successfully disabled antiinvite." await self.bot.reply(msg) fileIO(self.link_data, "save", db)
async def clearmerits(self, ctx, user: discord.Member = None): """CATEG_MOD Clear someone's merits.""" channel = ctx.message.channel author = ctx.message.author guild = ctx.message.guild guildstr = str(guild.id) userstr = str(user.id) if ctx.message.author.guild_permissions.manage_messages == False: embed=discord.Embed(title="🔴 Error", description="You do not have the necessary permissions.", color=0xdd2e44, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) return if user == None: embed=discord.Embed(title="🔴 Error", description="You need to provide a user.", color=0xdd2e44, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) return if user == author: embed=discord.Embed(title="🔴 Error", description="You can't clear your own merits!", color=0xdd2e44, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) return embed=discord.Embed(title=":warning: {}".format(self.client.user.name), description="Are you sure you want to clear {}'s merits?".format(user.mention), color=0xffcd4c, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url,text="Reply with yes to continue.") await ctx.send(embed=embed) def check(m): return m.channel == channel and m.author == author msg = await self.client.wait_for('message', check=check) if msg.content == "yes" or msg.content == "y": if self.db[guildstr][userstr]: del self.db[guildstr][userstr] fileIO(self.path, "save", self.db) embed = discord.Embed(title="🌟 Merit", description="Successfully cleared {}'s merits.".format(user.mention), color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) if not self.db[guildstr]: del self.db[guildstr] fileIO(self.path, "save", self.db) return embed = discord.Embed(title="🌟 Merit", description="{} didn't have any merits to clear.".format(user.mention), color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) else: embed = discord.Embed(title="🌟 Merit", description="Cancelling...", color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed)
async def channel(self, ctx): """toggles channel update logging for the server.""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["togglechannel"] == False: db[server.id]["togglechannel"] = True fileIO(self.direct, "save", db) await self.bot.say("Enabled channel logs.") elif db[server.id]['togglechannel'] == True: db[server.id]['togglechannel'] = False fileIO(self.direct, 'save', db) await self.bot.say("Disabled channel logs.")
async def leave(self, ctx): """toggles notofications when a member leaves the server.""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["toggleleave"] == False: db[server.id]["toggleleave"] = True fileIO(self.direct, "save", db) await self.bot.say("Enabled leave logs.") elif db[server.id]['toggleleave'] == True: db[server.id]['toggleleave'] = False fileIO(self.direct, 'save', db) await self.bot.say("Disabled leave logs.")
async def delete(self, ctx): """toggle notifications when a member delete theyre message""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["toggledelete"] == False: db[server.id]["toggledelete"] = True fileIO(self.direct, "save", db) await self.bot.say("Delete messages enabled") elif db[server.id]["toggledelete"] == True: db[server.id]["toggledelete"] = False fileIO(self.direct, "save", db) await self.bot.say("Delete messages disabled")
async def user(self, ctx): """toggle notifications when a user changes his profile""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["toggleuser"] == False: db[server.id]["toggleuser"] = True fileIO(self.direct, "save", db) await self.bot.say("User messages enabled") elif db[server.id]["toggleuser"] == True: db[server.id]["toggleuser"] = False fileIO(self.direct, "save", db) await self.bot.say("User messages disabled")
async def links(self, ctx): """Enables or Disables the Antilink""" server = ctx.message.server db = fileIO(self.link_data, "load") db[server. id]["Toggle Blacklist"] = not db[server.id]["Toggle Blacklist"] if db[server.id]["Toggle Blacklist"] is True: msg = "Successfully Enabled Antilinks\nI will delete all blacklisted links/words from now on\nNote: I need the \"Manage Messages\" Permission to delete messages" else: msg = "I have successfully disabled Antilinks and will not delete blacklisted links/words from now on." await self.bot.reply(msg) fileIO(self.link_data, "save", db)
async def ban(self, ctx): """toggle notifications when a user is banned""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["toggleban"] == False: db[server.id]["toggleban"] = True fileIO(self.direct, "save", db) await self.bot.say("Ban messages enabled") elif db[server.id]["toggleban"] == True: db[server.id]["toggleban"] = False fileIO(self.direct, "save", db) await self.bot.say("Ban messages disabled")
async def voice(self, ctx): """toggle notifications when voice status change""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["togglevoice"] == False: db[server.id]["togglevoice"] = True fileIO(self.direct, "save", db) await self.bot.say("Voice messages enabled") elif db[server.id]["togglevoice"] == True: db[server.id]["togglevoice"] = False fileIO(self.direct, "save", db) await self.bot.say("Voice messages disabled")
async def embed(self, ctx): """Enables or disables embed modlog.""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["embed"] == False: db[server.id]["embed"] = True fileIO(self.direct, "save", db) await self.bot.say("Enabled embed modlog.") elif db[server.id]["embed"] == True: db[server.id]["embed"] = False fileIO(self.direct, "save", db) await self.bot.say("Disabled embed modlog.")
async def server(self, ctx): """toggles notofications when the server updates.""" server = ctx.message.server db = fileIO(self.direct, "load") if db[server.id]["toggleserver"] == False: db[server.id]["toggleserver"] = True fileIO(self.direct, "save", db) await self.bot.say("Enabled server logs.") elif db[server.id]['toggleserver'] == True: db[server.id]['toggleserver'] = False fileIO(self.direct, 'save', db) await self.bot.say("Disabled server logs.")
async def user(self, ctx, *, user: discord.Member): """Ignore a role.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: if user.id not in db[server.id]["Users"]: db[server.id]["Users"].append(user.id) fileIO(self.load, "save", db) await self.bot.say("User added to the ignore list.") return if user.id in db[server.id]["Users"]: await self.bot.say("This user is already in the ignore list.") return
async def role(self, ctx, *, role: discord.Role): """Ignore a role.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: if role.id not in db[server.id]["Roles"]: db[server.id]["Roles"].append(role.id) fileIO(self.load, "save", db) await self.bot.say("Role added to the ignore list.") return if role.id in db[server.id]["Roles"]: await self.bot.say("This role is already in the ignore list.") return
def get_prefix(self, ctx): jsoncheck() prefixes = fileIO("data/write/prefix.json", "load") settings = fileIO("settings.json", "load") default_prefix = settings["DEFAULT_PREFIX"] if not ctx.guild: return default_prefix elif str(ctx.guild.id) not in prefixes: return default_prefix else: prefix = prefixes[str(ctx.guild.id)] return prefix
async def disable(self, ctx): """Disables the welcomer.""" server = ctx.message.server db = fileIO(self.load, "load") if not server.id in db: await self.bot.say( "Welcomer was never enabled on this server. :face_palm::drool:" ) return del db[server.id] fileIO(self.load, "save", db) await self.bot.say( "Successfully deleted all settings for welcomer for this server.")
async def passport(self, ctx, userid): try: strippedUser = int(userid.strip("<@!&>")) except Exception as e: embed = Embed(title="Error", description="{} is not a valid id.".format(userid), colour=0xFF0000) await ctx.channel.send(embed=embed) return passports = fileIO('data/scambot_protection/passport.json', 'load') try: passports[str(ctx.guild.id)] except: passports[str(ctx.guild.id)] = {} try: passports[str(ctx.guild.id)]['users'] except: passports[str(ctx.guild.id)]['users'] = {} try: pp = passports[str(ctx.guild.id)]['users'][str(strippedUser)] if (pp == 1): del passports[str(ctx.guild.id)]['users'][str(strippedUser)] fileIO('data/scambot_protection/passport.json', 'save', passports) sharedBot.passports.remove(str(strippedUser)) embed = Embed( title="Success", description="**Revoked** passport for user {}.".format( strippedUser), colour=0x443a59) await ctx.channel.send(embed=embed) return except: passports[str(ctx.guild.id)]['users'][str(strippedUser)] = 1 sharedBot.passports.append(str(strippedUser)) fileIO('data/scambot_protection/passport.json', 'save', passports) try: await ctx.guild.unban(discord.Object(id=int(strippedUser))) except: pass await ctx.channel.send( "Unbanned and given passport to user: <@{}>.\nThey will now not be intercepted by the scambot filter" .format(strippedUser))
async def _user(self, ctx, *, user: discord.Member): """Unignore a role.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: if user.id not in db[server.id]["Users"]: await self.bot.say("User is not in the ignore list.") return if user.id in db[server.id]["Users"]: db[server.id]["Users"].remove(user.id) fileIO(self.load, "save", db) await self.bot.say( "This user has been removed from the ignore list.") return
async def _role(self, ctx, *, role: discord.Role): """Unignore a role.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: if role.id not in db[server.id]["Roles"]: await self.bot.say("Role is not in the ignore list.") return if role.id in db[server.id]["Roles"]: db[server.id]["Roles"].remove(role.id) fileIO(self.load, "save", db) await self.bot.say( "This role has been removed from the ignore list.") return
async def _channel(self, ctx, *, channel: discord.Channel): """Unignore a channel.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: if channel.id not in db[server.id]["Channels"]: await self.bot.say("Channel is not in the ignore list.") return if channel.id in db[server.id]["Channels"]: db[server.id]["Channels"].remove(channel.id) fileIO(self.load, "save", db) await self.bot.say( "This channel has been removed from the ignore list.") return
async def channel(self, ctx, *, channel: discord.Channel): """Ignore a channel.""" server = ctx.message.server db = fileIO(self.load, "load") if server.id in db: if channel.id not in db[server.id]["Channels"]: db[server.id]["Channels"].append(channel.id) fileIO(self.load, "save", db) await self.bot.say("Channel added to the ignore list.") return if channel.id in db[server.id]["Channels"]: await self.bot.say( "This channel is already in the ignore list.") return
async def rmmerit(self, ctx, meritID: int=0): """CATEG_MOD Delete a merit.""" if ctx.message.author.guild_permissions.manage_messages == False: embed=discord.Embed(title="🔴 Error", description="You do not have the necessary permissions.", color=0xdd2e44, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) return if meritID < 100000000000000000 or meritID > 9999999999999999999: embed=discord.Embed(title="🔴 Error", description="Invalid merit ID.", color=0xdd2e44, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) return channel = ctx.message.channel author = ctx.message.author guild = ctx.message.guild guildstr = str(guild.id) meritstr = str(meritID) embed=discord.Embed(title=":warning: {}".format(self.client.user.name), description="Are you sure you want to delete this merit?", color=0xffcd4c, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url,text="Reply with yes to continue.") await ctx.send(embed=embed) def check(m): return m.channel == channel and m.author == author msg = await self.client.wait_for('message', check=check) if msg.content == "yes" or msg.content == "y": for x in self.db[guildstr]: if meritstr in self.db[guildstr][x]: del self.db[guildstr][x][meritstr] fileIO(self.path, "save", self.db) embed = discord.Embed(title="🌟 Merit", description="Successfully removed the merit.", color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) if not self.db[guildstr][x]: del self.db[guildstr][x] if not self.db[guildstr]: del self.db[guildstr] fileIO(self.path, "save", self.db) return embed=discord.Embed(title="🔴 Error", description="merit not found.", color=0xdd2e44, timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed) else: embed = discord.Embed(title="🌟 Merit", description="Cancelling...", color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) await ctx.send(embed=embed)
async def insult(self, ctx, user: discord.Member = None): """CATEG_FUN Insult someone.""" if user == None: user = ctx.message.author insults = fileIO("data/read/insults.json", "load") if user.id == self.client.user.id: user = ctx.message.author msg = "How original. No one else had thought of trying to get the bot to insult itself. I applaud your creativity. Yawn. Perhaps this is why you don't have friends. You don't add anything new to any conversation. You are more of a bot than me, predictable answers, and absolutely dull to have an actual conversation with." embed = discord.Embed(title="😡 Insult", description=msg, color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) return await ctx.send(embed=embed) else: embed = discord.Embed(title="😡 Insult", description=user.mention + " " + random.choice(insults), color=client_role_color(self, ctx), timestamp=datetime.utcnow()) embed.set_footer(icon_url=self.client.user.avatar_url, text=self.client.user.name) return await ctx.send(embed=embed)
async def status(self, ctx): """Shows modlog settings for the server.""" server = ctx.message.server db = fileIO(self.direct, "load") try: e = discord.Embed(title="Setting for {}".format(server.name), colour=discord.Colour.blue()) e.add_field(name="Delete", value=str(db[ctx.message.server.id]['toggledelete'])) e.add_field(name="Edit", value=str(db[ctx.message.server.id]['toggleedit'])) e.add_field(name="Roles", value=str(db[ctx.message.server.id]['toggleroles'])) e.add_field(name="User", value=str(db[ctx.message.server.id]['toggleuser'])) e.add_field(name="Voice", value=str(db[ctx.message.server.id]['togglevoice'])) e.add_field(name="Ban", value=str(db[ctx.message.server.id]['toggleban'])) e.add_field(name="Join", value=str(db[ctx.message.server.id]['togglejoin'])) e.add_field(name="Leave", value=str(db[ctx.message.server.id]['toggleleave'])) e.add_field(name="Channel", value=str(db[ctx.message.server.id]['togglechannel'])) e.add_field(name="Server", value=str(db[ctx.message.server.id]['toggleserver'])) e.set_thumbnail(url=server.icon_url) await self.bot.say(embed=e) except KeyError: await self.bot.say("No settings for this server.")
async def on_member_update(self, before, after): server = before.server db = fileIO(self.direct, "load") if not server.id in db: return if db[server.id]['toggleuser'] and db[ server.id]['toggleroles'] == False: return channel = db[server.id]["Channel"] time = datetime.datetime.now() fmt = '%H:%M:%S' if before.roles != after.roles: msg = discord.Embed(colour=discord.Color.blue()) msg.title = "{}'s roles have changed!".format(before.name) msg.add_field(name="Before:", value=css.format(", ".join( [r.name for r in before.roles])), inline=False) msg.add_field(name="After:", value=css.format(", ".join( [r.name for r in after.roles])), inline=False) msg.set_footer(text=timef) msg.set_thumbnail(url=after.avatar_url) await self.bot.send_message(server.get_channel(channel), embed=msg)
async def on_message_edit(self, before, after): server = before.server db = fileIO(self.direct, "load") if not server.id in db: return if db[server.id]['toggleedit'] == False: return if before.content == after.content: return if before.author.bot == True: return if before.channel.id in self.ignore_list["CHANNELS"]: return channel = db[server.id]["Channel"] msg = discord.Embed(colour=discord.Color.blue()) msg.title = "{} has edited a message in {}".format( before.author.display_name, before.channel) msg.add_field(name="Before Message:", value=css.format(before.content), inline=False) msg.add_field(name="After Message:", value=css.format(after.content), inline=False) msg.set_footer(text=timef) msg.set_thumbnail(url=before.author.avatar_url) await self.bot.send_message(server.get_channel(channel), embed=msg)
async def modlogtoggles(self, ctx): """toggle which server activity to log""" if ctx.invoked_subcommand is None: db = fileIO(self.direct, "load") server = ctx.message.server e = discord.Embed(description="""b!modlogtoggle toggle which server activity to log Commands: leave toggles notofications when a member leaves the server. join toggles notofications when a member joins the server. roles toggle notifications when roles change voice toggle notifications when voice status change delete toggle notifications when a member delete theyre message server toggles notofications when the server updates. ban toggle notifications when a user is banned edit toggle notifications when a member edits theyre message channel toggles channel update logging for the server. user toggle notifications when a user changes his profile Type b!help command for more info on a command. You can also type b!help category for more info on a category.""") e.set_author(name="Help for {}'s command group {}.".format( self.bot.user.name, ctx.command), icon_url=ctx.message.server.me.avatar_url) e.set_thumbnail(url=ctx.message.server.me.avatar_url) await self.bot.say(embed=e)
async def on_message_delete(self, message): server = message.server db = fileIO(self.direct, "load") if not server.id in db: return if db[server.id]['toggledelete'] == False: return if message.author.bot == True: return if message.channel.id in self.ignore_list["CHANNELS"]: return channel = db[server.id]["Channel"] time = datetime.datetime.now() fmt = '%H:%M:%S' msg = discord.Embed( title="{0.name} message has been delete in {1.name}!".format( message.author, message.channel), colour=discord.Colour.blue()) msg.add_field(name="Content:", value="```css\n{}```".format(message.content), inline=False) msg.set_thumbnail(url=message.author.avatar_url) msg.set_footer( text=datetime.datetime.now().strftime("%A, %B %-d %Y at %-I:%M%p"). replace("PM", "pm").replace("AM", "am")) await self.bot.send_message(server.get_channel(channel), embed=msg)
async def id(ctx): """Saves your PAD ID. Example usage: ?pad id 334980359""" user = ctx.message.author pid = ctx.message.content.split() if len(pid) != 3: await bot.say("""``` Saves your PAD ID. Example usage: ?pad id 334980359```""") else: if pid[2].isdigit(): if 99999999 < int(pid[2]) < 999999999: if pid[2].startswith("3"): savetofile[user.id] = {"name" : user.name, "id" : pid[2], "team1" : "", "team2" : "", "team3" : "", "padherder" : "", "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("{} Saved. Your ID is now {}. All Leads have been cleared. Padherder cleared.".format(user.mention, check_id(user.id))) else: await bot.say("NA only atm.") else: await bot.say("no.") else: await bot.say("That is not an ID!")
async def leads(ctx): """Saves your most used PAD Teams. Up to 3 teams! Example usage: ?pad leads Yomidra XiangMei Idunn&Idunna""" user = ctx.message.author pteam = ctx.message.content.split() currentid = check_id(user.id) currentpadherder = check_padherder(user.id) if account_check(user.id): if len(pteam) == 2: await bot.say("```Wrong! Type your teams like: ?pad teams [Team 1] [Team 2] [Team 3]```") elif len(pteam) == 3: savetofile[user.id] = {"name" : user.name, "id" : currentid, "team1" : pteam[2], "team2" : "", "team3" : "", "padherder" : currentpadherder, "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("{} Saved. Your top team is {}.".format(user.mention, check_team1(user.id))) elif len(pteam) == 4: savetofile[user.id] = {"name" : user.name, "id" : currentid, "team1" : pteam[2], "team2" : pteam[3], "team3" : "", "padherder" : currentpadherder, "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("{} Saved. Your top 2 teams are {}, and {}.".format(user.mention, check_team1(user.id), check_team2(user.id))) elif len(pteam) == 5: savetofile[user.id] = {"name" : user.name, "id" : currentid, "team1" : pteam[2], "team2" : pteam[3], "team3" : pteam[4], "padherder" : currentpadherder, "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("{} Saved. Your top 3 teams are {}, {}, and {}.".format(user.mention, check_team1(user.id), check_team2(user.id), check_team3(user.id))) else: await bot.say("```Wrong! Type your teams like: ?pad teams [Team 1] [Team 2] [Team 3]. Don't use spaces in team names!```") else: await bot.say("You dont have your ID saved! Do it with ?pad id")
async def box(ctx): """Saves your Padherder. Example usage: ?pad box [PADHERDER]""" user = ctx.message.author oldid = check_id(user.id) oldteam1 = check_team1(user.id) oldteam2 = check_team2(user.id) oldteam3 = check_team3(user.id) pod = ctx.message.content.split(' ') padurl = pod[2].split('/') if account_check(user.id): if len(pod) != 3: await bot.say("""``` Saves your PAD ID. Example usage: ?pad box NepNep OR ?pad box https://www.padherder.com/user/NepNep/monsters/```""") else: if pod[2].startswith("http"): realpadherder = "https://www.padherder.com/user/" + padurl[4] savetofile[user.id] = {"name" : user.name, "id" : oldid, "team1" : oldteam1, "team2" : oldteam2, "team3" : oldteam3, "padherder" : realpadherder, "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("Saved.") elif pod[2].startswith("www.padherder"): realpadherder = "https://www.padherder.com/user/" + padurl[2] savetofile[user.id] = {"name" : user.name, "id" : oldid, "team1" : oldteam1, "team2" : oldteam2, "team3" : oldteam3, "padherder" : realpadherder, "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("Saved.") else: realpadherder = "https://www.padherder.com/user/" + pod[2] savetofile[user.id] = {"name" : user.name, "id" : oldid, "team1" : oldteam1, "team2" : oldteam2, "team3" : oldteam3, "padherder" : pod[2], "null" : ""} fileIO("data/padid/padid.json", "save", savetofile) await bot.say("Saved.")
import os import time import sys token = '' #Bot Token. formatter = commands.HelpFormatter(show_check_failure=False) description = '''This bot is designed for the use in all servers. Bot still in BETA (1.0)''' bot = commands.Bot(command_prefix='?', formatter=formatter, description=description, pm_help=None) ############################################# savetofile = fileIO("data/padid/padid.json", "load") @bot.event async def on_ready(): users = str(len(set(bot.get_all_members()))) servers = str(len(bot.servers)) print('Logged in as') print(bot.user.name) print(bot.user.id) print('------') print("{} servers".format(servers)) print("{} users".format(users)) ####Creates pad command set########################################################################
def check_files(): f = "data/padid/padid.json" if not fileIO(f, "check"): print("Creating empty padid.json...") fileIO(f, "save", {})