Giter Club home page Giter Club logo

laffey-bot's Introduction

laffey-bot

discord bot with valorant commands, and more!

ko-fi

valorant commands

valorant-setchannel

sets the current channel of the server for the bot to send updates to

valorant-info

retrives the user's saved info from the playerData.json database.

  • in game name
  • in game tag
  • latest time - time when user is added, changes to most recent played game

valorant-watch <name> <tag>

adds the discord user to the playerData.json database. the bot will send an embed when it detects the user has completed a game.

  • in game name
  • in game tag
  • riot PUUID
  • latest time - time when user is added, changes to most recent played game

valorant-unwatch

removes the user from the playerData.json database. the bot will stop watching for the user's games.

valorant-wait *<wait_user>

pings the user when the bot has detected the wait_user has completed a game. wait_user must be currently watched and in database.
for the prefix command, multiple users can be tagged in the command

valorant-waitlist

returns an embed with the current waiting list. shows each wait_users and the users waiting for them.

how to setup

.env

BOT_TOKEN

place your Discord Application token in here.

RIOT_TOKEN

place your Riot API key in here. (currently unused at the moment)

HOLODEX_TOKEN

place your Holodex API key in here.

CRYPTO_TOKEN

place your CoinAPI API key in here.

DEFAULT_PREFIX

place the prefix the bot will default to when joining a new server

SLASH_ENABLED

int: 1 or 0. 1 to enable slash-commands, 0 to disable.

PREFIX_ENABLED

int: 1 or 0. 1 to enable prefixed commands, 0 to disable.

laffey-bot's People

Contributors

0xmiyu avatar thedylone avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

laffey-bot's Issues

[feature] separate database for guild data

issue

Is your feature request related to a problem? Please describe.
for better scaling of the bot to use in other guilds aka servers.

expected

Describe the solution you'd like
a database containing each guild and their respective watch channel for valorant. guild data can only be changed by moderators of the server. player data will then also include the guild id they are requesting it.

alternatives

Describe alternatives you've considered
considered putting channel id into player data but

  1. moderators have little control over which channel the player will use
  2. if channel gets deleted then no longer valid and need to change

others

Additional context
use another json file, can remove watch channel from config

[feature] valorant-wait multiple users

issue

Is your feature request related to a problem? Please describe.
want to wait for multiple people, but current function only takes 1 at a time

expected

Describe the solution you'd like
ping multiple people and wait all in 1 command to reduce spam

others

Additional context
with multiple wait for A and B, if A finished but B has not, should it still ping when B is done? currently yes

[feature] ignore team deathmatch

issue

Is your feature request related to a problem? Please describe.
team deathmatch gets repetitive and sends many alerts

expected

Describe the solution you'd like
ignore team deathmatch games, similar to normal deathmatch games

[feature] show winning or losing streak

issue

Is your feature request related to a problem? Please describe.
show a message similar to feeder if someone is on a streak. >=3 wins or losses

expected

Describe the solution you'd like
similar embed as feeder, or together with the original watch ping

others

Additional context
bot has to be running and watching 24/7 else it might skip a few matches in between

[feature] show bot response to valorant-watch prefix command

issue

Is your feature request related to a problem? Please describe.
as valorant-watch can take some time to complete, users may think the bot did not respond, and will attempt to run the command again

expected

Describe the solution you'd like
the bot should indicate that it has responded to the command and is retrieving the data

alternatives

Describe alternatives you've considered
using slash command will show bot is responding, however this should be available for prefix command too

others

Additional context
allow valorant-watch to accept tag with '#' as well, or if user submits entirely as username#tag

[bug] match data is none

bug

Describe the bug
if api returns OK but empty match data, bot errors and background loop is stopped

reasons

To Reproduce
Steps to reproduce the behavior:

  1. get player match history
  2. api returns successful response but no match data
  3. trying to initialise a Match object results in error

expected

Expected behavior
catch the error and try again or check if api returns actual data

[bug] local variable 'map_url' referenced before assignment

bug

Describe the bug
bot is unable to find map, then map_url is not assigned since it is only called within loop.

reasons

To Reproduce

for map in map_data.get("maps"):
                        if map.get("name") == map_played:
                            map_url = f"https://media.valorant-api.com/maps/{map.get('id')}/splash.png"
                            break

if map_played is not any of the maps, map_url will not be assigned

expected

Expected behavior
map_url should be null or empty.

[feature] integration with database hosting

issue

database file storing the player data is ephemeral in Heroku.

expected

hosting the database instead to ensure permanence.

potential solutions

will look into various hosting services

  • heroku postgres
  • amazon dynamodb
  • redis
  • mongodb

[feature] valorant-wait multiple users for slash commands

issue

Is your feature request related to a problem? Please describe.
valorant-wait is able to wait for multiple users on prefix command, but not on slash command yet.

expected

Describe the solution you'd like
able to wait for multiple users in one slash command, similar to prefix

alternatives

Describe alternatives you've considered
just use the prefix command instead

others

Additional context
sadge

[bug] all player data deleted if disconnected

bug

Describe the bug
bot will delete ALL player data if its disconnected from the internet while running

reasons

To Reproduce
Steps to reproduce the behavior:

  1. run bot
  2. disconnect bot (e.g. turn off wifi)

expected

Expected behavior
bot should stop running or logic to identify that bot is not connected

[feature] create tests

issue

Is your feature request related to a problem? Please describe.
create tests to ensure each function works

expected

Describe the solution you'd like
nice tests

[bug] occasionally update user's information

bug

Describe the bug
the bot does not/is not able to update the user's information. information entered during valorant-watch is not updated, while the user may change their in game name, tag, or region.

reasons

due to both api limitations and lack of code to try to update some information.

expected

Expected behavior
bot should occasionally update the user's information, e.g. once a week.

[feature] custom media for ping alert

issue

Is your feature request related to a problem? Please describe.
implement ability to customise the ping alert media

expected

Describe the solution you'd like
either send the media via file upload or through embed image

alternatives

Describe alternatives you've considered
if no custom media then will default to built-in image

others

Additional context
will be similar to the other customisable media

[bug] timeout interactions

bug

Describe the bug
once the view has timed out, remove the view to prevent user from getting the error "This interaction failed"

reasons

To Reproduce
Steps to reproduce the behavior:

  1. wait for a view to time out
  2. attempt to interact with the view by selecting an option
  3. after some loading time discord will show "This interaction failed"

expected

Expected behavior
remove the ability to interact with the message once it has timed out
perhaps reset the embed back to the home embed? (the one that is originally shown at the start)

[bug] unable to add to database if list is empty

bug

Describe the bug
attempting to append to an empty list field in the database results in an error.

reasons

To Reproduce

  1. have an empty feeder images / streaker messages for e.g. for the guild
  2. try running feeder-image add "..."
  3. bot encounters an error

expected

Expected behavior
to be able to add to an empty list field

[feature] migrate to fly.io

issue

Is your feature request related to a problem? Please describe.
no more heroku :(

expected

Describe the solution you'd like
fly.io

[feature] command to show all live hololive streams

Is your feature request related to a problem? Please describe.
currently, the bot only has a command to show live and upcoming videos for a select few members.

Describe the solution you'd like
implement a command to show all live hololive streams. as there can be a lot of streams live simultaneously, implement a page system to scroll through the streams

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.