An upcoming Paimon Assistant discord bot to help travelers in their Genshin Impact journeys! Features such as a resin tracker, reminders, material locations and more!
A standard within discord bots to have built-in timers/reminders users can use to remind them by pinging them at a specific timing. Users will only have a maximum of 5 reminders, and could be listed. Current set of commands in mind:
p~remind [string:"dhms"] [string:reason] : Creates a reminder for the user, time string example:4d 5h returns 4 days and 5 hours from the usage of the command
p~remind list : Lists the reminders that user has set, if empty, tells user No reminders has been set
p~remind delete [string:reminderGuid] : Deletes the reminder using its Guid given back when creating a reminder
p~remind clear : Clears the current list of reminders a user has set.
Choose
Simple enough, lets Paimon choose between options that a user sets, usage as below:
p~choose [string: options[]] : Options are separated by spaces
Example of this usage on a different bot I've made:
Report
Quite a complex command, simply uses this command with a 1 (STC) cooldown for users to be able to directly report me through Paimon on issues that they have, if they wouldn't like to open one on Github.
p~report [string: issue] : Will send me an Embed of the Issue, Reporter's User ID, Channel ID, Guild ID, Time of Report. similar to Iamages Discord Bot report command
Needs to change the dailies command's working for it to be able to send the image as an attachment and not imgur lol,, this can be done by creating a custom IPaginationRequest and using an InteractivityExtension.WaitForCustomPaginationAsync().
Self-explanatory, would like to be able for users to know how to use the Bot right off the bat from just looking up the help embeds. This can be done like Categories for the help embed, as an extra command attribute in command methods, and in the help embeds, simply just shows the example usage.
Quite an unlucky error where when the user is told when doing the command, an error was given that the user already has gadget remind enabled even though the gadget account does not show to be reminded, condition line for that here. Proof:
Quick Diagnose: from the condition line above on the embed, and this condition for the error here, check the whole logic when reminding user, this could have been a problem with the reminder not setting the user's remind bool value, cos the embed is checked with the bool value, whilst the condition is either that or being on the list (list being more priority, so could edit embed to check list).
Doing resin set [amount] after setting a resin remind would delete that said resin remind. This is probably due to resin setting creating a new resin timer at every occurrence and so from that it would mean that the resin remind is disabled.
Currently, Paimon does not show in p~gadget information on whether Paimon will remind the user on when they can next use their Parametric Transformer Gadget or not. Needs to be added for clarification.
Using p~gadget remind also does not show you have gadget reminding enabled. Needs more fixing on GadgetCommands.cs
gadget remind, when user already has a remind active, does not show timestamp properly
Simple one function command, uses data from Paimon.moe's Timeline, saved into PaimonBot's Database and PaimonBot will simply access the data and checks with the current datetime and sends back a paginated embed with information of currently running events. must credit Paimon.moe for the information.
Should use local images whilst using IPaginationRequest to create the Pagination of the Embeds
It seems the logic in the code is flawed somehow, because I've expected this to happen, PaimonBot registering DMs into the dictionary if we've got some users in more than one server with PaimonBot, and so this line was implemented. However it does not seem to function as intended (or not considered at all for some reason)
My initial guess is that it's due to something related with the try..catch block or my implementation with await to avoid deadlock here
When users set their resin using resin set [amount], whilst they've already started a resin remind before setting this new resin amount, their resin remind was disabled.
More Issue as well: (could be due to D#+)
Using resin remind throws back Object reference not set to an instance of an object Error at line 143, ResinCommands.cs
Using gadget remind does the same as well
Could also be thrown when PaimonBot turns on and GetDMs() is called to get their respective DMs
For some god fucking reason, the errors were thrown at/referring to a } after throw e;