https://github.com/binn/haruna
Modular Discord Bot for the "cakechan" server (owned by rinixx) built on C# and Docker
https://github.com/binn/haruna
bin binzy bot c-sharp cakechan discord discord-net docker dotnet dotnet-core haruna netcore rinixx
Last synced: about 1 month ago
JSON representation
Modular Discord Bot for the "cakechan" server (owned by rinixx) built on C# and Docker
- Host: GitHub
- URL: https://github.com/binn/haruna
- Owner: binn
- License: gpl-3.0
- Created: 2018-08-10T00:31:19.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-12T21:48:26.000Z (almost 8 years ago)
- Last Synced: 2025-12-14T11:30:33.097Z (6 months ago)
- Topics: bin, binzy, bot, c-sharp, cakechan, discord, discord-net, docker, dotnet, dotnet-core, haruna, netcore, rinixx
- Language: C#
- Homepage:
- Size: 205 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Haruna
Haruna is *the* lightweight and simple moderation bot. She's only got a handful of commands and emergency server management. She's designed and made for the "[cakechan](https://discord.gg/QEtRdka)" server, a Discord server owned by a friend of mine.
She's simple, easy to run, and is fast. She runs on .NET Core so she's also cross-platform!
Haruna relies on the .NET Core runtime, Discord.Net, Microsoft.Extensions.Logging, and Microsoft.Extensions.DependencyInjection. All these packages can be found on NuGet and can be restored using `dotnet restore`.
## Getting Started
Hosting Haruna is easy, but you'll need Docker to use Haruna's one-click run.
To run Haruna:
```s
docker run -d -e HARUNA_TOKEN="YOUR_BOTS_TOKEN_HERE" \
-e HARUNA_MUTE="MUTE_ROLE_ID" \
-e HARUNA_PREFIX="BOT_PREFIX" \
-e HARUNA_MODS="MOD_IDS" \
-e HARUNA_CHANNELS="CHANNEL_IDS" \
-e HARUNA_GAMES="being a good mod;splitting users;thanos did nothing wrong.;?!?!" binzy/haruna
```
Quick note: Docker environment files are also compatible.
**Note**: Haruna's responses contain vulgar language that isn't acceptable in some areas, please modify the source code if you'd like this removed. In the future these vulgar responses will be removed from her.
| Environment Variable | Description |
|----------------------|-------------|
| `HARUNA_TOKEN` | The token of your Discord bot. |
| `HARUNA_PREFIX` | The prefix of Haruna's commands. Haruna also accepts @mention commands. |
| `HARUNA_MUTE` | The ID of the role to give to muted users. |
| `HARUNA_MODS` | A list of role IDs seperated by a semicolon (`;`) that have moderation permissions |
| `HARUNA_CHANNELS` | A list of channel IDs seperated by a semicolon (`;`) that will get locked when using the `lock all` command. |
| `HARUNA_GAMES` | A list of strings seperated by a semicolon (`;`) that will represent the bot's "Playing" tag. Updates every 5 minutes |
## Commands
| Base Command | Description | Example |
|--------------|-------------|---------|
| `.mute` / `.m` | Assigns `HARUNA_MUTE` role to a given user. Mute is permanent unless otherwhise specified | `.m @user` / `.m @user 10` |
| `.unmute` / `.um` | Unmutes user (Unassigns `HARUNA_MUTE` role.) | `.um @user` |
| `.prune` / `.p` | Deletes last `x` messages from the current channel, or messages from a specified user in the last `x` messages if specified. | `.p 10` / `.p 10 @user` |
| `.kick` / `.k` | Kicks given user. Any text after mention is used as a reason in the guild's Audit Log. | `.k @user spamming` |
| `.ban` / `.b` | Bans given user. Any text after mention is used as a reason in the guild's Audit Log. | `.b @user spamming` |
| `.softban` / `.sb` | Bans and then immidiately unbans given user. Any text after mention is used as a reason in the guild's Audit Log. | `.sb @user spamming` |
| `.lock` / `.l` | Denies `Send Messages` and `Add Reactions` permissions for the `@everyone` role in the specified channel, or the current channel if none is specified. | `.l #general` |
| `.unlock` / `.ul` | Resets `Send Messages` and `Add Reactions` permissions for the `@everyone` role in the specified channel, or the current channel if none is specified. | `.ul #general` |
| `.lock all` / `.l a` | Locks all channels specified in `HARUNA_CHANNELS` | `.l a` |
| `.unlock all` / `.ul a` | Unlocks all channels specified in `HARUNA_CHANNELS` | `.ul a` |