Giter Site home page Giter Site logo

nhcarrigan / becca-lyria Goto Github PK

View Code? Open in Web Editor NEW
114.0 6.0 72.0 24.68 MB

A friendly Discord bot.

Home Page: https://www.beccalyria.com?utm_source=github&utm_medium=bot-repo

License: Other

TypeScript 100.00%
discord-bot discord discord-js typescript mongodb becca-lyria community-management moderation hacktoberfest

becca-lyria's Introduction

Becca Lyria

Welcome to the repository for Becca Lyria!

You can invite Becca to your own server! Already have her there? Read the documentation to get her set up!

Join Our Team!

Are you interested in contributing to Becca's development? We welcome all who want to assist! If you would like to contribute, you are welcome to fork the repository and make your changes. Submit a pull request when you are ready for us to review your changes. You can also submit issues for various purposes. For more information, please review our contributing guidelines.

Feedback and Bugs

If you have feedback or a bug report, please feel free to open a GitHub issue!

Code of Conduct

Before interacting with our community, please read our Code of Conduct.

Art Credits

Credit for Becca's avatar and the server art goes to MoonlightKCreations. If you want to show some support, consider commissioning her!

License

This software is licensed under our global software license.

Copyright held by Naomi Carrigan.

Contact

We may be contacted through our Discord Server or via [email protected].

becca-lyria's People

Contributors

a2937 avatar abhijithganesh avatar adprasad avatar allcontributors[bot] avatar andreybest avatar bagladivyang03 avatar bradtaniguchi avatar dependabot-preview[bot] avatar dependabot[bot] avatar dsolartec avatar eddiejaoude avatar fayedel avatar galahad42 avatar galaxy-coding avatar helloimalastair avatar jaspermayone avatar jayesh-srivastava avatar kaiwalyakoparkar avatar landonlloyd avatar naomi-lgbt avatar panquesito7 avatar renovate-bot avatar renovate[bot] avatar schmelto avatar sital002 avatar susmita-dey avatar varghesejose2020 avatar verma-kunal avatar vyvy-vi avatar zephy20 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

becca-lyria's Issues

[FEAT] - Additional Quotes

Feature Request

Is your feature request related to a problem? Please describe:

The inuquote command currently only has one quote - mostly to serve as a proof-of-concept.

Describe the solution you'd like

After #247 lands, more InuYasha quotes should be added to the file.

Additional context

Pig Latin Translator

Feature Request

Is your feature request related to a problem? Please describe:

No. Just a fun idea I had.

Describe the solution you'd like

If you could enter the command |piglatin (text). The bot would then translate whatever text you input after the command into pig Latin.

Additional context

[BUG] dnd command

Bug Report

Describe the bug

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.

Expected behavior

One of the best option to solve this is adding the dnd commands filter to a Set like the help command.

Screenshots

Image

[BUG] - Riddle and Challenge command improperly handle bad responses

Bug Report

Describe the bug

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.

Expected behavior

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()).

Screenshots

Additional information

[FEAT] - Modify leave command

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

Let's modify the command to loop through the servers, and send a message for every ten servers.

Additional context

[BUG] - Server command

Bug Report

Describe the bug

The server command does not report an accurate number of members in the server. It appears to be a caching error.

Expected behavior

Code may need to be modified to fetch the current user state instead of relying on the cached values.

Screenshots

image

Additional information

[FEAT] - Art Command!

Feature Request

Is your feature request related to a problem? Please describe:

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).

Describe the solution you'd like

I will look in to creating this command.

Additional context

[DOC] - Contributing Guidelines

Incorrect Documentation

Describe the error

Currently the contribution documentation is rather empty. The readme could also use some updating.

Expected information

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).

[BUG] - Purge Command

Bug Report

Describe the bug

The purge command relies on the bulkDelete method, which throws an error if trying to delete messages that are older than 14 days.

Expected behavior

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.

Screenshots

Additional information

[FEAT] - Add a meme command

Feature Request

The feature is a meme command. When you call the command a programming meme will come up in an embed.

Is your feature request related to a problem? Please describe:

No it is just a cool idea.

Describe the solution you'd like

Maybe an array of memes and each time you call the command it generates a new meme.

