JsKingBoo / SableyeBot3

Competitive Pokemon Discord Bot
8 stars 7 forks source link

[Feature Request] //tsv look up command #1

Closed greenDarkness closed 6 years ago

greenDarkness commented 6 years ago

Hello there, I'd like to suggest a //tsv feature. Users would be able to use the command to search through any tsv that SableyeBot has recorded through the //addgame command. It would function as follows when ever the command is used:

//tsv ####
check which server that the command was issued 
check data recorded from the same server that the //addgame command was used
filter the data for tsv that matches the one entered by the user
print discord tags that match the above criteria in code markdown to avoid tagging other users when checking for a matching tsv

Thank you for taking time to read this and for all your work with SableyeBot.

JsKingBoo commented 6 years ago

While I understand the motives behind this suggestion (especially in the perspective of an avid shiny hunter) I will not implement this feature for several reasons:

  1. Laziness (lol)

Friend code data is indexed by user. While I could iterate over every user (and it actually is not that big of a problem for small databases) managing that particular code would be a hassle. (Plus, I use a 3rd party library, lokidb, for friend code data storage and it's been so long since I worked with the friend code functionality that I've forgotten how to use it.)

  1. Not compatible with the current bot architecture

Most commands do not receive, let alone parse and record, anything other than the message contents. Friend code commands also receive the ID of the user who sent the message but only for the purposes of linking their input data to their Discord account. Thus, tracking messages and/or users by server is not possible without significantly rewriting the bot architecture. This is intentional by design and ties into reason 3:

  1. Deter using SableyeBot as a "tracking service"

By design, I have minimized the amount of information that SableyeBot needs to collect from its users in order to stay functioning. Also by design, I have hid as much information of its users as possible, making it only accessible to the relevant people when necessary.

While retrieving a particular user's information is already possible, doing so is usually used to exchange friend code information when both parties intend to battle/trade but both are not simultaneously online. One user must actively know the other user in order to retrieve their information. I discourage all attempts to retrieve and/or parse the information of any user or every user of the friend code system of SableyeBot.

greenDarkness commented 6 years ago

This idea is probably better for a different bot anyway since so many users already have input their information into Sableye Bot. Thank you for the response!