v3.0.1 - Added Config.cs and Readme, Privacy and Commands

This commit is contained in:
2026-04-18 02:31:47 +01:00
parent 44393f1745
commit 4f41c465d1
5 changed files with 212 additions and 1 deletions

2
.gitignore vendored
View File

@@ -4,4 +4,4 @@
**/obj/
**.sln
**/database.db
**/Config.cs

39
COMMANDS.md Normal file
View File

@@ -0,0 +1,39 @@
# SkyBot Commands
All commands are prefixed with your configured prefix (e.g. `s/`). Arguments in `[brackets]` are optional.
---
## Fun
| Command | Aliases | Description |
|---|---|---|
| `echo <text>` | `say` | Repeat text through the bot. If the command message is deleted, the echoed message is also deleted. |
---
## Info
| Command | Aliases | Description |
|---|---|---|
| `help` | `cmds` | Shows all commands organised by category |
---
## Dev
> These commands are only accessible to the bot owner.
| Command | Aliases | Description |
|---|---|---|
| `delete` | — | Deletes a replied-to message. Deletes bot messages directly; requires `ManageMessages` for other members' messages. Reply to a message to use. |
| `planet <join\|leave\|list>` | — | Manage the planets the bot is a member of |
| `react <emoji> [amount]` | — | Add a reaction to a replied-to message a given number of times |
### planet subcommands
| Subcommand | Usage | Description |
|---|---|---|
| `join` | `planet join <id> [invite]` | Join a planet by ID, optionally with an invite code |
| `leave` | `planet leave [id]` | Leave a planet by ID, or the current planet if no ID is given |
| `list` | `planet list` | List all planets the bot is currently a member of |

74
PRIVACY.md Normal file
View File

@@ -0,0 +1,74 @@
# Privacy Policy
**Effective Date:** April 18, 2026
This Privacy Policy describes how SkyBot ("the Bot") collects, uses, and stores information when used within a Valour planet.
---
## 1. Information Collected
The Bot collects only the minimum data necessary to provide its intended functionality. All data is stored in-memory and is lost when the Bot restarts. No data is persisted to disk.
### Information Temporarily Held in Memory
1. Channel IDs (for routing messages and commands)
2. Planet IDs (for planet-specific operations)
3. Member IDs (for command execution context)
4. Echo message mappings (command message ID → echoed message ID, used to delete echoed messages if the original is deleted)
### Information Never Stored
1. Message content
2. Direct Messages ("DMs")
3. Personal account information (including usernames, email addresses, or other personally identifiable information)
---
## 2. Purpose of Data Collection
Temporarily held information is used exclusively to:
1. Route commands to the correct channels and planets
2. Enable core bot functionality during the current session
3. Track echo message pairs to support automatic cleanup when the original command message is deleted
The Bot does not use any information for profiling, marketing, analytics, or tracking purposes.
---
## 3. Data Storage and Security
All data is stored in-memory only and is automatically cleared when the Bot restarts. No data is written to disk or sent to any external storage or cloud service.
The Bot does not sell, rent, trade, or otherwise share any data with third parties.
The Bot makes no outbound requests to any third-party APIs.
---
## 4. Data Retention
All in-memory data is held only for the duration of the Bot's current session and is cleared on restart. Echo message mappings are additionally cleared as soon as the original command message is deleted or the session ends.
---
## 5. Self-Hosting
SkyBot is designed for self-hosting. If you choose to host your own instance of SkyBot, you are responsible for the privacy and security of any data processed by your instance. This policy applies to the official instance of SkyBot only.
---
## 6. Future Changes to Logging or Data Practices
If additional operational logging or data collection practices are introduced in the future, this Privacy Policy will be updated to reflect those changes prior to implementation.
Continued use of the Bot after updates to this policy constitutes acceptance of the revised policy.
---
## 7. Contact Information
For privacy-related inquiries, requests, or concerns, please contact:
**Email:** contact@skyjoshua.xyz

90
README.md Normal file
View File

@@ -0,0 +1,90 @@
# 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
### Command Categories
- **Fun** — utilities and silly stuff (echo)
- **Info** — bot info and command listing
Full command list: [COMMANDS.md](COMMANDS.md)
---
## Data & Privacy
SkyBot stores only the minimum data required for operation. All data is stored in-memory and is lost on restart. No data is persisted to disk.
SkyBot does **not** store:
- Message content
- Direct messages
- Personal user data
Full privacy policy: [PRIVACY.md](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.
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
---
## Installation
```bash
git clone <your-repo-url>
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
```
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";
```
- Replace `your-owner-id-here` with your Valour user ID.
- Replace `your-prefix-here` with your desired command prefix (e.g. `sd/`).
Never commit your `.env` file to the repository. Ensure it is listed in your `.gitignore`.
---
## Running the Bot
```bash
dotnet run
```

8
SkyBot/Config.cs Normal file
View File

@@ -0,0 +1,8 @@
namespace SkyBot
{
public static class Config {
public static readonly long OwnerId = 15652354820931584;
public static readonly string Prefix = "sd/";
public static readonly string SourceLink = "https://git.skyjoshua.xyz/SkyJoshua/SkyBot";
}
}