Additional context

Suggestion for adding a github profile feature

Feature Request

You can add a feature such that whenever we input the person's GitHub handle, then the bot should reply with their info

Describe the solution you'd like

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)

[BUG] usage command/listener

Bug Report

Describe the bug

The usage listener does not register the command usage.

(At the moment i cannot find what produces this error)

Screenshots

Image

[CHORE] - Audit Code Consistency

Chore Request

Describe the need for the chore

The entire code base needs to be audited for consistency - all files should use the same conventions across the board.

Describe the solution you'd like

  • Ensure all commands use anonymous arrow functions
  • Proper variable naming conventions
  • Template strings only used where template literals are applied
  • Verify all package dependencies are still in use
  • Remove unnecessary comments

Additional context

This can be broken up into multiple PRs if needed.

[FEAT] - Complete refactor of Profile command

Feature Request

Is your feature request related to a problem? Please describe:

The profile command currently takes a website and username and returns a link to that profile.

Describe the solution you'd like

Scrap that entirely - instead, let's use the database:

  • Create a new profileModel
  • Allow users to add social links to their own profileModel
  • Allow users to retrieve the profileModel of any @-mentioned user

Additional context

This will require an update to the privacy policy as well.

[FEAT] - Merge HP commands

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

Refactor into a single command (hp), and add a parameter to pass char, sort, or spell to the command (followed by the query).

Additional context

The tests will need to be refactored as well.

[FEAT] - Remove multiple command names

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

  • Refactor CommandInt to have only name field.
  • Refactor all commands to use name
  • Refactor onMessage handler to check for name only.

Additional context

[REQUEST] - Opt Out

Feature Request

Is your feature request related to a problem? Please describe:

The bot should be configured to allow users to opt out of data collection (through the usage and level listeners).

Describe the solution you'd like

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.

Additional context

Add any other context or screenshots about the feature request here.

[BUG] - Listener Command duplication

Bug Report

Describe the bug

The listeners command is duplicating some of the listeners.

Expected behavior

Each listener should only be listed once.

Screenshots

image

Additional information

This might be similar to the dnd bug in #201

[BUG] - Harry Potter API is down

Bug Report

Describe the bug

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.

Additional information

The PR that fixes this issue should:

  • Remove the hpchar, hpsort, and hpspell commands.
  • Remove the corresponding interfaces HpCharInt, HpHouseInt, and HpSpellInt.
  • Remove the HP_KEY from the .env.example

Once the PR is created, be sure to open a linked issue on the documentation repository.

[BUG] - Space Command not repsonding

Bug Report

The space command doesn't work.

Describe the bug

When u use the |space becca bot types for a bit but doesn't then give any reply.

Expected behavior

Screenshots

Additional information

[FEAT] - Make Thanks and Levels togglable

Feature Request

Is your feature request related to a problem? Please describe:

The thanks listener and levels listener are "always on". This can create a negative experience for some users/servers.

Describe the solution you'd like

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.+

Additional context

[FEAT] - Thank Listener handle all mentions

Feature Request

Is your feature request related to a problem? Please describe:

The new thank listener currently responds only to the first user mention.

Describe the solution you'd like

This should be refactored to account for and respond to all mentions in the message.

Additional context

[Request] Automatic Command Import

Function request

Is your feature request related to a problem? Please describe:

Looking at the code I can suggest to do an automatic command import.

Describe the solution you would like

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.

[BUG] When a bot leave a server

Bug Report

Describe the bug

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.

  • Level information
  • Hearts reactions (User id)
  • Commands usage
  • Settings (Roles and channels)

[BUG] Update Help Command

Bug Report

Describe the bug

Calling the help command with a command name parameter does not generate the description.

I see that there is a bug in the command |trivia

Describe the bug

When I start the quiz using |trivia, I get a question (no problem there). But when I message all the 4 options, then it says that I am the winner.

Expected behavior

I expect that a user can only enter their option once.

Screenshots

Screenshot_20200820-134943

[OTHER] - D-API V8

Other Issue

Describe the issue

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.

Additional information

[REQUEST] - Upgrade `status` command

Feature Request

Is your feature request related to a problem? Please describe:

The status command needs a refactor.

Describe the solution you'd like

Add additional information like the screenshot below, and change the name to server.

Additional context

image

[DOC] - Fill out Privacy Policy

Incorrect Documentation

Describe the error

The Privacy Policy is currently very bare-bones and probably does not cover all expected cases.

Expected information

This should be expanded on with any relevant or necessary information. This can be done in one PR, or in multiple.

[REQUEST] - Refactor User Command

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

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.

Additional context

[FEAT] - Build out tests

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

Tests can be added in individual PRs for each command, or if someone feels ambitious they can be done all at once.

Additional context

[CHORE] - Fix Workflow

Chore Request

Describe the work

#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.

Additional information

[REQUEST] - Add invite command

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

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

Additional context

Add any other context or screenshots about the feature request here.

[FEAT] - Modify `star` command

Feature Request

Is your feature request related to a problem? Please describe:

Currently the star command sends a DM to the target user. Unsolicited DMs are tactless and undesired.

Describe the solution you'd like

Refactor the command to send the star embed in the channel where the command was called.

Additional context

[REQUEST] - Remove Welcome DM

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

The server based welcome embed should remain, but the DM embed should be removed.

Additional context

[REQUEST] - Add Testing

Feature Request

Is your feature request related to a problem? Please describe:

Currently there are no test files written to verify that the code will function as intended.

Describe the solution you'd like

Need to write some unit tests - most likely using Mocha/Chai.

Describe alternatives you've considered

Manual testing is the current alternative but only goes so far.

Additional context

[FEAT]: Message Link in messageUpdated logs

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

It would be great, if we use message.url to link to the updated message in the log embed.

Additional context

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:
Screenshot 2020-12-29 at 3 49 53 PM

Would I like to work on this issue:

  • yes :)

[BUG] - Adjust `ping` calculation

Bug Report

Describe the bug

With the addition of the "typing" delay, the ping command now results in an additional 3000ms difference.

Expected behavior

The command will need to be adjusted to account for the delay when calculating response time.

Screenshots

If applicable, add screenshots to help explain your problem.

Additional information

Add any other context about the problem here.

[CHORE] - Error Handling

Chore Request

Describe the work

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.

Additional information

Math Feature

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.

[BUG] - Fix Welcome Command

Bug Report

Describe the bug

Due to the way Discord handles caching, if a user has left the server the welcome message will no longer display their username.

Expected behavior

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.

Screenshots

image

Additional information

[REQUEST] - Among Us command

Feature Request

Describe the solution you'd like

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).

Additional context

nhcarrigan seems sus ๐Ÿ‘€

[REQUEST] - Blocked User feature

Feature Request

Is your feature request related to a problem? Please describe:

Currently there is no feature to restrict access to bot commands on a per-user basis.

Describe the solution you'd like

This issue will take two steps:

  1. Create an array to store IDs of blocked users. This should be stored in the .env file to allow updates without requiring a rebuild.
  2. Confirm the user calling a command is not blocked before running the command.

Additional context

Add any other context or screenshots about the feature request here.

[FEAT] - Fragment the Help Embed

Feature Request

Is your feature request related to a problem? Please describe:

Discord embed limits include a maximum of 1024 characters per embed field.

Describe the solution you'd like

To avoid hitting that limit as more commands are added, let's modify the help command to add a field for every 20 commands.

Additional context

[REQUEST] - React feature!

Feature Request

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.

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

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.

Additional context

Thanks!
Add any other context or screenshots about the feature request here.

[REQUEST] - Allow Server-Based Configuration

Feature Request

Is your feature request related to a problem? Please describe:

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.

Describe the solution you'd like

This could be done by leveraging the database.

[UNKNOWN] - Hacktoberfest

Other Issue

Describe the issue

Need to start brainstorming commands, features, and other contributions to prepare for Hacktoberfest.

Additional information

We can use this issue to keep track of ideas/suggestions

[REQUEST] - Add report command

Feature Request

Is your feature request related to a problem? Please describe:

We need to add a report command that generates a link to this issue page.

Describe the solution you'd like

Should be a quick command to respond with an embed.

Additional context

Add any other context or screenshots about the feature request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.