modified privacy and readme to use markdown instead of html
This commit is contained in:
164
PRIVACY.md
164
PRIVACY.md
@@ -1,72 +1,92 @@
|
|||||||
<!DOCTYPE html>
|
# Privacy Policy
|
||||||
<html lang="en">
|
|
||||||
<head>
|
**Effective Date:** March 20, 2026
|
||||||
<meta charset="UTF-8">
|
|
||||||
</head>
|
This Privacy Policy describes how SkyBot ("the Bot") collects, uses, and stores information when used within a Valour planet.
|
||||||
<body>
|
|
||||||
<h1>Privacy Policy</h1>
|
---
|
||||||
<p><strong>Effective Date:</strong> March 20, 2026</p>
|
|
||||||
<p>This Privacy Policy describes how SkyBot ("the Bot") collects, uses, and stores information when used within a Valour planet.</p>
|
## 1. Information Collected
|
||||||
<hr>
|
|
||||||
<h2>1. Information Collected</h2>
|
The Bot collects only the minimum data necessary to provide its intended functionality. Most data is stored in-memory and is lost when the Bot restarts. A small amount of server configuration data is persisted to a local SQLite database for features that require it.
|
||||||
<p>The Bot collects only the minimum data necessary to provide its intended functionality. Most data is stored in-memory and is lost when the Bot restarts. A small amount of server configuration data is persisted to a local SQLite database for features that require it.</p>
|
|
||||||
<h3>Information Temporarily Held in Memory:</h3>
|
### Information Temporarily Held in Memory
|
||||||
<ol>
|
|
||||||
<li>Channel IDs (for routing messages and commands)</li>
|
1. Channel IDs (for routing messages and commands)
|
||||||
<li>Planet IDs (for planet-specific operations)</li>
|
2. Planet IDs (for planet-specific operations)
|
||||||
<li>Member IDs (for moderation commands and game session tracking)</li>
|
3. Member IDs (for moderation commands and game session tracking)
|
||||||
<li>Member display names (for game contributor lists in Hangman, Wordle, and Trivia)</li>
|
4. Member display names (for game contributor lists in Hangman, Wordle, and Trivia)
|
||||||
</ol>
|
|
||||||
<h3>Information Persisted to Disk:</h3>
|
### Information Persisted to Disk
|
||||||
<p>The following server configuration data is saved to a local SQLite database so that it survives restarts:</p>
|
|
||||||
<ol>
|
The following server configuration data is saved to a local SQLite database so that it survives restarts:
|
||||||
<li>Planet IDs (to associate configuration with a planet)</li>
|
|
||||||
<li>Channel IDs (to remember the configured welcome channel)</li>
|
1. Planet IDs (to associate configuration with a planet)
|
||||||
<li>Welcome message template (the text set by a moderator via <code>setwelcome message</code>)</li>
|
2. Channel IDs (to remember the configured welcome channel)
|
||||||
<li>Welcome system active state (enabled/disabled)</li>
|
3. Welcome message template (the text set by a moderator via `setwelcome message`)
|
||||||
</ol>
|
4. Welcome system active state (enabled/disabled)
|
||||||
<p>This data contains no personal user information. It is server configuration set by planet moderators and is stored locally on the host running the Bot.</p>
|
|
||||||
<h3>Information Never Stored:</h3>
|
This data contains no personal user information. It is server configuration set by planet moderators and is stored locally on the host running the Bot.
|
||||||
<ol>
|
|
||||||
<li>Message content</li>
|
### Information Never Stored
|
||||||
<li>Direct Messages ("DMs")</li>
|
|
||||||
<li>Personal account information (including usernames, email addresses, or other personally identifiable information)</li>
|
1. Message content
|
||||||
</ol>
|
2. Direct Messages ("DMs")
|
||||||
<hr>
|
3. Personal account information (including usernames, email addresses, or other personally identifiable information)
|
||||||
<h2>2. Purpose of Data Collection</h2>
|
|
||||||
<p>Temporarily held information is used exclusively to:</p>
|
---
|
||||||
<ol>
|
|
||||||
<li>Route commands to the correct channels and planets</li>
|
## 2. Purpose of Data Collection
|
||||||
<li>Enable moderation commands such as ban, unban, and kick</li>
|
|
||||||
<li>Track active game sessions (Hangman, Wordle, Trivia) and display contributor lists</li>
|
Temporarily held information is used exclusively to:
|
||||||
<li>Enable core bot functionality during the current session</li>
|
|
||||||
</ol>
|
1. Route commands to the correct channels and planets
|
||||||
<p>The Bot does not use any information for profiling, marketing, analytics, or tracking purposes.</p>
|
2. Enable moderation commands such as ban, unban, and kick
|
||||||
<hr>
|
3. Track active game sessions (Hangman, Wordle, Trivia) and display contributor lists
|
||||||
<h2>3. Data Storage and Security</h2>
|
4. Enable core bot functionality during the current session
|
||||||
<p>Most data is stored in-memory only and is automatically cleared when the Bot restarts. The exception is server configuration for the welcome system (see Section 1), which is written to a local SQLite database on the host machine. No data is sent to any external storage or cloud service.</p>
|
|
||||||
<p>The Bot does not sell, rent, trade, or otherwise share any data with third parties.</p>
|
The Bot does not use any information for profiling, marketing, analytics, or tracking purposes.
|
||||||
<p>Some features make outbound requests to third-party APIs to fetch content. These requests do not include any user data:</p>
|
|
||||||
<ul>
|
---
|
||||||
<li><strong>Datamuse</strong> (datamuse.com) — word lists for Hangman and Wordle</li>
|
|
||||||
<li><strong>Open Trivia Database</strong> (opentdb.com) — trivia questions for Trivia</li>
|
## 3. Data Storage and Security
|
||||||
<li><strong>The Cat API</strong> (thecatapi.com) — random cat images for the cat command</li>
|
|
||||||
<li><strong>nekos.best</strong> (nekos.best) — hug GIFs for the hug command</li>
|
Most data is stored in-memory only and is automatically cleared when the Bot restarts. The exception is server configuration for the welcome system (see Section 1), which is written to a local SQLite database on the host machine. No data is sent to any external storage or cloud service.
|
||||||
<li><strong>Pixabay</strong> (pixabay.com) — images for the image command</li>
|
|
||||||
</ul>
|
The Bot does not sell, rent, trade, or otherwise share any data with third parties.
|
||||||
<hr>
|
|
||||||
<h2>4. Data Retention</h2>
|
Some features make outbound requests to third-party APIs to fetch content. These requests do not include any user data:
|
||||||
<p>In-memory data (game sessions, moderation context, etc.) is held only for the duration of the Bot's current session and is cleared on restart. Server configuration data for the welcome system is retained in a local SQLite database until explicitly changed or deleted by a planet moderator.</p>
|
|
||||||
<hr>
|
- **Datamuse** (datamuse.com) — word lists for Hangman and Wordle
|
||||||
<h2>5. Self-Hosting</h2>
|
- **Open Trivia Database** (opentdb.com) — trivia questions for Trivia
|
||||||
<p>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.</p>
|
- **The Cat API** (thecatapi.com) — random cat images for the cat command
|
||||||
<hr>
|
- **nekos.best** (nekos.best) — hug GIFs for the hug command
|
||||||
<h2>6. Future Changes to Logging or Data Practices</h2>
|
- **Pixabay** (pixabay.com) — images for the image command
|
||||||
<p>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.</p>
|
|
||||||
<p>Continued use of the Bot after updates to this policy constitutes acceptance of the revised policy.</p>
|
---
|
||||||
<hr>
|
|
||||||
<h2>7. Contact Information</h2>
|
## 4. Data Retention
|
||||||
<p>For privacy-related inquiries, requests, or concerns, please contact:</p>
|
|
||||||
<p><strong>Email:</strong> contact@skyjoshua.xyz</p>
|
In-memory data (game sessions, moderation context, etc.) is held only for the duration of the Bot's current session and is cleared on restart. Server configuration data for the welcome system is retained in a local SQLite database until explicitly changed or deleted by a planet moderator.
|
||||||
</body>
|
|
||||||
</html>
|
---
|
||||||
|
|
||||||
|
## 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
|
||||||
248
README.md
248
README.md
@@ -1,131 +1,129 @@
|
|||||||
<!DOCTYPE html>
|
# SkyBot
|
||||||
<html lang="en">
|
|
||||||
<body>
|
|
||||||
<h1>SkyBot</h1>
|
|
||||||
<p>
|
|
||||||
SkyBot is a Valour.gg bot built with .NET 10.
|
SkyBot is a Valour.gg bot built with .NET 10.
|
||||||
</p>
|
|
||||||
<h2>Features</h2>
|
---
|
||||||
<ul>
|
|
||||||
<li>Designed for self-hosting</li>
|
## Features
|
||||||
<li>Open-source under AGPL-3.0</li>
|
|
||||||
<li>Built with .NET 10</li>
|
- Designed for self-hosting
|
||||||
<li>Command system with automatic registration</li>
|
- Open-source under AGPL-3.0
|
||||||
</ul>
|
- Built with .NET 10
|
||||||
<h3>Fun</h3>
|
- Command system with automatic registration
|
||||||
<ul>
|
|
||||||
<li>8ball — ask the magic 8 ball a question</li>
|
### Fun
|
||||||
<li>coinflip — flip a coin</li>
|
|
||||||
<li>dice — roll a die</li>
|
- `8ball` — ask the magic 8 ball a question
|
||||||
<li>rockpaperscissors — play rock paper scissors against the bot</li>
|
- `coinflip` — flip a coin
|
||||||
<li>choose — pick one of the given options</li>
|
- `dice` — roll a die
|
||||||
<li>echo — repeat text through the bot</li>
|
- `rockpaperscissors` — play rock paper scissors against the bot
|
||||||
<li>reverse — reverse yours or a replied message</li>
|
- `choose` — pick one of the given options
|
||||||
<li>mock — mOcK tExT</li>
|
- `echo` — repeat text through the bot
|
||||||
<li>t9encode / t9decode — encode or decode old phone keypad multi-tap digits</li>
|
- `reverse` — reverse yours or a replied message
|
||||||
<li>hangman — channel-wide game of hangman with optional category (<code>hg <letter or word></code> to guess)</li>
|
- `mock` — mOcK tExT
|
||||||
<li>wordle — channel-wide Wordle; guess the 5-letter word in 6 tries (<code>wg <word></code> to guess)</li>
|
- `t9encode` / `t9decode` — encode or decode old phone keypad multi-tap digits
|
||||||
<li>trivia — channel-wide trivia question with 30 seconds to answer (<code>tg <A/B/C/D></code> to guess)</li>
|
- `hangman` — channel-wide game of hangman with optional category (`hg <letter or word>` to guess)
|
||||||
<li>image — fetch a random image matching your search (aliases: <code>img</code>)</li>
|
- `wordle` — channel-wide Wordle; guess the 5-letter word in 6 tries (`wg <word>` to guess)
|
||||||
</ul>
|
- `trivia` — channel-wide trivia question with 30 seconds to answer (`tg <A/B/C/D>` to guess)
|
||||||
<h3>Chill</h3>
|
- `image` — fetch a random image matching your search (aliases: `img`)
|
||||||
<ul>
|
|
||||||
<li>cat — post a random cat picture</li>
|
### Chill
|
||||||
<li>hug — send a hug with a random gif</li>
|
|
||||||
</ul>
|
- `cat` — post a random cat picture
|
||||||
<h3>Info</h3>
|
- `hug` — send a hug with a random gif
|
||||||
<ul>
|
|
||||||
<li>ping — check bot latency</li>
|
### Info
|
||||||
<li>uptime — show how long the bot has been running</li>
|
|
||||||
<li>info — user and planet info</li>
|
- `ping` — check bot latency
|
||||||
<li>version — show the current bot and Valour SDK version</li>
|
- `uptime` — show how long the bot has been running
|
||||||
<li>usercount — show the total Valour user count</li>
|
- `info` — user and planet info
|
||||||
<li>source — link to the bot's source code</li>
|
- `version` — show the current bot and Valour SDK version
|
||||||
<li>joinsite — link to a site to help bots join a planet</li>
|
- `usercount` — show the total Valour user count
|
||||||
<li>devcentral — invite link to the Dev Central planet</li>
|
- `source` — link to the bot's source code
|
||||||
<li>swagger — link to the Valour API docs</li>
|
- `joinsite` — link to a site to help bots join a planet
|
||||||
<li>minecraft — Unofficial ValourSMP server IPs</li>
|
- `devcentral` — invite link to the Dev Central planet
|
||||||
<li>suggest — submit a suggestion for the bot</li>
|
- `swagger` — link to the Valour API docs
|
||||||
</ul>
|
- `minecraft` — Unofficial ValourSMP server IPs
|
||||||
<h3>Moderation</h3>
|
- `suggest` — submit a suggestion for the bot
|
||||||
<ul>
|
|
||||||
<li>ban / unban / kick — member moderation</li>
|
### Moderation
|
||||||
<li>bans — list all bans in the planet</li>
|
|
||||||
<li>setwelcome — configure a welcome channel and message</li>
|
- `ban` / `unban` / `kick` — member moderation
|
||||||
</ul>
|
- `bans` — list all bans in the planet
|
||||||
<h2>Data & Privacy</h2>
|
- `setwelcome` — configure a welcome channel and message
|
||||||
<p>SkyBot stores only the minimum data required for operation. All data is stored in-memory and is lost on restart. SkyBot does <strong>not</strong> persist any data to disk.</p>
|
|
||||||
<p>SkyBot does <strong>not</strong> store:</p>
|
---
|
||||||
<ul>
|
|
||||||
<li>Message content</li>
|
## Data & Privacy
|
||||||
<li>Direct messages</li>
|
|
||||||
<li>Personal user data</li>
|
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.
|
||||||
</ul>
|
|
||||||
<p>
|
SkyBot does **not** store:
|
||||||
Full privacy policy:<br>
|
|
||||||
<a href="https://github.com/SkyJoshua/SkyBot/blob/main/PRIVACY.md">
|
- Message content
|
||||||
https://github.com/SkyJoshua/SkyBot/blob/main/PRIVACY.md
|
- Direct messages
|
||||||
</a>
|
- Personal user data
|
||||||
</p>
|
|
||||||
<h2>License</h2>
|
Full privacy policy:
|
||||||
<p>
|
https://git.skyjoshua.xyz/SkyJoshua/SkyBot/blob/main/PRIVACY.md
|
||||||
This project is licensed under the
|
|
||||||
<strong>GNU Affero General Public License v3.0 (AGPL-3.0)</strong>.
|
---
|
||||||
</p>
|
|
||||||
<p>
|
## License
|
||||||
See the LICENSE file for details:<br>
|
|
||||||
<a href="https://github.com/SkyJoshua/SkyBot/blob/main/LICENSE">
|
This project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**.
|
||||||
https://github.com/SkyJoshua/SkyBot/blob/main/LICENSE
|
|
||||||
</a>
|
See the LICENSE file for details:
|
||||||
</p>
|
https://git.skyjoshua.xyz/SkyJoshua/SkyBot/blob/main/LICENSE
|
||||||
<p>
|
|
||||||
Because this project is licensed under AGPL-3.0, if you modify and deploy it
|
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.
|
||||||
publicly (including as a hosted service), you must make your source code
|
|
||||||
available under the same license.
|
---
|
||||||
</p>
|
|
||||||
<h2>Requirements</h2>
|
## Requirements
|
||||||
<ul>
|
|
||||||
<li>.NET 10</li>
|
- .NET 10
|
||||||
<li>A Valour bot token</li>
|
- A Valour bot token
|
||||||
<li>A <a href="https://pixabay.com/api/docs/">Pixabay API key</a> (free) — required for the <code>image</code> command</li>
|
- A [Pixabay API key](https://pixabay.com/api/docs/) (free) — required for the `image` command
|
||||||
</ul>
|
|
||||||
<h2>Installation</h2>
|
---
|
||||||
<p>Fork this repository, then:</p>
|
|
||||||
<pre><code>git clone https://github.com/YOUR_USERNAME/SkyBot.git
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://git.skyjoshua.xyz/SkyJoshua/SkyBot.git
|
||||||
cd SkyBot/SkyBot
|
cd SkyBot/SkyBot
|
||||||
dotnet restore
|
dotnet restore
|
||||||
</code></pre>
|
```
|
||||||
<p>
|
|
||||||
All required NuGet packages will be installed automatically using the
|
All required NuGet packages will be installed automatically using the provided `SkyBot.csproj` file.
|
||||||
provided <code>SkyBot.csproj</code> file.
|
|
||||||
</p>
|
---
|
||||||
<h2>Configuration</h2>
|
|
||||||
<p>Create a <code>.env</code> file in the root directory of the project with your bot token:</p>
|
## Configuration
|
||||||
<pre><code>TOKEN=your-bot-token-here
|
|
||||||
|
Create a `.env` file in the root directory of the project:
|
||||||
|
```
|
||||||
|
TOKEN=your-bot-token-here
|
||||||
PIXABAY_API_KEY=your-pixabay-api-key-here
|
PIXABAY_API_KEY=your-pixabay-api-key-here
|
||||||
</code></pre>
|
```
|
||||||
<p>Then open <code>Config.cs</code> and update the following values:</p>
|
|
||||||
<pre><code>public static readonly long OwnerId = your-owner-id-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 Prefix = "your-prefix-here";
|
||||||
public static readonly string SourceLink = "your-source-link-here";
|
public static readonly string SourceLink = "your-source-link-here";
|
||||||
</code></pre>
|
```
|
||||||
<ul>
|
|
||||||
<li>Replace <code>your-owner-id-here</code> with your Valour user ID.</li>
|
- Replace `your-owner-id-here` with your Valour user ID.
|
||||||
<li>Replace <code>your-prefix-here</code> with your desired command prefix (e.g. <code>s/</code>).</li>
|
- Replace `your-prefix-here` with your desired command prefix (e.g. `s/`).
|
||||||
<li>Replace <code>your-source-link-here</code> with a link to your fork of the repository.</li>
|
- Replace `your-source-link-here` with a link to your fork of the repository.
|
||||||
</ul>
|
|
||||||
<p>Never commit your <code>.env</code> file to the repository. Ensure it is listed in your <code>.gitignore</code>.</p>
|
Never commit your `.env` file to the repository. Ensure it is listed in your `.gitignore`.
|
||||||
<h2>Running the Bot</h2>
|
|
||||||
<pre><code>dotnet run</code></pre>
|
---
|
||||||
<h2>Contributing</h2>
|
|
||||||
<p>
|
## Running the Bot
|
||||||
Contributions are welcome. By submitting a contribution, you agree that your
|
```bash
|
||||||
contributions will be licensed under AGPL-3.0.
|
dotnet run
|
||||||
</p>
|
```
|
||||||
<ol>
|
|
||||||
<li>Fork the repository</li>
|
|
||||||
<li>Create a feature branch</li>
|
|
||||||
<li>Submit a pull request</li>
|
|
||||||
</ol>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Reference in New Issue
Block a user