Friday, May 31, 2019

Feature Spotlight: Research!

Hello again all users of Meowth! Today I'm excited to show off what I've been working on for the last week or so. It's the revamped research reporting feature for Meowth 3.0! I'm very happy with how this one has turned out and I think you all will be too. It's a bit different from what you're used to, but in a good way!

On the (Silph) Road Again

One of the best features of The Silph Road is coming to Meowth thanks to a shiny new integration! Meowth 3.0 now has access to the list of Field Research tasks and rewards painstakingly researched and verified by the Silph Road Research Group. If you guys haven't been using this, you have been missing out. Thanks to Marco and company for helping out with this!

So how does it work? Let's take a look at the new command in action.

First, let's look at the command itself. The new syntax is 
!research <description of task, wrapped in quotes> <name of Pokestop, not wrapped in quotes>
Meowth attempts to match the description of the task you supply with the list of known research tasks collected by The Silph Road. If it finds a match, it gets the list of possible rewards and lets you select from the list with a reaction as shown in the picture. If there are more than one possible Pokemon encounters as a reward, it includes an option for "Unknown Encounter", in case you picked up the task but did not complete it yet.

Once you select a reward, it builds the message and sends it like so, deleting the previous message with the options. It includes a Google Maps link to the Pokestop (also matched against the Pokestop data from your server, if you've uploaded one). It also includes the name of who reported the task and the expected time the research will expire. Users who complete (or obtain) the research task can hit the Research Stamp reaction below the message, and the number of users who complete the task is added to the score the reporter gets for having made the report!

OK, so what about the unknown encounter? Is there a way to report the Pokemon later once the task is completed? Yes, there is! If a research with an unknown encounter is marked completed with the stamp reaction, Meowth will ask that user if they know what Pokemon appears. Again, Meowth will display the possible choices and let the user select with a reaction.

That's all great, but what if Meowth can't make a match for the task description, or if it has multiple possibilities? Let's take a look.




Meowth asks you to type a description of the reward if it can't match the task. If it recognizes your response as an item or a Pokemon, it displays an image as above. If it doesn't recognize your response, it just takes it as an unknown item. Occasionally you can get some silly looking messages, but it roughly preserves your response if it doesn't recognize it as an item or Pokemon.

The End of The Betaginning

This is the last big feature I knew had to be in Meowth 3.0 before I felt comfortable calling it a release, so as of this moment, the current "beta" bot has had its status upgraded to release candidate! Please keep an eye out for more details about the transition from 2.0 to 3.0. I'm excited to finally be out of beta and hope everyone likes the new research. I'm sure it will be a while before people get used to the new syntax but I strongly feel that it's an improvement over the old system. I hope you agree.

Lastly, keep in mind that though this is a release candidate, it is still highly likely there will be bugs. Those of you in the beta know that though it's been buggy, the new code base is much easier to quickly deploy fixes for. I'll do what I can to address issues as they arise as quickly as possible.

Don't forget to let me know what you think of the new feature in our support server!

Friday, May 24, 2019

Additions to 3.0: New scoreboard, better duplicate reporting, custom roles

There's a bit of a bigger addition to Meowth 3.0 that I felt required a longer blog post. Since the beta launched there have been innumerable bug fixes and some smaller additions, but in the last few days I've added enough new things that I wanted to dig into them in a bit more detail for you guys.

Small stuff first: Meowth 3.0 now has custom roles! You can use addcustomroles to designate a list of pre-existing server roles as self-assignable. Then users can assign themselves to the role with the iam command, or remove that role from themselves with iamnot. If you need to remove the self-assign ability from a role, use removecustomroles.

Meowth 3.0 now has the duplicate command! This has been reworked significantly from how it worked in 2.0. Now when you use the duplicate command in a raid channel, Meowth grabs a list of raids that have the same level or boss, and asks you which raid the channel is a duplicate of. When you make your selection, Meowth automatically copies the RSVPs and raid groups from the duplicate to the original raid. Anyone can use this command, and there's no requirement that three people report the duplicate before Meowth takes action.

Here's the big change: the scoreboard cog! Meowth now keeps score for using reporting commands in your server. The scores are divided into five (for now) categories: raid, wild, trade, research, and service. Some changes have been made to the way this works from how it did in 2.0. Notably, you now receive more points based on the popularity of the reports you make. Here are the details:

  • Raid: 1 point for the raid report + 1 point for each user who completes the raid (i.e. is in a group that uses the starting command)
  • Wild: 1 point for the wild report + 1 point for each user who reports a catch (by reacting to the report with the Pokeball emoji)
  • Research (under construction) : 1 point for the report + 1 point for each user who reports obtaining the task
  • Trades: 1 point for each trade agreed to by both parties
There are several commands for managing and viewing the data from the scoreboard. The leaderboard command displays the top ten server members in whichever category you ask. The scorecard command displays all five scores for the member you ask for (or your own scores, if you omit this argument). For server admins, the reset_board command can set scores to 0 in any or all of the categories and for any or all of the users in the server. For more fine-tuned control of scores, server admins can use the adjust command to add or subtract points from a user's total in any category. (Note that at this time, no log of these adjustments is kept.)

You may have noticed I left out a category. The service category is meant for miscellaneous point awards from server admins. You can use this category however you like, but here are some ideas on how you might want to use it. I know many Pokemon Go communities take part in community service projects in their areas. You could award service points to members who contribute to these projects however you see fit. For example, you could do a canned food drive and award one point for every can a member donates. You could also use this category to reward service to your Pokemon Go community. Maybe you want to give points for checking in users at Community Day events, or for organizing meetups, or for dropping lures, or for recruiting or helping new members. I hope everyone finds their own unique ways to make use of this feature to promote greater engagement within your communities and with the larger communities you belong to.

These features are all live in the Meowth 3.0 beta as of now! Let me know in the Discord server if you find any bugs or have any feedback. The full release of 3.0 is coming soon! I'm hoping to be able to get the research cog done within the next week, and then 3.0 will have feature parity (more or less) with Meowth 2.0, and the transition will begin!

EDIT: Forgot to mention, due to the spamish nature of the leaderboard and scorecard commands, those are usable only in the 'users' reporting channels, i.e. the same channels you can use want and such.

Also also, setstatus is also now in 3.0 and works (I think) the same way it did in 2.0.

Changes to Research

More details on today's changes to the research command are below. A new optional argument has been added to the research command. Thi...