Mastereye7 / JonBot

Twitch bot for commands and automations
MIT License
1 stars 0 forks source link
chatbot twitch twitch-api twitch-bot

Jon Bot

Bot created to listen to and integrate with Twitch chat.
Version: 1.10.1

Description

The bot will connect to a Twitch chat set in the config and listen for commands and events.

Features

Available commands

Common commands

Restricted commands (Only moderators and broadcasters can use)

-commands

Example:
-commands
Output:
commands,dice,randomboss,spins,add
Description:
Shows the available commands for the user.
If the user has restricted access, shows more commands.

-marco

Example:
-marco
Output:
polo
Description:
Lets the user know if the bot is still alive and kicking.
Bot will try to say 'polo' back.

-randomboss

Example:
-randomboss
Output:
1: Anemo Hypostasis
Description:
Picks a random world boss in Genshin Impact and prints it out to the chat.
List of potential bosses is gotten from a local database.
Jon maintains this database

Wheel spin commands

-spins opt: {@userName}

Example:
-spins
-spins @TwitchJonBot
Output:
TwitchJonBot spins: [4]
Description:
Shows the spins available for @user.
Parameter Required? Description
@userName No Could be plain text userName or tag (@) (ex. @TwitchJonBot)

-usespins {amountToRemove}

Example:
-usespins 4
Output:
TwitchJonBot spends spins [-4]
Description:
Spends the spins of the calling user.
Parameter Required? Description
amountToRemove Yes Positive integer number of spins to spend of the calling user (ex. 3)

-add {@userName} opt: {amountToAdd = 1}

Example:
-add @TwitchJobBot 5
Output:
TwitchJonBot gains spins [+5]
Description:
Adds an amount of spins to a @user.
If user does not exist in database, creates the user.
Parameter Required? Description
@userName Yes Could be plain text userName or tag (@) (ex. @TwitchJonBot)
amountToAdd No Positive integer number of spins to add to @userName (ex. 4)

-spend {@userName} opt: {amountToRemove = 1}

Example:
-spend @TwitchJonBot 6
Output:
TwitchJonBot spends spins [-6]
Description:
Spends an amount of spins of a @user.
If user does not exist in database, creates user with 0 spins.
Parameter Required? Description
@userName Yes Could be plain text userName or tag (@) (ex. @TwitchJonBot)
amountToRemove No Positive integer number of spins to spend of @userName (ex. 3)

-timer {nameOfTimer} {minutesToDelay}

Example:
-timer MyTimer 1
Output:
MyTimer 1 min
Timer MyTimer has ended
Description:
Sets a timer with a certain amount of time. When timer ends, bot chats the timer name ending.
Parameter Required? Description
nameOfTimer Yes Name of the timer to start. Cannot have any spaces. (ex. MyTimer)
minutesToDelay Yes Amount of minutes to wait. Decimals are okay (ex. 5, 0.5, 2)

-goal

Example:
-goal
Output:
Goal amount $10
Description:
Shows the amount of dollars gained towards a goal. Right now goes to only one goal called "Goal" but could be further developed in the future.

-goaladd {amount}

Example:
-goaladd 4
Output:
Goal increased $4
Description:
Adds an amount of dollars towards the goal. Amount has to be a whole number in dollars.
Parameter Required? Description
amount Yes Integer amount of dollars to add to a goal. (ex. 5, 10, 2)

-goalRemove {amount}

Example:
-goalremove 12
Output:
Goal decreased $12
Description:
Removes an amount of dollars towards the goal. Amount has to be a whole number in dollars.
Parameter Required? Description
amount Yes Integer amount of dollars to remove from a goal. (ex. 5, 10, 2)

Getting Started

Dependencies

Installing

Config

{
    "twitchConfig":{
        "username": "string",
        "password": "oauth:{token}",
        "channels": 
        [
            "string",
            "string"
        ]
    },
    "dbConfig":{
        "user": "string",
        "password": "string",
        "database": "string",
        "server": "string"
    },
    "enableRemoteCommands": false,
    "remoteFromChannel": "#{channel}",
    "remoteToChannel": "#{channel}",
    "enableLoggingStartAndShutdown": false,
    "bitsPerSpin": 200,
    "bitsPerDollar": 100,
    "timeToWaitbetweenMessagesMillis": 800
}

Executing program

Help

Any advise for common problems or issues.

command to run if program contains helper info

Authors

Contributors names and contact info

@Mastereye7

Version History

License

This project is licensed under the MIT License - see the LICENSE.md file for details