DiscordBot
A Java Discord bot using JDA
Install / Use
/learn @Kaaz/DiscordBotREADME
Emily - A discord bot
A Java bot for Discord using the JDA library.
It uses sql (mariadb) to store data
If you'd like to run your own version of this project check the installation part
You can play/test it on discord

What can it do?
- Ton of commands
- Add your own
- play music
- customizable globally and per guild
- play games against other users
- subscription system
- various optional modules
- auto self updates with this project
- auto ranking system
Commands
Commands are prefixed with a "!" by default, this can be configured. For a list of commands in discord the help command can be used. For more information about a command use help <commandname>
Current list of all available commands. See below for a more detailed list
Commands | | | | | --- | --- | ---| ---| --- 8ball | ban | blackjack | botstatus | case catfact | changename | cla | command | commandadmin config | current | debug | donate | exec exit | fight | fml | game | getrole gif | globalban | guildstats | help | info invite | join | joke | kick | leaveguild logging | meme | modcase | music | mute pause | ping | play | playlist | pm poll | prefix | purge | queue | reactionrole reboot | reddit | reload | report | roleadmin roll | rotate | sendfile | server | skip slot | stop | subscribe | system | tag tempban | template | test | todo | ud uptime | user | userrank | version | volume warn |
Games
Games can be accessed though the !game command
A list of games:
Key | Name | Players | --- | --- | --- | cf | Connect Four | 2 gos | Game of sticks | 2 tic | Tic tac toe | 2
Per guild configuration
The per-guild configuration can be accessed though the !config command, to use it you must be the server owner, or have the discord-administrator permission
The following settings can be changed per guild:
AUTO_REPLY
default: false
setting-type: toggle
use the auto reply feature?
Looks for patterns in messages and replies to them (with a cooldown)
true -> enable auto replying to matched messages
false -> disable auto replying
BOT_ADMIN_ROLE
default:
setting-type: discord-role
Users with this role are considered admins for the bot
BOT_CHANNEL
default: general
setting-type: text-channel
Channel where the bots default output goes to
BOT_LANGUAGE
default: en
setting-type: enum [de, en, nl]
The output language of the bot
BOT_LOGGING_CHANNEL
default: false
setting-type: text-channel
The channel where the logging of events happens. Such as users joining/leaving
Setting this to 'false' will disable it (without the quotes)
To enable it, set this setting to match the channel name where you want the logging to happen
If you specify an invalid channel, this setting will disable itself
BOT_MODLOG_CHANNEL
default: false
setting-type: text-channel
The channel where mod-logging happens.
A case will appear if a user has been banned/kicked/warned/muted
Setting this to 'false' will disable it (without the quotes)
To enable it, set this setting to match the channel name where you want the moderation-cases to go
If you specify an invalid channel, this setting will disable itself
BOT_MUTE_ROLE
default: false
setting-type: discord-role
This is the role which is applied to those who you use the mute command on
Setting this value to false will disable the role applied with the mute command
BOT_UPDATE_WARNING
default: playing
setting-type: enum [always, playing, off]
Show a warning that there is an update and that the bot will be updating soon.
always -> always show the message in the bot's configured default channel
playing -> only announce when the bot is playing music and in the bot's configured music channel
off -> don't announce when the bot is going down for an update
CHAT_BOT_ENABLED
default: false
setting-type: toggle
Setting this to true will make it so that it responds to every message in the configured bot_channel
CLEANUP_MESSAGES
default: no
setting-type: enum [no, yes, nonstandard]
Delete messages after a while?
yes -> Always delete messages
no -> Never delete messages
nonstandard -> delete messages outside of bot's default channel
COMMAND_LOGGING_CHANNEL
default: false
setting-type: text-channel
The channel command usage will be logged to
Example output:
Kaaz#9436 has used say in #general
arguments: this is not a test
output: this is not a test
Setting this to 'false' will disable it (without the quotes)
To enable it, set this setting to match the channel name where you want the command logging to happen
If you specify an invalid channel, this setting will disable itself
COMMAND_PREFIX
default: $
setting-type: enum
Prefix for commands (between 1 and 4 characters)
DEBUG
default: false
setting-type: toggle
Show some debug information.
valid values:
true -> Show a lot more additional information
false -> don't
If you want to check if certain things are (not) working.
HELP_IN_PM
default: false
setting-type: toggle
show help in a private message?
true -> send a message to the user requesting help
false -> output help to the channel where requested
MODULE_ECONOMY
default: true
setting-type: toggle
Use the economy feature?
false -> nope!
true -> yep!
MODULE_GAMES
default: true
setting-type: toggle
Let people play games against each other
MUSIC_CHANNEL
default: false
setting-type: text-channel
Channel where the bots music-related output goes to
MUSIC_CHANNEL_AUTO
default: false
setting-type: voice-channel
The channel where I automatically connect to if a user joins
false:
Not using this setting, wont auto-connect to anything.
setting this to match a voice channel name:
The moment a user connects to the specified channel I connect too and start to play music.
Important to note:
- If the configured channel does not exist, this setting will be turned off
- If I'm already connected to a different voice-channel I won't use this setting
MUSIC_CHANNEL_TITLE
default: false
setting-type: enum [auto, true, false]
Updates the music channel's topic with the currently playing song
auto -> update the title every 10 seconds with the track its playing
true -> yes change the topic at the beginning of every song
false -> leave the channel topic title alone!
MUSIC_CLEAR_ADMIN_ONLY
default: true
setting-type: toggle
Only allow admins to clear the music add?
true
Only admins can clear the music add
false
Everyone can clear the add
MUSIC_PLAYING_MESSAGE
default: clear
setting-type: enum [normal, clear, off]
Clear the now playing message?
clear -> sends a message and deletes it when the song is over or skipped
normal -> send the message and just leave it be
off -> don't send now playing messages
MUSIC_QUEUE_ONLY
default: false
setting-type: toggle
Stop playing music once the add is empty?
true
once the add is empty I stop playing music and leave the voice channel
false
If the add is empty, I'm gonna pick the track.
MUSIC_RESULT_PICKER
default: 1
setting-type: enum
the amount of results the play command returns
If its set to 1, it will always use the first result (no manual choice)
If its set higher (max 5) it will respond with reactions where each button is a choice
Note: This setting does require the add reactions permission
MUSIC_ROLE_REQUIREMENT
default: false
setting-type: discord-role
In order to use music commands you need this role!
Setting this value to false will disable the requirement
MUSIC_SHOW_LISTENERS
default: false
setting-type: toggle
Show who's listening in the current command
true -> List all the people who are currently listening to music
false -> Don't show listeners
MUSIC_SKIP_ADMIN_ONLY
default: false
setting-type: toggle
Only allow admins to use the skip command?
true
Only admins have permission to use the skip command
false
Everyone can use the skip command
MUSIC_VOLUME
default: 100
setting-type: enum
sets the default volume of the music player
So the next time the bot connects it starts with this volume
Accepts a value between 0 and 100
MUSIC_VOLUME_ADMIN
default: false
setting-type: toggle
Require a guild admin to change the volume
true -> only allow guild admins to change the bot's volume
false -> allow all users to change the bot's volume
MUSIC_VOTE_PERCENT
default: 40
setting-type: enum
Percentage of users (rounded down) required to skip the currently playing track
eg; when set to 25, and 5 listeners it would require 2 users to vote skip
Accepts a value between 1 and 100
