Files
SkyBot/README.md

129 lines
3.6 KiB
Markdown

# SkyBot
SkyBot is a Valour.gg bot built with .NET 10.
---
## Features
- Designed for self-hosting
- Open-source under AGPL-3.0
- Built with .NET 10
- Command system with automatic registration
### Fun
- `8ball` — ask the magic 8 ball a question
- `coinflip` — flip a coin
- `dice` — roll a die
- `rockpaperscissors` — play rock paper scissors against the bot
- `choose` — pick one of the given options
- `echo` — repeat text through the bot
- `reverse` — reverse yours or a replied message
- `mock` — mOcK tExT
- `t9encode` / `t9decode` — encode or decode old phone keypad multi-tap digits
- `hangman` — channel-wide game of hangman with optional category (`hg <letter or word>` to guess)
- `wordle` — channel-wide Wordle; guess the 5-letter word in 6 tries (`wg <word>` to guess)
- `trivia` — channel-wide trivia question with 30 seconds to answer (`tg <A/B/C/D>` to guess)
- `image` — fetch a random image matching your search (aliases: `img`)
### Chill
- `cat` — post a random cat picture
- `hug` — send a hug with a random gif
### Info
- `ping` — check bot latency
- `uptime` — show how long the bot has been running
- `info` — user and planet info
- `version` — show the current bot and Valour SDK version
- `usercount` — show the total Valour user count
- `source` — link to the bot's source code
- `joinsite` — link to a site to help bots join a planet
- `devcentral` — invite link to the Dev Central planet
- `swagger` — link to the Valour API docs
- `minecraft` — Unofficial ValourSMP server IPs
- `suggest` — submit a suggestion for the bot
### Moderation
- `ban` / `unban` / `kick` — member moderation
- `bans` — list all bans in the planet
- `setwelcome` — configure a welcome channel and message
---
## Data & Privacy
SkyBot stores only the minimum data required for operation. Most data is stored in-memory and is lost on restart. A small amount of server configuration data is persisted to a local SQLite database for the welcome system.
SkyBot does **not** store:
- Message content
- Direct messages
- Personal user data
Full privacy policy:
https://git.skyjoshua.xyz/SkyJoshua/SkyBot/blob/main/PRIVACY.md
---
## License
This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.
See the LICENSE file for details:
https://git.skyjoshua.xyz/SkyJoshua/SkyBot/blob/main/LICENSE
Because this project is licensed under AGPL-3.0, if you modify and deploy it publicly (including as a hosted service), you must make your source code available under the same license.
---
## Requirements
- .NET 10
- A Valour bot token
- A [Pixabay API key](https://pixabay.com/api/docs/) (free) — required for the `image` command
---
## Installation
```bash
git clone https://git.skyjoshua.xyz/SkyJoshua/SkyBot.git
cd SkyBot/SkyBot
dotnet restore
```
All required NuGet packages will be installed automatically using the provided `SkyBot.csproj` file.
---
## Configuration
Create a `.env` file in the root directory of the project:
```
TOKEN=your-bot-token-here
PIXABAY_API_KEY=your-pixabay-api-key-here
```
Then open `Config.cs` and update the following values:
```cs
public static readonly long OwnerId = your-owner-id-here;
public static readonly string Prefix = "your-prefix-here";
public static readonly string SourceLink = "your-source-link-here";
```
- Replace `your-owner-id-here` with your Valour user ID.
- Replace `your-prefix-here` with your desired command prefix (e.g. `s/`).
- Replace `your-source-link-here` with a link to your fork of the repository.
Never commit your `.env` file to the repository. Ensure it is listed in your `.gitignore`.
---
## Running the Bot
```bash
dotnet run
```