PikaGirl 3.1.8.0 Update Notes

Lots of fixes and the addition of Overwatch Player Lookup Commands and PikaGirl Administration Commands.

April 19, 2018 - 5 minute read -
update

PikaGirl 3.1.8.0 is here with a lot of fixes ranging from small fixes to large backend changes. I’m also really excited to announce some new Overwatch Player Lookup Commands, which personally I think are really awesome ;)

Changelog Summary

  • DBL voting URL now uses vanity URL.
  • Added PikaGirl administation commands.
  • Added Overwatch player lookup commands.
  • Fixed a badges bug creating redundant data.
  • Lots of changes to how badges work behind the scenes.
  • Fixed a bug causing the bot to lag when using the coins top command.
  • Optimised coins top command.

Overwatch Player Lookup Commands

These commands are not only useful, but are also really detailed and stylish too. There are 3 Overwatch commands:

  1. Profile - Look up basic profile stats for a user.
  2. Heroes - Look up heroes played for a user.
  3. Statistics - Look up statistics for a user.

Overwatch Profile Command

This command is used to list the basic profile details for the specified user on the specified console. The command looks a little bit like this, obviously replacing the console (PC) and BattleTag with your own:

>overwatch profile pc PikaDude#11657

Something similar to the following will be returned.

Command preview.

The command returns the users level, Quick Play stats consisting of the amount of games won and play time, Competitive stats consisting of games won, lost, tied and played, play time and SR and rank. Also, please don’t judge my comp stats, I legit had 3 consecutive games where team mates had left (including one where everyone but me and one other person were the only people left). This command also posts a nice looking banner, which is generated by PikaGirl! The banner looks a little bit like this:

Banner preview.

The banner consists of the users player icon, portrait, rank icon, stars (I don’t have any), BattleTag, level, SR, console, and the users most played hero in quick play. Obviously, I’ve played a lot of Tracer in Quick Play and I also have the “Cute Tracer” player icon set. I spent a lot of time working on the banner, so I hope you all enjoy it as much as I do!

Overwatch Heroes Command

This command shows the amount of time played for the heroes played by the specified user in the specified gamemode. The command looks a little bit like this:

>overwatch heroes pc PikaDude#11657 quickplay

This will show the time played for all of the heroes I have played in Quick Play, and it will look something like this:

Command preview.

You can also look for time played for heroes in competitive:

Command preview.

This command also includes a generated portrait for the user specified.

Overwatch Stats Command

This command is a little bit more complicated than the other two, but I’ll explain how it works. First off, the command looks a little bit like this:

>overwatch stats pc PikaDude#11657 combat quickplay

Now, because there are so many different statistics to show, and it would look extremely messy if I displayed them all in one big embed, I’ve split them into appropriate categories. The categories are:

  • combat
  • match_awards
  • assists
  • miscellaneous
  • best

Overwatch also included an “average” category, but most of these stats were just 0 for every user I tested (even for Grandmasters), so I have a feeling they’re broken or innacurate (damage per minute was 0 for every user, highest I saw was 2). Here’s what the combat category looks like:

Command preview.

I won’t show off every category as there are too many. Also, don’t judge me, I’m terrible at the game, I’m fully aware.

DBL Voting URL Now Uses Vanity URL

Pretty small change, but because PikaGirl is certified on DBL, instead of having PikaGirls entire ID in the URL to her page on DBL or her vote page, I can just have “PikaGirl” instead. There’s a lot less clutter now with the voting commands.

Added PikaGirl Administration Commands

I’ve added a few different commands to help manage PikaGirl on Discord with ease. These commands can’t be used by anyone else but me, so I’m not going to bother going into any detail about them.

Everything Else

The rest of the changelog is related to one thing: badges. I’m going to be honest, the badges feature is a real pain in the ass. Mainly because I didn’t plan it much and because of that, it sucks to integrate it with commands. I also made a big mistake causing the entire bot to freeze whenever someone did the coins top command, as it was getting the badges data for every user, even users who did not have badges or users who weren’t even displayed on the scoreboard. To fix this, I had to do a bit of a cheatsy method. Originally, the badges data for users was stored in a seperate table in PikaGirls DB from the coins table. This meant that PikaGirl had to grab data from two different tables whenever someone executed a coins command that had badges integrated into the command. This, in theory, sounds fine, and the best thing to do. However, this was the complete opposite in practice. The first issue was, that grabbing the badges data and generating the badges prefix for users who had badges, would take 1-2ms longer than users with no badges. This caused the coins top command to go all out of order, since things weren’t asynchronous. I tried doing some cheat methods to wait until the code before it had finished, but this didn’t work, and only made matters worse causing everything to go out of whack. Long story short, what I ended up doing was writing the badges data twice, once in the badges table, and a second time in the coins table. Now whenever a coins command is executed, the badges data is also retrieved at the same time, fixing every previous issue beforehand. This does create duplicate data, but it’s fine because literally only like 10 users have badges. Also, as for the redundant data fix, I made a typo causing PikaGirl to write out records for users who don’t have badges saying that they don’t have any badges. What I wanted was it to just not create any records for users who don’t have badges and the bot would know that the user does not have any badges because there is no badges record in the badges table, if that makes sense.

Conclusion

This update took a while mainly because of the Overwatch banner generator, and the Overwatch commands in general. Everything else was fairly quick and easy. The last update, 3.1.7.1, was released about 8 days before today, which isn’t too long ago, so it’s good to know that updates are still being distributed fairly quickly. Also, I think this is the last update for PikaGirl 3.1, development for 3.2 is probably up next. At this point of time, a 3.1.9 update is not planned. Anyway, have fun.