1
Fork 0
mirror of https://github.com/allthingslinux/tux.git synced 2024-10-02 08:39:09 +00:00

docs(CODE_OF_CONDUCT.md, CONTRIBUTING.md): wrap email and URLs in angle brackets for better markdown rendering

refactor(CONTRIBUTING.md): improve document structure and readability by adding indentation and spacing
style(CONTRIBUTING.md): add newline at end of file to adhere to POSIX standards

feat: add .markdownlint.yaml for consistent markdown formatting

This commit adds a .markdownlint.yaml configuration file to enforce consistent markdown formatting across the project. This will help maintain readability and uniformity in all markdown files.

docs: improve readability and clarity of project documentation

- README.md: Simplify title and subtitle formatting, add warning about bot readiness, clarify installation steps, and improve overall readability.
- cli.md: Improve readability by adding line breaks.
- commands.md: Remove unnecessary line break.
- development.md: Simplify introduction, refer to README for installation instructions, and improve readability.
- permissions.md: Improve readability by adding line breaks and clarifying permission levels.

style(services.md): improve readability by adding a line break between two sentences
docs(services.md): add newline at end of file to adhere to POSIX standards
This commit is contained in:
kzndotsh 2024-08-17 08:27:13 +00:00
parent 1bf1642b5b
commit 8fcebd00be
9 changed files with 379 additions and 64 deletions

View file

@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
allthingslinux@proton.me.
<mailto:allthingslinux@proton.me>.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
@ -116,7 +116,7 @@ the community.
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
@ -124,5 +124,5 @@ enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.

View file

