The bot base for all bots made by Shockbyte
This is the bot base that we use over at Shockbyte for our Discord Server. This is developed and maintained by the Shockbyte Team.
This lib helps with basic bot setup and with commands, you don't need to setup commands or deal with login you can just use this lib instead. It also has utils for things like getting what a user has inputted form just the args.
Making and using the configuration is very simple, all you need to do is create a new JSONConfig with the config name (and location is applicable). Then all you need to do is get something from the specific path where . equals an inner object. For example, if it is "bot.token" it will look for a "bot" object and go for "token". This returns an Optioanl so you can check if it exists and also get the value (or else return another).
public void init() {
JSONConfig config = new JSONConfig("config.json");
if (config.getString("bot.token").isPresent())
init(config.getString("bot.token").get());
else {
throw new IllegalStateException("You need the token in order to start the bot!");
System.exit(1);
}
}
Starting the bot is super simple with this bot base, all you need to do is extend Bot in the main class and use the init
method. You then need to override the run method which is an abstract void
in Bot. This is fired when the bot is ready (ReadyEvent fired), this is very useful for things that are not just used in init.
public void init() {
init(config.getString("bot.token").get(), config.getString("bot.prefix").get());
}
@Override
public void run() {
// Do some stuff
}
If you wish to connec to NySQL and execute queries in that it is very simple, all you need to do is in your initialising method where you init the bot hire setupMySQL
with your host, port, username and password. Do not hardcode these details, get them from some sort of config file or environment variables.
public void init() {
setupMySQL(config.getString("mysql.host").get(), config.getInt("mysql.port").get(), config.getString("mysql.username").get(), config.getString("mysql.password").get());
}
If you wish to use this for your own bot then all you need to do is simpy add a repository and this dependecy.
Maven
<dependencies>
<dependency>
<groupId>com.github.Shockbyte</groupId>
<artifactId>BotBase</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>
...
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Groovy
repositories {
maven { url 'https://jitpack.io' }
}
...
dependencies {
implementation 'com.github.Shockbyte:BotBase:${VERSION}'
}