Skip to content

Bubblie01/bubblebot

Repository files navigation

KordEx Bot Template

This repository contains a basic KordEx example bot for you to use as a template for your own KordEx bots. This includes the following:

  • A basic extension that allows you to slap other people, using both message commands and slash commands
  • A basic bot configuration that enables slash commands and shows you how to conditionally provide a different message command prefix for different guilds
  • A Gradle Kotlin build script that makes use of the Kotlin Discord public maven repo, Detekt for linting (with a fairly strict configuration), and a Git commit hook plugin that runs Detekt when you make a commit - this also makes use of Gradle 7's new version catalog feature, for easy configuration of dependencies
  • GitHub CI scripts that build the bot and publish its artefacts
  • A reasonable .gitignore file, including one in the .idea folder that ignores files that shouldn't be committed - if you're using IDEA yourself, you should install the Ignore plugin to handle changes to this for you
  • A Groovy-based Logback config, so you have reasonable logging out of the box
  • A Gradle wrapper using Gradle 7.1.1

Potential Changes

  • The .yml files in .github/ are used to configure GitHub apps. If you're not using them, you can remove them.
  • The provided LICENSE file contains The Unlicense, which makes this repository public domain. You'll probably want to change this - we suggest looking at Choose a License if you're not sure where to start.
  • In the build.gradle.kts:
    • Set the group and version properties as appropriate
    • If you're not using this to test KordEx builds, you can remove the mavenLocal() from the repositories block
    • In the application and tasks.jar blocks, update the main class path/name as appropriate
    • To target a newer/older Java version, change the options in the KotlinCompile configuration and java blocks
  • In the settings.gradle.kts, update the name of the root project as appropriate.
  • The bundled Detekt config is pretty strict. You can check over detekt.yml if you want to change it, but you need to follow the TODOs in that file regardless.
  • The Logback configuration is in src/main/resources/logback.groovy. If the logging setup doesn't suit, you can change it there.

Bundled Bot

  • App.kt includes a basic bot which uses environment variables (or variables in a .env file) for the testing guild ID (TEST_SERVER) and the bot's token (TOKEN). You can specify these either directly as environment variables, or as KEY=value pairs in a file named .env. This file also includes some example code that shows one potential way of providing different command prefixes for different servers.
  • TestExtension.kt includes a simple example extension that creates a slap command. This command works as both a message command and slash command, and allows you to slap other users with whatever you wish, defaulting to a large, smelly trout.

To test the bot, we recommend using a .env file that looks like the following:

TOKEN=abc...
TEST_SERVER=123...

Create this file, fill it out, and run the run gradle task for testing in development.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published