nhcarrigan / becca-lyria Goto Github PK
View Code? Open in Web Editor NEWA friendly Discord bot.
Home Page: https://www.beccalyria.com?utm_source=github&utm_medium=bot-repo
License: Other
A friendly Discord bot.
Home Page: https://www.beccalyria.com?utm_source=github&utm_medium=bot-repo
License: Other
The API used for the hpsort
, hpspell
, hpchar
commands is under construction. The API has been down for a significant amount of time. Given that there appears to be no ETA for its return, we need to deprecate the hp
commands.
The PR that fixes this issue should:
hpchar
, hpsort
, and hpspell
commands.HpCharInt
, HpHouseInt
, and HpSpellInt
.HP_KEY
from the .env.example
Once the PR is created, be sure to open a linked issue on the documentation repository.
The new thank listener currently responds only to the first user mention.
This should be refactored to account for and respond to all mentions in the message.
The inuquote
command currently only has one quote - mostly to serve as a proof-of-concept.
After #247 lands, more InuYasha quotes should be added to the file.
discord.js
uses v6
of the Discord API. This is fine, for the time being. However, at some point next year v6
will be deprecated and the bot will need to transition to v8
. (There's a story behind v7 being skipped...)
For now, NO ACTION IS NEEDED on this issue. I'm creating this as a reminder to keep an eye out for the next major
release of discord.js
, as this will be an upgrade to v8
.
An important thing to keep an eye on will be the mandatory intents
, which need to be declared in the connection string.
I just think if I kick the bot of my server, the data collected by the bot to the database continues existing instead be deleted from the database.
Welcome DMs are somewhat of a grey area for the Discord ToS (and general good practise). The bot is currently configured to send a DM embed to a user when they join a server the bot is in, and send a welcome embed inside the server.
The server based welcome embed should remain, but the DM embed should be removed.
Due to the way Discord handles caching, if a user has left the server the welcome message will no longer display their username.
The welcome message needs to be refactored to match the goodbye message, so that it displays the user's username in string
format instead of a mention.
Some commands currently have multiple names. While this is a cool concept, I find that it turns out to be cluttered and a bit confusing.
CommandInt
to have only name
field.name
onMessage
handler to check for name
only.This request is to add an invite command to the bot. The bot should respond with an invite link to allows users to bring the bot into their server.
The link can be sent directly as Discord should auto-embed it. Use this link for the feature: https://discord.com/api/oauth2/authorize?client_id=716707753090875473&permissions=268511254&scope=bot
Add any other context or screenshots about the feature request here.
The bot should be configured to allow users to opt out of data collection (through the usage and level listeners).
We can store opt-out IDs in an array in the config file. When a user talks, the bot should confirm the ID is not in the opt-out array prior to firing the usage and levels listeners.
Add any other context or screenshots about the feature request here.
Currently there is no feature to restrict access to bot commands on a per-user basis.
This issue will take two steps:
.env
file to allow updates without requiring a rebuild.Add any other context or screenshots about the feature request here.
We need to add a report
command that generates a link to this issue page.
Should be a quick command to respond with an embed.
Add any other context or screenshots about the feature request here.
The entire code base needs to be audited for consistency - all files should use the same conventions across the board.
This can be broken up into multiple PRs if needed.
The Privacy Policy is currently very bare-bones and probably does not cover all expected cases.
This should be expanded on with any relevant or necessary information. This can be done in one PR, or in multiple.
The space command doesn't work.
When u use the |space becca bot types for a bit but doesn't then give any reply.
Add an Among Us related command (maybe |sus
?). The command should return a message such as "Purple is sus". The colours could be chosen at random from an array (either stored within the command or in a separate file).
nhcarrigan seems sus ๐
Discord embed limits include a maximum of 1024 characters per embed field.
To avoid hitting that limit as more commands are added, let's modify the help command to add a field for every 20 commands.
Currently there are no test files written to verify that the code will function as intended.
Need to write some unit tests - most likely using Mocha/Chai.
Manual testing is the current alternative but only goes so far.
Currently the star
command sends a DM to the target user. Unsolicited DMs are tactless and undesired.
Refactor the command to send the star embed in the channel where the command was called.
My idea for the math feature is having the bot be able to do addition, multiplication, subtraction, and division. This would be cool if you ever needed to do a simple calculation while on discord. I sadly have no idea how to make discord bots and don't know how to code this feature. This is not really an issue just a suggestion for the bot.
Looking at the code I can suggest to do an automatic command import.
In /src/COMMANDS.ts
there are command imports with the same interface (CommandInt). They can be replaced by an automatic import from the ./src/commands/
and add them to an array.
This reduces file modifications and is faster for beginners (it only does a single file).
I can do this for the Hacktoberfest if you wish.
Currently the leave
command (with no parameters) sends a message containing a list of all servers the bot is in. Due to discord message limits, this may end up crashing as the bot joins more servers.
Let's modify the command to loop through the servers, and send a message for every ten servers.
No. Just a fun idea I had.
If you could enter the command |piglatin (text). The bot would then translate whatever text you input after the command into pig Latin.
The purge
command relies on the bulkDelete
method, which throws an error if trying to delete messages that are older than 14 days.
The code can be refactored to catch this, and possibly loop through and delete the messages individually. We will need to verify the rate limits, first.
We should be okay if we filter out the "too-old" messages, bulk delete the valid ones, then loop through and delete the old ones manually.
Not a very large problem, but it would be a neat feature to have.
The current logs do provide the message content and the Author but in many cases moderators might need additional context regarding the chat, to decide whether some messages were in violation or not.
Scrolling back all the way to the message might be time-consuming and slightly tiresome task for the moderators.
It would be great, if we use message.url
to link to the updated message in the log embed.
We could perhaps link to the message in the embed title or add a new field for the URL?
Screenshot of current messageUpdated log embed:
Would I like to work on this issue:
At the moment, the dnd
command gets all dnd
commands automatically, for this reason it repeats some command that have more than one possible call.
One of the best option to solve this is adding the dnd
commands filter to a Set
like the help
command.
#271 corrected the broken CI workflow and now the tests are actually being run on pull requests. However, the onMessage.spec.ts
run is throwing errors in the CI flow, but not on a local instance.
This will need to be investigated and fixed - temporarily, I've changed the file to onMessage.spec.ts.txt
so the work is preserved but does not interfere with the CI.
The thanks
listener and levels
listener are "always on". This can create a negative experience for some users/servers.
These should be modified to a server-based configuration (perhaps true
for on and false
for off). They can default to "on", but server config should allow a server to turn them off.
Note: The mention listener is called by the thanks listener - this approach will need to be changed as the mention listener should always be on.+
The feature is a meme command. When you call the command a programming meme will come up in an embed.
No it is just a cool idea.
Maybe an array of memes and each time you call the command it generates a new meme.
The listeners
command is duplicating some of the listeners.
Each listener should only be listed once.
This might be similar to the dnd
bug in #201
Calling the help
command with a command name parameter does not generate the description.
I've got some full-size versions of the new bot/server art. This can be used to create a new art command (and promote my friend's work).
I will look in to creating this command.
Currently all command-related configuration (prefix, log channels, etc) are hard-coded into the config.json
file. The bot should be refactored to allow server-specific configurations.
This could be done by leveraging the database.
The APIs for these commands are designed to return a JSON object with an error
property when a user provides the wrong answer. The challenge
command handles this in a catch
statement while the riddle
command crashes. Neither of these commands are properly displaying the response to the user.
Both commands need to be adjusted to provide the feedback to the user regarding their command. Additionally, the riddle
command needs to take the full answer (instead of using .shift()
).
With the bot going public and joining more servers, the error handling needs to be refactored. More specific error messages need to be sent to the servers when a command fails, to facilitate easier bug reporting and ensure everything is clear.
Each command should be audited to verify that errors are properly caught (try
/catch
should be sufficient) and sent to the message.channel
.
With the addition of the "typing" delay, the ping
command now results in an additional 3000ms difference.
The command will need to be adjusted to account for the delay when calculating response time.
If applicable, add screenshots to help explain your problem.
Add any other context about the problem here.
You can add a feature such that whenever we input the person's GitHub handle, then the bot should reply with their info
You can use GitHub API for this
##A clear and concise description of what you want to happen.
When we input the username of the person, it should reply with user info and info like the latest 5 repositories. And also his/her followers/following(if that's possible)
Received confirmation that the data displayed in the user command is not considered "private" under Discord ToS. The user command can be refactored to take a mention again.
The user command should take an optional parameter and return information for the mentioned user. If no parameter is provided, it should return information for the message author.
As mentioned in #282 - a lot of the code in the hp
commands is similar and this could possibly be refactored into a single command.
Refactor into a single command (hp
), and add a parameter to pass char
, sort
, or spell
to the command (followed by the query).
The tests will need to be refactored as well.
Currently the contribution documentation is rather empty. The readme could also use some updating.
The contribution documentation should include steps for creating issues, PRs, and methods for contributing without knowing the codebase. The readme could use general cleaning up (some redundant information).
With #198 landing, it looks like we have a successful framework for adding tests. I'd like to see if we can get some tests built for the other commands, so we can start leveraging the CI to verify the commands work.
Tests can be added in individual PRs for each command, or if someone feels ambitious they can be done all at once.
Need to start brainstorming commands, features, and other contributions to prepare for Hacktoberfest.
We can use this issue to keep track of ideas/suggestions
The profile command currently takes a website and username and returns a link to that profile.
Scrap that entirely - instead, let's use the database:
This will require an update to the privacy policy as well.
You should make a command i.e. |react :emoji: :username: So what the feature would do is make a reaction on someone's last comment. So say nhcarrigan says something funny on discord. |react ๐คฃ :nhcarrigan:. It would then make a ๐คฃ reaction on your last comment on discord.
No. It is just a cool feature that would make discord a lot better.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I am always frustrated when I want to react to something but then I have to do so much work to actually do it.
A |react feature/command
A clear and concise description of what you want to happen.
You should make a command i.e. |react :emoji: :username: So what the feature would do is make a reaction on someone's last comment. So say nhcarrigan says something funny on discord. |react ๐คฃ :nhcarrigan:. It would then make a ๐คฃ reaction on your last comment on discord.
Thanks!
Add any other context or screenshots about the feature request here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.