Skip to content

Latest commit

 

History

History
281 lines (233 loc) · 5.42 KB

README.md

File metadata and controls

281 lines (233 loc) · 5.42 KB

Universal-Discord-Bot

A modular approach to Discord bots by Szmelc.INC
Modularity is key!, each module is standalone .py script in modules folder
image


📖 Manual

Click to expand each category...
Commands contains a compact list with descriptions.
For detailed information about individual commands and their usage, refer to the Modules section.


📜 Commands

ADMIN COMMANDS

shell          - Access server's shell (Poorman's terminal over Discord)
upload         - Upload local file from server to Discord
dm             - Send direct message from bot to specified user
listroles      - List all roles specified user has
addrole        - Add a role to user
removerole     - Remove role from user
startpresence  - Start rich presence
stoppresence   - Stop rich presence
updatepresence - Update rich presence
rm             - Advanced message removal

USER COMMANDS

yt           - Search for a video on YouTube
mp3          - Convert YT URL to mp3
mp4          - Convert YT URL to mp4
cmd          - Same as `shell` but very restricted
joke         - Tell joke (Polish jokes from sadistic.pl)
bomba        - Tell Kapitan Bomba quote
boner        - Tell Bogdan Boner quote
crypto       - Fetch recent cryptocurrency prices
losowe       - Fetch random meme from jbzd.com.pl/losowe
game         - Start Tictactoe game between two users

VC [MUSIC]

join    - Join user's voice channel
leave   - Leave voice channel
play    - Play song, or add to queue
stop    - Stop music
skip    - Skip current song
queue   - List current queue

MISC

textemoji    - Print some random text emojis
coinflip     - Flip a coin
diceroll     - Roll a dice (either D6 or D20)
randomstring - Generate random string of characters

NSFW

cycki        - Fetch random NSFW picture from zmarsa.pl
furry        - Fetch some furry arts

🧩 Modules

Commands by Module:

shell.py

shell <COMMAND>

cmd.py

cmd <[figlet/toilet/cowsay/fortune/uptime]>

yt.py

yt "search query"

dlp.py

mp3 <URL>
mp4 <URL>

file_upload.py

upload #channel /path/to/file

dm.py

dm @user <Message>

tictactoe.py

game @user1 @user2

role_manager.py

listroles @user
addrole @user @role
removerole @user @role

rng.py

coinflip
diceroll [6/20]
randomstring [Length]

losowe.py

losowe

jokes.py

joke

furry.py

furry <search query>

emote.py

textemoji

cycki.py

cycki

crypto.py

crypto
crypto <SYMBOL>

bomba.py

bomba

boner.py

boner

rich_presence.py

startpresence
stoppresence
updatepresence <field> <value>

responses.py

  • Gives % for bot to reply to chat messages, see [misc/responses.txt] \
  • Example responses.txt format:
keyword 1:reponse 1, response 2
keyword 2:response x, response y

music_vc.py

join
leave
play <URL>
stop
skip
queue

shredder.py
[time] uses format like: 5s, 10m, 1h etc
add --backup flag to first backup and send to user issuing command, before deletion.

rm <@username> [time] 
rm <@username> [time] --backup
rm channel [time]
rm global [time]

⚙️Setup & Config

Installation & Setup

Download source code with:

git clone https://github.com/Szmelc-INC/Universal-Discord-Bot
cd Universal-Discord-Bot

Install dependencies with:

python3 -m pip install -r requirements.txt

Now set your details like token, in config.json, when done, start the bot with:

# CLI Interface
python3 main.py

# Directly
python3 main.py <bot_name>

# In Background (Bash)
nohup python3 main.py <bot_name> &

config.json

Configure multiple bots by specifying:
preferred name, token, prefix, path to modules, and optionally either white or blacklisted modules for each bot.
<bot_name> parameter is just for you to tell script which one you mean, tho try to avoid very special characters and spaces,
If bot name has spaces, add "" around name while running start commands.

{
  "<bot_name>": {
    "token": "TOKEN",
    "command_prefix": "!",
    "modules_folder": "modules",
    "enabled_modules": [],
    "disabled_modules": []
  },
  "Universal Bot": {
    "token": "TOKEN",
    "command_prefix": "/",
    "modules_folder": "/path/to/modules",
    "enabled_modules": [],
    "disabled_modules": ["examplemodule"]
  }
}

responses.txt

(One keyword, can have unlimited responses, which will be random picked each time it runs)
: separates keyword from responses, responses are separated by ,
Set reply % chance in responses.py script. Configure trigger words & responses in such format:

keyword:response 1, response 2

Misc

Want to contribute? Feel free to reach out via Email, GitHub or Discord!

Projects based on Universal-Discord-Bot <3

"Not as good as other bots, but good enough!"