Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @commands.command(pass_context=True)
- async def stats(self, ctx, platform : str, userID : str):
- """Set your rank!
- userID = SteamID64/Custom URL or PSN ID
- platform = steam/ps4 (default: steam)
- Examples:
- !stats steam barbosicks
- !stats steam 76561198042160246
- !stats ps4 J_knaps"""
- platform = platform.lower()
- if not (platform == "steam" or platform == "ps4"):
- await self.bot.say("{}, Invalid platform. Please use steam/ps4.".format(ctx.message.author.mention))
- return
- message11 = await self.bot.say("Searching...")
- try:
- if platform == "steam":
- if userID.startswith("http"):
- userID = userID.rstrip('/').rsplit('/', 1)[-1]
- if not re.match('\d{17}', userID):
- async with aiohttp.ClientSession() as session:
- async with session.get('http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=STEAMAPIKEY&vanityurl='+userID) as resp:
- r = await resp.json()
- if r['response']['success'] == 1:
- userID = r['response']['steamid']
- else:
- await self.bot.reply("player not found. Please check your submitted data.")
- return
- getheaders = {'Authorization': 'Bearer 0HN9J81F6T37R2N2A1CELUKULSRUE3AZ'}
- async with aiohttp.ClientSession() as session:
- async with session.get('https://api.rocketleaguestats.com/v1/player?unique_id='+ userID + "&platform_id="+ platforms[platform], headers=getheaders) as resp:
- if resp.status == 200:
- r = await resp.json()
- # if r['ranking'] == 'updating':
- # await self.bot.say("Your stats are updating or incorrect player data. Please try again later.")
- # return
- elif resp.status == 404:
- await self.bot.reply("player not found. Please check your submitted data.")
- return
- else:
- await self.bot.reply("an error occurred. Please try again later.")
- return
- player = r
- except:
- await self.bot.reply("an error occurred. Please try again later.")
- return
- try:
- player['ranking'] = player['rankedSeasons']['6']
- except:
- await self.bot.reply("you haven't played games this season yet. Please get a rank on current season before trying to register.")
- return
- maxtier = max([d['tier'] for d in player['ranking'].values()])
- if maxtier < 13:
- await self.bot.reply("we currently don't support ranks below Diamond. Sorry.")
- return
- img = requests.get(player['signatureUrl'])
- with open("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png", "wb") as f:
- f.write(img.content)
- message12 = await self.bot.upload("data/rlsix/images/temp_"+ctx.message.author.id+ ".png")
- message13 = await self.bot.say("{}, **Is this you?** (confirm with **yes**)".format( ctx.message.author.mention))
- response = await self.bot.wait_for_message(author=ctx.message.author, timeout=60)
- if response != None:
- if response.content.lower().strip() == "yes":
- try:
- os.remove("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png")
- except:
- pass
- # if '13' not in player['ranking']:
- # player['ranking']['13'] = {}
- # player['ranking']['13']['tier'] = 0
- # if '12' not in player['ranking']:
- # player['ranking']['12'] = {}
- # player['ranking']['12']['tier'] = 0
- # if maxtier >= 19 or player['ranking']['13']['tier'] >= 18 or player['ranking']['12']['tier'] >= 18:
- # role2 = self.ranked_roles[str(ctx.message.server.id)][2]
- if maxtier >= 16:
- role2 = self.ranked_roles[str(ctx.message.server.id)][1]
- else:
- role2 = self.ranked_roles[str(ctx.message.server.id)][0]
- roles = [k for k in ctx.message.author.roles if k in self.ranked_roles[str(ctx.message.server.id)].values()]
- r = list(set(ctx.message.author.roles) - set(roles))
- r.append(role2)
- await self.bot.replace_roles(ctx.message.author, *r)
- await self.bot.whisper("Go to #player_add and use !add to set your name on the leaderboards or update your rank!")
- else:
- os.remove("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png")
- else:
- os.remove("data/rlsix/images/temp_"+ ctx.message.author.id+ ".png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement