SkillAgentSearch skills...

DiscordBot

A Java Discord bot using JDA

Install / Use

/learn @Kaaz/DiscordBot
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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 Discord

What can it do?

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

PM_U

View on GitHub
GitHub Stars140
CategoryDevelopment
Updated9d ago
Forks51

Languages

Java

Security Score

100/100

Audited on Mar 24, 2026

No findings