async def get_keys(self, ctx): for i in range(Key.key_index_len): key = Key.hypixel_key[str(i)] key_info = API.get_key_info(self, key) if key_info[0] != False: owner = str(key_info[1]).replace('-','') embed = discord.Embed( title = "Hypixel API Keys Status", description = "\uFEFF", colour = discord.Color.green() ) embed.set_author( name = '[!] Confidential' ) embed.add_field( name=f"{API.get_ign(self, owner)}", value=f'`{key_info[0]}`' ) embed.add_field( name=f"Queries: Total", value=f'`{key_info[2]}`' ) embed.add_field( name=f"Queries: Past Min", value=f'`{key_info[3]}`' ) embed.add_field( name=f"Queries: Limit", value=f'`{key_info[4]}`' ) embed.add_field( name=f"\uFEFF", value=f'\uFEFF', inline=False ) await ctx.send(embed=embed) else: embed = discord.Embed( title = "Hypixel API Keys Status", description = "\uFEFF", colour = discord.Color.red() ) embed.set_author( name = '[!] Error' ) embed.add_field( name=f"**`ALERT!`** | `{key_info[1]}`", value=f'`{key_info[2]}`' ) await ctx.send(embed=embed)
async def previous_names(self, ctx, ign): await ctx.trigger_typing() uuid = API.get_uuid(self, ign)[0] names = API.get_names(self, uuid) embed = discord.Embed( color=discord.Color.green(), title='Previous Names for {}'.format(ign), description='https://namemc.com/profile/{}'.format(ign)) names_string = '' for i in range(len(names) - 1): names_string += f'`{names[i]}`\n' embed.add_field(name=f"\uFEFF", value=f'{names_string}') embed.set_footer(text="Bedwars Tier Bot || Built by @Iron#1337 et al.") await ctx.send(embed=embed)
async def status(self, ctx, ign: str = None): await ctx.trigger_typing() if ign == None: ign = ctx.author.nick ign = Calcs.get_nick(self, ign) await ctx.send(f"using ign: {ign}") await ctx.trigger_typing() uuid = API.get_uuid(self, ign)[0] hypixel_data = API.get_hypixel(self, uuid) if not bool(hypixel_data["success"]): if hypixel_data["cause"] == 'Invalid API key': await ctx.send("Invalid API Key") await ctx.send(ctx.message.author.mention) await ctx.send(embed=discord.Embed( description= f'The player "{ign}" doesn\'t exist or has not logged on to Hypixel before!' )) online = False color = discord.Color.red() try: if int(hypixel_data['player']["lastLogin"]) > int( hypixel_data['player']["lastLogout"]): online = True color = discord.Color.green() else: pass except: online = 'UNKNOWN' image = f"https://mc-heads.net/head/{uuid}/128" image_full = f"https://mc-heads.net/body/{uuid}/512" embed = discord.Embed(title="Status", description="\uFEFF", color=color) embed.set_author(name=ign, icon_url=image) embed.set_image(url=image_full) try: embed.add_field(name="Prefix", value='`{}`'.format( hypixel_data['player']["prefix"])) except: pass embed.add_field(name="Rank", value=f'`{Calcs.Rank.rank(self, ign)}`') embed.add_field( name="Level", #networkLevel = (sqrt((2 * hypixel_data['player']["networkExp"]) + 30625) / 50) - 2.5 value='`{}`'.format( round( Calcs.get_hypixel_network_level( self, hypixel_data['player']["networkExp"])), 2)) embed.add_field(name="Karma", value='`{:,d}`'.format( hypixel_data['player']["karma"])) embed.add_field(name="Guild", value=f'`{API.get_guild(self, ign)}`') embed.add_field(name="NameMC", value='https://namemc.com/profile/{}'.format(ign), inline=False) embed.add_field(name="\uFEFF", value='\uFEFF', inline=False) try: embed.add_field( name="Last Login", value=datetime.fromtimestamp( round(int(hypixel_data['player']["lastLogin"]) / 1000, 0)), inline=False) embed.add_field( name="Last Logout", value=datetime.fromtimestamp( round(int(hypixel_data['player']["lastLogout"]) / 1000, 0)), inline=False) except: pass embed.add_field(name="Online", value=f'`{online}`', inline=False) embed.add_field(name="Discord", value=f'`{Calcs.get_socials(self, ign)}`', inline=False) try: embed.add_field(name="Last Game Played", value='`{}`'.format( hypixel_data['player']["mostRecentGameType"])) except: embed.add_field(name="Last Game Played", value='`UNKNOWN`') await ctx.send(ctx.message.author.mention) return await ctx.send(embed=embed)
async def guild(self, ctx, ign: str = None, guild_name: str = None, list_members: str = None): await ctx.trigger_typing() if ign == None: ign = ctx.author.nick ign = Calcs.get_nick(self, ign) await ctx.send(f"using ign: {ign}") if guild_name == None: guild_name = API.get_guild(self, ign) guild_data = None use_guild_name = False if ign == "info" and guild_name != None: await ctx.send(f'Getting guild info for "{guild_name}"') guild_data = API.get_guild(self, ign, guild_name) use_guild_name = True await ctx.trigger_typing() uuid = None show_data = False try: uuid = API.get_uuid(self, ign)[0] except: pass hypixel_data = API.get_hypixel(self, uuid) if not bool(hypixel_data["success"]): if hypixel_data["cause"] == 'Invalid API key': await ctx.send("Invalid API Key") await ctx.send(ctx.message.author.mention) await ctx.send(embed=discord.Embed( description= f'The player "{ign}" doesn\'t exist or has not logged on to Hypixel before!' )) creation_date = "?" level = "?" most_earnings_game = "?" owner = "?" try: if use_guild_name == False: guild_data = API.get_guild(self, ign, guild_name) creation_date = guild_data['guild']['created'] creation_date = datetime.utcfromtimestamp( int(creation_date) / 1000).strftime('%Y-%m-%d %H:%M:%S') level = Calcs.get_guild_level(int(guild_data['guild']['exp'])) games = [] game_earnings = [] for game in guild_data['guild']['guildExpByGameType']: games.append(game) game_earnings.append( guild_data['guild']['guildExpByGameType'][game]) max_earnings_index = game_earnings.index(max(game_earnings)) most_earnings_game = games[max_earnings_index] for member in guild_data['guild']['members']: if member['rank'] == "Guild Master": owner = API.get_ign(self, member['uuid']) show_data = True except: if guild_name == "?" or guild_name == None: guild_name = "" if ign == "info" and use_guild_name == True: ign = "" await ctx.send( f'The guild "{guild_name}" doesn\'t exist \nor the player "{ign}" does not belong to a guild.' ) color = discord.Color.blue() color2 = discord.Color.blurple() image = f"https://mc-heads.net/head/{uuid}/128" embed = discord.Embed(title="Guild | {}".format(guild_name), description="\uFEFF", color=color) if use_guild_name == False: embed.set_author(name=ign, icon_url=image) embed.add_field(name="Creation Date", value='`{}`'.format(creation_date), inline=False) embed.add_field(name="Guild Level", value='`{}`'.format(level)) embed.add_field( name="Owner", value='`{}`'.format(owner), ) embed.add_field(name="Most Played Game", value='`{}`'.format(most_earnings_game)) if show_data == True: await ctx.send(ctx.message.author.mention) await ctx.send(embed=embed) if list_members == "members" or list_members != "": embed = discord.Embed( title="Guild Members | {}".format(guild_name), description="\uFEFF", color=color2) for member in guild_data['guild']['members']: member_ign = API.get_ign(self, member['uuid']) member_join_date = member['joined'] member_join_date = datetime.utcfromtimestamp( int(member_join_date) / 1000).strftime('%Y-%m-%d') member_rank = member['rank'] embed.add_field(name=f"**{member_ign}**", value=f''' - joined on `{member_join_date}` - rank . . . . .`{member_rank}` ''', inline=False) return await ctx.send(embed=embed)
command_prefix=get_prefix, bot_id=bot_id, main_server_id=main_server_id, github_token=github_token) bot.remove_command('help') # load classes bot.add_cog(Admin(bot)) if int(bot_id) in [1, 3]: bot.add_cog(Verify(bot)) bot.add_cog(Loot(bot)) bot.add_cog(Stocks(bot)) bot.add_cog(Racket(bot)) bot.add_cog(Revive(bot)) bot.add_cog(Crimes(bot)) bot.add_cog(API(bot)) bot.add_cog(Chain(bot)) bot.add_cog(Misc(bot)) bot.add_cog(Repository(bot)) bot.add_cog(Elimination(bot)) elif int(bot_id) in [2]: bot.add_cog(Marvin(bot)) elif int(bot_id) in [4]: bot.add_cog(Stocks(bot)) # run bot bot.run(token)