Skip to content

A multi-purpose discord bot, with an expansive selection of commands. Its primary function is to act as a Twitch Notification bot that is free and easy to use.

License

Notifications You must be signed in to change notification settings

CypherO2/Elysium_DiscordBot

𝓔𝓡𝔂𝓼𝓲𝓾𝓢

A multi-purpose discord bot, with an expansive selection of commands.


Status GitHub Issues GitHub Pull Requests License

Contents πŸ“ƒ

Note

The instance of this bot, that I host, is not available in any servers beyond the support server and a friend's. This is because it has very limited functionality at the moment.

Commands 🌐

Twitch

Command Description
/watchlist {show/remove/add} {streamer_name} Allows for the managing of the Twitch streamer list for to LIVE alerts - the streamer name is only needed when adding or removing and must be as is shown in their link e.g. https://twitch.tv/{streamer_name}.
/setlivechannel {channel} Allows for the changing of the channel the bot sends notifications in. The channel must be input using discord's in-built channel handling e.g. #{channel}
/setlivemessage {message} {@Role} Allows for the creation of custom messages for stream notifications. The role must be added using the discord in-built role handling e.g. @{role}

Moderation

Command Description
/alert pings a member of the servers staff team to the channel it is used in, annonymously for non-staff members

Utility

Command Description
/help Displays the help menu - contains a list of commands.
/runtime Shows how long the bot has been online.
/shutdown {reason} Shuts the bot down displaying a message to the bot log.
/suggestion {suggestion} This command allows for the user to send a suggestion for update to the bot. (it is suggested that you keep the channel id for this the same as usual if you are deploying it on your own - so that suggestions might reach me and be added)

Music

Command Description
!play {song name} plays the selected song as long as the user is in a voice chat
!skip skips current song
!queue displays the current song queue
!stop stops the bot from playing
!pause pauses the current song
!resume resumes the current song when paused

Requirements πŸ”ƒ

Python Requirements

Requirement Version
discord.py >v2.5.0
requests >v2.31.0
typing >v3.7.4.3

Twitch Requirements

Having a twitch developer account with 2FA enabled.

Discord Requirements

Having a discord developer account with 2FA enabled.

Setup πŸ–₯️

Discord Setup

  1. Go to the Discord Developer Portal and login.
  2. Click on New Application in the upper-right hand side of your screen, under your profile picture.
  3. Name your application, accept the Discord Developer Terms of Service and Developer Policy and click Create.
  4. Now navigate to OAuth2 in the sidebar and scroll to OAuth2 URL Generator.
  5. Select bot as your scope and then set your bot's permissions, copy the Generated Url and save it in a safe place.
  6. Next navigate to Bot on the sidebar and scroll to Privileged Gateway Intents and check Presence Intent, Server Member Intent and Message Content Intent
  7. Save all your changes as they come.

Python Setup

Caution

Never share your discord bot token, it can be used to control your bot!!!

  1. Ensure you have Python v3.11 or greater installed and ensure that the following are installed:

    • discord.py
    • requests
    • asyncio
    • typing
    • ffmpeg
    • yt_dlp
  2. In the root directory create a .env file. inside the .env file you will have a constant called ELYSIUM_TOKEN. Grab your Bot Token from the Discord Developer Portal and put it into your .env file like so: .env ELYSIAN_TOKEN="KUFHSDIUHKUh-UHLIUkudshliughj89w3eyr"

  3. Edit the main.py file's constants, you'll need to change the public_log and private_log to the discord channel ids in which you want bot info such as, turning on and off to be displayed.

    Set the dev_id to the discord user id of yourself or the person managing the bot.

    Finally, change twcord_userid to the discord user id of the person that will have control over the bot's twitch notification commands.

    When your done it should look like so:

    # Constants #
    public_log = 1234227629557547029  # Change to you public bot log channel ID
    private_log = 1234227628924207283  # Change to you private bot log channel ID
    dev_id = 876876129368150018  # If you are hosting this bot, change this to your Discord UserID
    twcord_userid = (
       972663150455451689  # The ID of the person handling the bot's Twitch notifications.
    )

Twitch Integration Setup

Note

Check out this guide by Partymann2000.

  1. Go to the Twitch Developer Portal and login.
  2. Click on Your Console, should be located in the top-right in the navbar.
  3. Navigate to Applications and click Register your application.
  4. Name your application (Cannot contain the work Twitch).
  5. Set the OAuth Redirect URL field to https://localhost/.
  6. Set the Catagory to Other and complete the Captcha and click Create.
  7. Now click on Manage on your application.
  8. Grab you clientID and clientSecret and put them in your config.json file.

Caution

Never share your ClientID or ClientSecret!!!

config.json
{
    "twitch": {
        "client_id": "clientID",
        "client_secret": "clientSecret",
        "access_token": "xxx",
        "channel_id": 6523487523834,
        "expire_date": 1669483138,
        "watchlist": [
            "streamer1",
            "streamer2",
            "streamer3"
        ]
    }
}
  1. Don't forget to rename config_template.json to config.json once its been populated.
  2. Set the channel_id to the discord channel you want the bot to send the message in
  3. Populate your watchlist with the streamers you want to recieve notifications for.

Support 🀝

To get support for the Elysium discord bot, feel free to :

License πŸͺͺ

This repository is listed under the MIT License

Contributing πŸ“ƒ

To contribute to this project please read our contributing guidelines

About

A multi-purpose discord bot, with an expansive selection of commands. Its primary function is to act as a Twitch Notification bot that is free and easy to use.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages