From 8fcebd00be67cb755c5628ae2e078c31f3a3b702 Mon Sep 17 00:00:00 2001 From: kzndotsh Date: Sat, 17 Aug 2024 08:27:13 +0000 Subject: [PATCH] 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 --- .github/CODE_OF_CONDUCT.md | 8 +- .github/CONTRIBUTING.md | 37 +++--- .markdownlint.yaml | 266 +++++++++++++++++++++++++++++++++++++ README.md | 78 +++++++---- docs/cli.md | 8 +- docs/commands.md | 3 +- docs/development.md | 20 +-- docs/permissions.md | 17 ++- docs/services.md | 6 +- 9 files changed, 379 insertions(+), 64 deletions(-) create mode 100644 .markdownlint.yaml diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index ec5353e..6362c88 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -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. +. 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. +. 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. +. Translations are available at +. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 59b9983..d512657 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -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` \ No newline at end of file +- Fixing: `git checkout -b fix/help-command` diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..3419b50 --- /dev/null +++ b/.markdownlint.yaml @@ -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 diff --git a/README.md b/README.md index 1f796b5..9e3287e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ -
- -

Tux

-

A Discord bot for the All Things Linux Discord server

-
+# Tux + +## A Discord bot for the All Things Linux Discord server

@@ -12,21 +10,23 @@ Repo size Issues - - License Discord

-# 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 ``` ## 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") \ No newline at end of file +![Alt](https://repobeats.axiom.co/api/embed/cd24c48127e0b6fbc9467711d6d4bd74b30ff8d2.svg "Repobeats analytics image") diff --git a/docs/cli.md b/docs/cli.md index d24297c..9b3c707 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -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 -``` \ No newline at end of file +``` diff --git a/docs/commands.md b/docs/commands.md index efa9ff4..9d062d5 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -9,7 +9,6 @@ - Moderation - Utility - ## Commands ### Admin @@ -94,4 +93,4 @@ - `remindme` - `snippets` - `tldr` -- `wiki` \ No newline at end of file +- `wiki` diff --git a/docs/development.md b/docs/development.md index fdabf22..08c0537 100644 --- a/docs/development.md +++ b/docs/development.md @@ -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 bot’s 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 diff --git a/docs/permissions.md b/docs/permissions.md index 9a85ac5..a4ac8fa 100644 --- a/docs/permissions.md +++ b/docs/permissions.md @@ -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 bot’s 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 bot’s 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. \ No newline at end of file +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. diff --git a/docs/services.md b/docs/services.md index 426f63f..ec1618d 100644 --- a/docs/services.md +++ b/docs/services.md @@ -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 \ No newline at end of file +- **Auto Unban**: Automatically unbans users after a specified duration