1
0
Fork
You've already forked coffee-fox
0
private discord bot for guilds we admin
  • Kotlin 100%
2025年01月14日 23:31:35 +01:00
.idea fix: ignore bot messages for levels 2024年10月26日 14:06:28 +02:00
gradle/wrapper init 2023年11月09日 03:38:35 +01:00
src/main chore: format with ktfmt 2025年01月14日 23:31:35 +01:00
.gitignore apparently you're *not* supposed to ignore the whole .idea directory oops 2023年11月12日 15:42:52 +01:00
build.gradle.kts chore: format with ktfmt 2025年01月14日 23:31:35 +01:00
gardener.example.properties feat: add nolevels commands 2023年11月12日 15:40:14 +01:00
gradle.properties init 2023年11月09日 03:38:35 +01:00
gradlew init 2023年11月09日 03:38:35 +01:00
gradlew.bat init 2023年11月09日 03:38:35 +01:00
LICENSE add license and ignore .idea directory 2023年11月09日 03:40:49 +01:00
README.md readme: rebrand to coffee fox 2024年07月20日 19:13:15 +02:00
settings.gradle.kts chore: format with ktfmt 2025年01月14日 23:31:35 +01:00

Coffee Fox

Discord bot to handle a couple functions servers we moderate need, that we can't get with major bots (ot at least, not without premium)

Written in Kotlin using the Kord library. Written with maintainability in mind, though we probably haven't done a very good job at that.

Required features:

  • Leveling
  • User background checks--this includes importing moderation logs and notes from Carl-bot as they're made
  • User/guild info commands
  • Member lookup by roles and join date, ideally feature parity with Rubie/Tribble's members commands.

Nice to have:

  • Report message/slash command
  • Reminders
  • Emoji related commands such as enlarge

Feature creep:

  • Markdown -> embed parser for server resources

Note: Coffee Fox initially started as "The Gardener", but we changed the name partway through development. Most code, including package names and configuration files, still calls it "gardener". We don't intend to change this because it would be a lot of work for basically no benefit.

Setup

Coffee Fox requires Java 17 and PostgreSQL. (any version should do, though we've only tested it with 15)

  • (Optional) if you've already built the project, use ./gradlew clean
  • Build project with ./gradlew build
  • Copy gardener.example.properties to gardener.properties and fill in the fields
  • Run the standalone jar in build/libs

Configuration keys

The bot is configured using a gardener.properties file. Keys are:

  • discord.token (string): the bot token, without Bot (so just what you get from the developer portal)
  • discord.commands.sync (boolean): whether to sync commands on startup. Recommended to always keep enabled in production, but because the endpoint has a strict rate limit, recommended to disable unless needed in development.
  • discord.commands.guild (ulong): the guild ID to sync commands to. Only recommended in development, leave empty to sync to all guilds.
  • database.driver (string): the database driver. Recommended to leave this empty or set it to org.postgresql.Driver, anything else is untested.
  • database.dsn (string): the database URL in JDBC format
  • database.username (string): the database username
  • database.password (string): the database password

License

Copyright 2023-2024 sam sam@starshines.gay

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.