@ -1,38 +1,43 @@
# Contributing to Tux 🐧
## Topics
- [Contributing Flow](#contributing-flow)
- [Issues](#issues)
- [Branch Naming Conventions](#branch-naming-conventions)
- [Contributing to Tux 🐧](#contributing-to-tux-)
- [Topics](#topics)
- [Contributing Flow](#contributing-flow)
- [Issues](#issues)
- [Branch Naming Conventions](#branch-naming-conventions)
## Contributing Flow
1. See [Issues](#issues) topic.
2. Fork the project.
3. Create a new branch (please, see [Branch Naming Conventions](#branch-naming-conventions) topic if you don't know our conventions).
4. After done with modifications, time to commit and push. Example:
```
git add tux/help.py
git commit -m "feat(tux): add help command" -m "Help command description"
git push origin feat/add-help-command
```
```bash
git add tux/help.py
git commit -m "feat(tux): add help command" -m "Help command description"
git push origin feat/add-help-command
```
5. Send a Pull Request (PR) with the modifications, referencing the `main` branch.
6. Your contribution will be reviewed by the maintainers.
After merge:
- Delete the branch used to commit:
```
```bash
git checkout main
git push origin --delete feat/add-help-command
git branch -D feat/add-help-command
```
- Update your fork:
```
```bash
git remote add upstream https://github.com/allthingslinux/tux.git
git fetch upstream
git rebase upstream/main
@ -40,10 +45,12 @@ git push -f origin main
```
## Issues
Before submitting a large PR, please open an [issue](https://github.com/allthingslinux/tux/issues/new) so we can discuss the idea.
## Branch Naming Conventions
Before submitting a large PR, please open an [issue](https://github.com/allthingslinux/tux/issues/new) so we can discuss the idea.
## Branch Naming Conventions
- Documentation: `git checkout -b docs/contributing`
- Modifications: `git checkout -b chore/update-dependencies`
- Features: `git checkout -b feat/add-help-command`
- Fixing: `git checkout -b fix/help-command`
- Fixing: `git checkout -b fix/help-command`

266
.markdownlint.yaml Normal file
View file

@ -0,0 +1,266 @@
# Example markdownlint configuration with all properties set to their default value
# Default state for all rules
default: true
# Path to configuration file to extend
extends: null
# MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md001.md
MD001: true
# MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md003.md
MD003:
# Heading style
style: "consistent"
# MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md004.md
MD004:
# List style
style: "consistent"
# MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md005.md
MD005: true
# MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md007.md
MD007:
# Spaces for indent
indent: 2
# Whether to indent the first level of the list
start_indented: false
# Spaces for first level indent (when start_indented is set)
start_indent: 2
# MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md009.md
MD009:
# Spaces for line break
br_spaces: 2
# Allow spaces for empty lines in list items
list_item_empty_lines: false
# Include unnecessary breaks
strict: false
# MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md010.md
MD010:
# Include code blocks
code_blocks: true
# Fenced code languages to ignore
ignore_code_languages: []
# Number of spaces for each hard tab
spaces_per_tab: 1
# MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md011.md
MD011: true
# MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md012.md
MD012:
# Consecutive blank lines
maximum: 1
# MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md013.md
MD013:
# Number of characters
line_length: 200
# Number of characters for headings
heading_line_length: 80
# Number of characters for code blocks
code_block_line_length: 80
# Include code blocks
code_blocks: true
# Include tables
tables: true
# Include headings
headings: true
# Strict length checking
strict: false
# Stern length checking
stern: false
# MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md014.md
MD014: true
# MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md018.md
MD018: true
# MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md019.md
MD019: true
# MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md020.md
MD020: true
# MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md021.md
MD021: true
# MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md022.md
MD022:
# Blank lines above heading
lines_above: 1
# Blank lines below heading
lines_below: 1
# MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md023.md
MD023: true
# MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md024.md
MD024:
# Only check sibling headings
siblings_only: false
# MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md025.md
MD025:
# Heading level
level: 1
# RegExp for matching title in front matter
front_matter_title: "^\\s*title\\s*[:=]"
# MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md026.md
MD026:
# Punctuation characters
punctuation: ".,;:!。,;:!"
# MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md027.md
MD027: true
# MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md028.md
MD028: false
# MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md029.md
MD029:
# List style
style: "one_or_ordered"
# MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md030.md
MD030:
# Spaces for single-line unordered list items
ul_single: 1
# Spaces for single-line ordered list items
ol_single: 1
# Spaces for multi-line unordered list items
ul_multi: 1
# Spaces for multi-line ordered list items
ol_multi: 1
# MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md031.md
MD031:
# Include list items
list_items: true
# MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md032.md
MD032: true
# MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md033.md
MD033: false
# MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md034.md
MD034: true
# MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md035.md
MD035:
# Horizontal rule style
style: "consistent"
# MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md036.md
MD036:
# Punctuation characters
punctuation: ".,;:!?。,;:!?"
# MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md037.md
MD037: true
# MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md038.md
MD038: true
# MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md039.md
MD039: true
# MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md040.md
MD040:
# List of languages
allowed_languages: []
# Require language only
language_only: false
# MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md041.md
MD041:
# Heading level
level: 1
# RegExp for matching title in front matter
front_matter_title: "^\\s*title\\s*[:=]"
# MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md042.md
MD042: true
# MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md043.md
MD043: false
# MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md044.md
MD044:
# List of proper names
names: []
# Include code blocks
code_blocks: true
# Include HTML elements
html_elements: true
# MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md045.md
MD045: true
# MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md046.md
MD046:
# Block style
style: "consistent"
# MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md047.md
MD047: true
# MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md048.md
MD048:
# Code fence style
style: "consistent"
# MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md049.md
MD049:
# Emphasis style
style: "consistent"
# MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md050.md
MD050:
# Strong style
style: "consistent"
# MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md051.md
MD051: true
# MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md052.md
MD052:
# Include shortcut syntax
shortcut_syntax: false
# MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md053.md
MD053:
# Ignored definitions
ignored_definitions:
- "//"
# MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md054.md
MD054:
# Allow autolinks
autolink: true
# Allow inline links and images
inline: true
# Allow full reference links and images
full: true
# Allow collapsed reference links and images
collapsed: true
# Allow shortcut reference links and images
shortcut: true
# Allow URLs as inline links
url_inline: true
# MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md055.md
MD055:
# Table pipe style
style: "consistent"
# MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md056.md
MD056: true

View file

@ -1,8 +1,6 @@
<div align="center">
<img src="docs/resources/tux.gif" width=128 height=128></img>
<h1>Tux</h1>
<h3><b>A Discord bot for the All Things Linux Discord server</b></h3>
</div>
# Tux
## A Discord bot for the All Things Linux Discord server
<div align="center">
<p align="center">
@ -12,21 +10,23 @@
<img alt="Repo size" src="https://img.shields.io/github/repo-size/allthingslinux/tux?style=for-the-badge&logo=github&color=FAB387&logoColor=FAB387&labelColor=302D41"/></a>
<a href="https://github.com/allthingslinux/tux/issues">
<img alt="Issues" src="https://img.shields.io/github/issues/allthingslinux/tux?style=for-the-badge&logo=githubactions&color=F9E2AF&logoColor=F9E2AF&labelColor=302D41"></a>
<a href="https://www.gnu.org/licenses/gpl-3.0.html">
<img alt="License" src="https://img.shields.io/github/license/allthingslinux/tux?style=for-the-badge&logo=gitbook&color=A6E3A1&logoColor=A6E3A1&labelColor=302D41"></a>
<a href="https://discord.gg/linux">
<img alt="Discord" src="https://img.shields.io/discord/1172245377395728464?style=for-the-badge&logo=discord&color=B4BEFE&logoColor=B4BEFE&labelColor=302D41"></a>
</p>
</div>
# NOTE: This bot (without plenty of tweaking) is not ready for multi-server use, we recommend against using it until it is more complete
> [!WARNING]
**This bot (without plenty of tweaking) is not ready for production use, we recommend against using it until it is more complete.**
## About
Tux is a Discord bot for the All Things Linux Discord server. It is designed to provide a variety of features to the server, including moderation, support, utility, and various fun commands. The bot is written in Python using the discord.py library.
Tux is an all in one Discord bot for the All Things Linux Discord server.
It is designed to provide a variety of features to the server, including moderation, support, utility, and various fun commands.
## Tech Stack
- Python 3.12 alongside the Discord.py library
- Poetry for dependency management
- Docker and Docker Compose for development and deployment
- Strict typing with Pyright and type hints
@ -38,6 +38,7 @@ Tux is a Discord bot for the All Things Linux Discord server. It is designed to
- Exception handling with Sentry
## Bot Features
- Asynchronous codebase
- Hybrid command system with both slash commands and traditional commands
- Cog loading system with hot reloading
@ -51,71 +52,100 @@ Tux is a Discord bot for the All Things Linux Discord server. It is designed to
## Installation
### Prerequisites
- Python 3.12
- [Poetry](https://python-poetry.org/docs/)
- Optional: [Docker](https://docs.docker.com/get-docker/) if you want to run the bot in a container.
- Optional: [Docker Compose](https://docs.docker.com/compose/install/) if you want to define the container environment in a `docker-compose.yml` file.
- Optional: [Just](https://github.com/casey/just/) if you want to use the Justfile for easy CLI commands.
- [Supabase](https://supabase.io/)
- Optional: [Docker](https://docs.docker.com/get-docker/)
- Optional: [Docker Compose](https://docs.docker.com/compose/install/)
- Optional: [Just](https://github.com/casey/just/)
### Steps to Install
Assuming you have the prerequisites installed, follow these steps to get started with the development of the project:
Further detailed instructions can be found in the [development guide](docs/development.md).
### Steps
1. Clone the repository
```bash
git clone https://github.com/allthingslinux/tux && cd tux
```
2. Install the dependencies
2. Install the project's dependencies
```bash
poetry install
```
3. Activate the virtual environment
```bash
poetry shell
```
4. Install the pre-commit hooks
```bash
pre-commit install
```
5. Generate the prisma client
```bash
prisma generate
```
6. Copy the `.env.example` file to `.env` and fill in the required values
Currently, you will need to have a Supabase database set up and the URL set in the `DATABASE_URL` environment variable.
In the future, we will provide a way to use a local database. We can provide a dev database on request.
6. Copy the `.env.example` file to `.env` and fill in the required values.
```bash
cp .env.example .env
```
7. Copy the `config/settings.json.example` file to `config/settings.json` and fill in the required values
You'll need to fill in your Discord bot token here, as well as the Sentry DSN if you want to use Sentry for error tracking.
We offer dev tokens on request in our Discord server.
7. Copy the `config/settings.json.example` file to `config/settings.json` and fill in the required values.
```bash
cp config/settings.json.example config/settings.json
```
8. Run the bot
Be sure to add your Discord user ID to the `BOT_OWNER` key in the settings file.
You can also add your custom prefix here.
8. Start the bot!
```bash
poetry run python tux/main.py
```
9. Run the sync command in the server to sync the slash command tree.
```
```bash
{prefix}dev sync <server id>
```
## Development Notes
> [!NOTE]
> Make sure to add your discord ID to the sys admin list if you are testing locally.
> [!NOTE]
Make sure to add your discord ID to the sys admin list if you are testing locally.
> [!NOTE]
> Make sure to set the prisma schema database ENV variable to the DEV database URL.
Make sure to set the prisma schema database ENV variable to the DEV database URL.
## License
This project is licensed under the terms of the The GNU General Public License v3.0. See the [LICENSE](LICENSE.md) file for details.
This project is licensed under the terms of the The GNU General Public License v3.0.
See [LICENSE](LICENSE.md) for details.
## Metrics
![Alt](https://repobeats.axiom.co/api/embed/cd24c48127e0b6fbc9467711d6d4bd74b30ff8d2.svg "Repobeats analytics image")
![Alt](https://repobeats.axiom.co/api/embed/cd24c48127e0b6fbc9467711d6d4bd74b30ff8d2.svg "Repobeats analytics image")

View file

@ -1,6 +1,8 @@
# Project Documentation
# Project Documentation
This document outlines the essential commands and workflows needed for the installation, development, and management of this project. Each section provides relevant commands and instructions for specific tasks.
This document outlines the essential commands and workflows needed for the installation, development, and management of this project.
Each section provides relevant commands and instructions for specific tasks.
## Table of Contents
@ -116,4 +118,4 @@ git commit -m "Your commit message"
# Push changes to the remote repository.
git push
```
```

View file

@ -9,7 +9,6 @@
- Moderation
- Utility
## Commands
### Admin
@ -94,4 +93,4 @@
- `remindme`
- `snippets`
- `tldr`
- `wiki`
- `wiki`

View file

@ -2,17 +2,13 @@
## Introduction
This document is intended to provide a guide for developers who want to contribute to the development of the project. It is assumed that the reader has a basic understanding of the project and its goals and has a working knowledge of the tools and technologies used in the project.
This document is intended to provide a guide for developers who want to contribute to the development of the project.
It is assumed that the reader has a basic understanding of the project and its goals as well as the tools and technologies used in the project.
## Getting Started
To get started with the development of the project, you will need to have the following tools and technologies installed on your system:
- Python 3.12
- [Poetry](https://python-poetry.org/docs/)
- Optional: [Docker](https://docs.docker.com/get-docker/) if you want to run the bot in a container.
- Optional: [Docker Compose](https://docs.docker.com/compose/install/) if you want to define the container environment in a `docker-compose.yml` file.
- Optional: [Just](https://github.com/casey/just/) if you want to use the Justfile for easy CLI commands.
To get started with the development of the project, refer to the installation instructions in the project [README](../README.md).
## Installation
@ -85,9 +81,13 @@ The project is structured as follows:
There comes a point in your bots development when you want to organize a collection of commands, listeners, and some state into one class. Cogs allow you to do just that.
It should be noted that cogs are typically used alongside with Extensions. An extension at its core is a python file with an entry point called setup. This setup function must be a Python coroutine. It takes a single parameter of the Bot that loads the extension.
It should be noted that cogs are typically used alongside with Extensions.
With regards to Tux, we typically define one cog per extension. Furthermore, we have a `CogLoader` class that loads our cogs (technically, extensions) from the `cogs` directory and registers them with the bot at startup.
An extension at its core is a python file with an entry point called setup. This setup function must be a Python coroutine. It takes a single parameter of the Bot that loads the extension.
With regards to Tux, we typically define one cog per extension. This allows us to keep our code organized and modular.
Furthermore, we have a `CogLoader` class that loads our cogs (technically, extensions) from the `cogs` directory and registers them with the bot at startup.
### Cog Essentials

View file

@ -1,14 +1,22 @@
# Permissions Management
Tux employs a level-based permissions system to control command execution. Each command is associated with a specific permission level, ensuring that only users with the necessary clearance can execute it.
Tux employs a level-based permissions system to control command execution.
Each command is associated with a specific permission level, ensuring that only users with the necessary clearance can execute it.
## Initial Setup
When setting up Tux for a new server, the server owner can assign one or multiple roles to each permission level. Users then inherit the highest permission level from their assigned roles. For instance, if a user has one role with a permission level of 2 and another with a level of 3, their effective permission level will be 3.
When setting up Tux for a new server, the server owner can assign one or multiple roles to each permission level. Users then inherit the highest permission level from their assigned roles.
For instance, if a user has one role with a permission level of 2 and another with a level of 3, their effective permission level will be 3.
## Advantages
The level-based system allows Tux to manage command execution efficiently across different servers. It offers a more flexible solution than just relying on Discord's built-in permissions, avoiding the need to hardcode permissions into the bot. This flexibility makes it easier to modify permissions without changing the bots underlying code, accommodating servers with custom role names seamlessly.
The level-based system allows Tux to manage command execution efficiently across different servers.
It offers a more flexible solution than just relying on Discord's built-in permissions, avoiding the need to hardcode permissions into the bot.
This flexibility makes it easier to modify permissions without changing the bots underlying code, accommodating servers with custom role names seamlessly.
## Available Permission Levels
@ -25,4 +33,5 @@ Below is the hierarchy of permission levels available in Tux:
- **8: Sys Admin** (User ID list in `config.json`)
- **9: Bot Owner** (User ID in `config.json`)
By leveraging these permission levels, Tux provides a robust and adaptable way to manage who can execute specific commands, making it suitable for various server environments.
By leveraging these permission levels, Tux provides a robust and adaptable way to manage who can execute specific commands,
making it suitable for various server environments.

View file

@ -2,7 +2,9 @@
## Overview
Services within the context of this bot are background tasks that run continuously and provide various functionalities to the server. They are typically not directly interacted with by users, but rather provide additional features to the server that are not covered by commands.
Services within the context of this bot are background tasks that run continuously and provide various functionalities to the server.
They are typically not directly interacted with by users, but rather provide additional features to the server that are not covered by commands.
## Available Services
@ -15,4 +17,4 @@ Services within the context of this bot are background tasks that run continuous
- **Auto Welcome**: Sends a welcome message to new members when they join the server.
- **Auto Role**: Assigns a role to new members when they join the server.
- **Auto Mod**: Automatically moderates the server by enforcing rules and restrictions
- **Auto Unban**: Automatically unbans users after a specified duration
- **Auto Unban**: Automatically unbans users after a specified duration