Skip to content
/ kromer Public

A featureful, unoriginal Discord bot written in Rust, optimized for performance.

License

Notifications You must be signed in to change notification settings

frostu8/kromer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kromer.png

A cool Discord bot for cool servers.

Discord is an open, free platform. So why should we continue paying to make our Discord servers the best they can be? A good bot should be open and free, just like the platform, and that's what this aims to be.

If you're not a developer and care only for the bot itself, you can invite it here. But if you are a user, keep in mind that this bot is not only unfinished, but this idea is so unbelieveably unoriginal that there are a whole bunch of better alternatives. My personal favorite is blargbot, but that's an opinion from a Rust programmer, so take it with a grain of salt and do what you need to do to make your server a good one.

Features:

  • Server levelling system
    Send messages to increase your Kromer balance, and compare yourself with others to see who's the most active member.
  • Reaction roles
    Allow members to self-assign themselves some roles through a reaction on a message.
  • Up-to-date with the latest Discord trends
    The Discord developers were nice enough to give bots a whole bunch of tools that make bots feel like an integration rather than a hack, and this bot intends on using all of those features. Users shouldn't have to enable Developer Mode to setup reaction roles.
  • Powered by Rust and built with Twilight
    Rust is an insanely fast systems language, and Twilight is a no-compensations Discord library. Nothing stopping you from throwing this up on a Raspberry Pi and hosting possibly hundreds of servers... probably.

Are you tired of all the DELTARUNE propaganda in the official bot? Why not host your own?

Hosting kromer

Not only can you host kromer, but you are encouraged to! Feel free to poke around at the internals while you're at it, but by no means it is required. What is required is some basic shell knowledge, a kromer binary, a Discord application set up with a bot account, a running PostgreSQL server, and some of your time and love 🥰.

Once you got everything fired up, you'll need to set these environment variables:

  • DATABASE_URL: The connection uri used by the bot to connect to the database. See this page if you don't know how to write a connection uri, or you're just stuck. Don't worry, it happens to the best of us.
  • DISCORD_TOKEN: The token of your Discord bot. This should be under the "Bot" section of your application. If it wasn't apparent enough, this should be kept very secret.

Once you've set those environment variables, just run the binary and watch it go! It will automatically set up the database and initialize the global commands. It takes an hour at most to initialize the global commands, but once that's complete, you'll be raring to go!

Hosting using Docker

Docker is a containerization platform. kromer is built with this in mind, and includes a ready-to-build Dockerfile in case you want the power of containerizing your bot. Since the official bot runs on Docker, you can be sure that it's up to date.

Example docker-compose.yml for kromer:

version: '3.1'

networks:
  spamton:
    external: true

services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: kromer
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    networks:
      - spamton
  bot:
    build: kromer
    restart: always
    environment:
      DISCORD_TOKEN: <discord token here>
      DATABASE_URL: postgres://postgres:postgres@db/kromer
    depends_on:
      - db
    networks:
      - spamton

Compiling kromer

Compiling kromer is exactly like compiling any other old Rust binary, but kromer uses some experimental, nightly Rust features, specifically type_alias_impl_trait, so you need to compile the binary with a nightly Rust compiler. Otherwise, it's just one command:

cargo build --release

License

This project is licensed under The Unlicense, which is just a fancy way of saying "do absolutely anything you want with my code, no permission or annoying license management necessary." Reference it, copy it, maim it, or even sell it; as long as my code is making someone's day, I'm happy.

About

A featureful, unoriginal Discord bot written in Rust, optimized for performance.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published