Added realm docs

Sven Heidemann 2025-01-10 15:36:24 +01:00
parent 0071d6b4de
commit 5fa28614eb
10 changed files with 144 additions and 43 deletions

8
.idea/.gitignore vendored Normal file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

7
.idea/discord.xml Normal file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="ASK" />
<option name="description" value="" />
</component>
</project>

@ -0,0 +1,14 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="mysql-connector-python" />
</list>
</value>
</option>
</inspection_tool>
</profile>
</component>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml Normal file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.10 (easy-redirect)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (easy-redirect)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml Normal file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/sh_discord_bot.wiki.iml" filepath="$PROJECT_DIR$/.idea/sh_discord_bot.wiki.iml" />
</modules>
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml Normal file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -3,24 +3,25 @@
## Inhaltsverzeichnis
- [Begriffserklärung](#begriffserklärung)
- [Begriffe](#begriffe)
- [Datentypen](#datentypen)
- [Begriffe](#begriffe)
- [Datentypen](#datentypen)
- [Befehle](#befehle)
- [Allgemein](#allgemein)
- [Game server](#game-server)
- [Register](#register)
- [Unregister](#unregister)
- [Submit](#submit)
- [Achievement](#achievement)
- [Auto role](#auto-role)
- [Auto role rule](#auto-role-rule)
- [User](#user)
- [Level](#level)
- [Short role name](#short-role-name)
- [Techniker](#techniker)
- [Api Key](#api-key)
- [Sync xp](#sync-xp)
- [Noch geplante Befehle](#noch-geplante-befehle)
- [Allgemein](#allgemein)
- [Game server](#game-server)
- [Register](#register)
- [Unregister](#unregister)
- [Submit](#submit)
- [Achievement](#achievement)
- [Auto role](#auto-role)
- [Auto role rule](#auto-role-rule)
- [User](#user)
- [Level](#level)
- [Short role name](#short-role-name)
- [Techniker](#techniker)
- [Api Key](#api-key)
- [Sync xp](#sync-xp)
- [Realms](#realms)
- [Noch geplante Befehle](#noch-geplante-befehle)
Um einen Befehl auszuführen, muss man eine Nachricht einen Text-Kanal (vorzugsweise in einen für Bot Befehle) schicken.
@ -36,18 +37,18 @@ ODER
### Begriffe
- Autor: Das Mitglied, welches den Befehl geschickt hat
- Autor: Das Mitglied, welches den Befehl geschickt hat
- WarnungsId: Id einer Warnung
- Modul: Ein Teil-System des Bots. (database, level, filter)
- MitgliedAttribut: Ein Attribut eines Mitglieds (ontime, xp)
- ontime: Die Zeit, die das Mitglied in einem Sprachkanal verbracht hat
- ontime: Die Zeit, die das Mitglied in einem Sprachkanal verbracht hat
- xp: Nummer anhand welcher das Level bestimmt wird
- logins: Ein Eintrag, wenn ein Mitglied dem Server beigetreten ist
- logins: Ein Eintrag, wenn ein Mitglied dem Server beigetreten ist
- warnings: Eine Verwarnung (z.B. Regelverstoß)
- kicks: Ein Eintrag, wenn ein Mitglied gekickt wurde
- bans: Alle Bans des Mitglieds
Parameter mit einem ```?``` sind optionale Parameter.
Parameter mit einem `?` sind optionale Parameter.
### Datentypen
@ -62,7 +63,7 @@ Parameter mit einem ```?``` sind optionale Parameter.
### Allgemein
| Befehl | Berechtigungen | Parameter | Beschreibung |
|-------------|----------------|-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ----------- | -------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| afk | | member: Member? | Verschiebt den Autor oder das angegebene Mitglied in den AFK Kanal. Um ein Mitglied angeben zu können, muss man Moderator sein alternativ muss der Autor in einem Sprachkanal sein |
| help | | | Gibt den Link dieser Seite aus |
| info | | | Gibt allgemeine Informationen über den Bot aus |
@ -75,7 +76,7 @@ Parameter mit einem ```?``` sind optionale Parameter.
### Game server
| Befehl | Berechtigungen | Parameter | Beschreibung |
|--------------|----------------|--------------------------------|---------------------------------------------------------------------------------|
| ------------ | -------------- | ------------------------------ | ------------------------------------------------------------------------------- |
| list | Moderator | | Listet alle Gameserver des Discord Servers auf |
| add | Admin | name: str,<br/>api_key_id: int | Fügt einen Gameserver hinzu |
| remove | Admin | id: int | Entfernt einen Gameserver |
@ -86,13 +87,13 @@ Parameter mit einem ```?``` sind optionale Parameter.
Befehle der Gruppe /register
| Befehl | Berechtigungen | Parameter | Beschreibung |
|-----------|----------------|-----------------------------------------------------|-----------------------------------------------------------------|
| --------- | -------------- | --------------------------------------------------- | --------------------------------------------------------------- |
| minecraft | Moderator | member: Member,<br/>game_server: int,<br/>name: str | Verknüpft das Mitglied mit dem Spielerprofil auf dem Gameserver |
### Unregister
| Befehl | Berechtigungen | Parameter | Beschreibung |
|------------|----------------|--------------------------------------|-----------------------------------------------------------------------------------|
| ---------- | -------------- | ------------------------------------ | --------------------------------------------------------------------------------- |
| unregister | Moderator | member: Member,<br/>game_server: int | Löscht die Verknüpfung zwischen Mitglied und dem Spielerprofil auf dem Gameserver |
### Submit
@ -100,7 +101,7 @@ Befehle der Gruppe /register
Befehle der Gruppe /submit
| Befehl | Berechtigungen | Parameter | Beschreibung |
|-----------|----------------|-----------|---------------------------------------------------------|
| --------- | -------------- | --------- | ------------------------------------------------------- |
| complaint | | | Nimmt eine Beschwerde auf und teilt diese dem Team mit |
| bug | | | Nimmt einen Bug auf und teilt diese den Entwicklern mit |
@ -109,7 +110,7 @@ Befehle der Gruppe /submit
Befehle der Gruppe /submit
| Befehl | Berechtigungen | Parameter | Beschreibung |
|--------|----------------|----------------|---------------------------------------------------------------|
| ------ | -------------- | -------------- | ------------------------------------------------------------- |
| check | Moderator | member: Member | Überprüft, ob das Mitglied neue Errungenschaften erreicht hat |
### Auto role
@ -117,7 +118,7 @@ Befehle der Gruppe /submit
Befehle der Gruppe /auto-role
| Befehl | Berechtigungen | Parameter | Beschreibung |
|--------|----------------|-----------------------------------|-------------------------------------------|
| ------ | -------------- | --------------------------------- | ----------------------------------------- |
| list | Moderator | wait: int? | Listet alle AutoRoles auf |
| add | Moderator | channel: Channel, message_id: str | Erstellt eine AutoRole für eine Nachricht |
| remove | Moderator | auto_role: int | Löscht die AutoRole anhand der Id |
@ -127,7 +128,7 @@ Befehle der Gruppe /auto-role
Befehle der Gruppe /auto-role rule
| Befehl | Berechtigungen | Parameter | Beschreibung |
|--------|----------------|-----------------------------------------------|----------------------------------------------------------------------------------------------------------|
| ------ | -------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| list | Moderator | wait: int? | Listet alle AutoRoles Regeln auf |
| add | Moderator | auto_role: int, emoji_name: str, role_id: str | Erstellt eine Regel für die gegebene AutoRole. Es wird auf die gegebene Nachricht mit dem Emoji reagiert |
| remove | Moderator | auto_role_rule: int | Löscht die AutoRole Regel anhand der Id |
@ -137,7 +138,7 @@ Befehle der Gruppe /auto-role rule
Befehle der Gruppe /user
| Befehl | Berechtigungen | Parameter | Beschreibung |
|----------------|----------------|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------|
| -------------- | -------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| birthday | | day: int, month: int, year: int | Speichert das Geburtsdatum des Autors |
| info | | member: Member? | Gibt alle Werte des gegebenen Mitglieds aus |
| get | | member: Member?, atr: str | Gibt den Wert des gegebenen Attributes aus. Wird kein Mitglied angegeben, wird der Autor genutzt |
@ -154,7 +155,7 @@ Befehle der Gruppe /user
Befehle der Gruppe /level
| Befehl | Berechtigungen | Parameter | Beschreibung |
|--------|----------------|---------------------------------------------------------|---------------------------------------------------------------------------------------------|
| ------ | -------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| list | Moderator | wait: int? | Listet alle Level auf |
| create | Admin | name: str, color: str, min_xp: int, permissions: int | Erstellt ein Level & die Rolle anhand des Levels. Das Levelsystem wird danach neu geladen |
| edit | Admin | name: str, color: str?, min_xp: int?, permissions: int? | Bearbeitet das Level, indem die Werte gesetzt werden, welche als Parameter übergeben werden |
@ -162,18 +163,18 @@ Befehle der Gruppe /level
| up | Moderator | member: Member | Erhöht das Level des Mitglieds auf das nächst höhere |
| down | Moderator | member: Member | Verringert das Level des Mitglieds auf das nächst niedrigere |
| set | Moderator | level: str, user: Member | Setzt das Level des Mitglieds auf das gegebene Level |
| reload | Moderator | | Lädt das Levelsystem neu |
| reload | Moderator | | Lädt das Levelsystem neu |
#### Short role name
| Befehl | Berechtigungen | Parameter | Beschreibung |
|-----------------------|----------------|-----------|------------------------------------------------------------------------------|
| short-role-name-check | Moderator | | Überprüft ob alle Rollen Kürzel bei allen Mitgliedern richtig gesetzt wurden |
| --------------------- | -------------- | --------- | ---------------------------------------------------------------------------- |
| short-role-name-check | Moderator | | Überprüft ob alle Rollen Kürzel bei allen Mitgliedern richtig gesetzt wurden |
### Techniker
| Befehl | Berechtigungen | Parameter | Beschreibung |
|----------|----------------|-------------------------|------------------------------------------------------|
| -------- | -------------- | ----------------------- | ---------------------------------------------------- |
| shutdown | Techniker | | Stoppt den Bot |
| restart | Techniker | | Startet den Bot neu |
| log | Techniker | dateFrom: str?, dateTo? | Schickt ein ZIP-Paket mit den angefragten Logs darin |
@ -181,7 +182,7 @@ Befehle der Gruppe /level
#### Api Key
| Befehl | Berechtigungen | Parameter | Beschreibung |
|--------|----------------|----------------------|---------------------------------------------|
| ------ | -------------- | -------------------- | ------------------------------------------- |
| get | Techniker | key: str, wait: int? | Gibt den Schlüssel für einen API-Key zurück |
| add | Techniker | identifier: str | Fügt einen API-Key hinzu |
| remove | Techniker | key: str | Entfernt einen API-Key |
@ -189,15 +190,28 @@ Befehle der Gruppe /level
#### Sync xp
| Befehl | Berechtigungen | Parameter | Beschreibung |
|-------------|----------------|-------------------------------------|-------------------------------------------------------------------------------------|
| ----------- | -------------- | ----------------------------------- | ----------------------------------------------------------------------------------- |
| all_members | Techniker | server_id: int | Übernimmt die XP aller Mitglieder von einem anderen Server, sofern diese größer ist |
| by_member | Techniker | server_id: int,<br/>,member: Member | Übernimmt die XP für ein Mitglied von einem anderen Server, sofern diese größer ist |
#### Realms
| Befehl | Berechtigungen | Parameter | Beschreibung |
| ---------------- | --------------------------- | -------------------------- | -------------------------------------------- |
| list | Moderator | | Listet alle Realms |
| add | Moderator | name: str, leader: Member? | Erstellt einen Realm inkl. Kategorie & Rolle |
| edit | Moderator | realm_name: str, name: str | Ändert den Namen des Realms |
| delete | Moderator | realm_name: str | Entfernt die Kategorie inkl. Rolle & Kanäle |
| member add | Server oder Realm Moderator | realm: str, member: Member | Mitglied zum Realm zuweisen |
| member remove | Server oder Realm Moderator | realm: str, member: Member | Mitglied aus dem Realm entfernen |
| moderator add | Server oder Realm Moderator | realm: str, member: Member | Mitglied zum Moderator ernennen |
| moderator remove | Server oder Realm Moderator | realm: str, member: Member | Moderator status eines Mitglieds entfernen |
### Noch geplante Befehle
| Berechtigungen | Befehl | Parameter | Beschreibung |
|----------------|----------------|---------------|---------------------------------------------|
| Moderator | filter-list | | Zeigt die Filterliste |
| Moderator | filter-add | Wort | Fügt ein Begriff zur Filterliste hinzu |
| Admin | filter-remove | Wort | Entfernt einen Begriff aus der Filterliste |
| Admin | filter-clear | | Leert die Filterliste |
| Berechtigungen | Befehl | Parameter | Beschreibung |
| -------------- | ------------- | --------- | ------------------------------------------ |
| Moderator | filter-list | | Zeigt die Filterliste |
| Moderator | filter-add | Wort | Fügt ein Begriff zur Filterliste hinzu |
| Admin | filter-remove | Wort | Entfernt einen Begriff aus der Filterliste |
| Admin | filter-clear | | Leert die Filterliste |

@ -0,0 +1,23 @@
## Was ist ein Realm?
Ein Realm ist ein privater Bereich für euch, den ihr frei einrichten könnt.
Konkret handelt es sich dabei um eine Kategorie & Rolle die vom Bot angelegt werden.
Daher ist auch zu empfehlen, dass die Bot Befehle genutzt werden um Mitglieder und Moderatoren hinzuzufügen.
By default ist der Realm privat also nur die Mitglieder dieses gedacht.
Diese wie auch viele andere Einstellungen sind über Discord einzustellen.
Lediglich Mitglieder, Moderatoren & der Name sollten über den Bot genutzt werden.
### Mitglieder
Zuweisung findet über eine gleichnahmige Rolle statt. Der Bot managed diese.
Zugewiesene Mitglieder können den Realm sehen. Dieser kann natürlich auch öffentlich gestellt werden.
Mitglieder können genau so wieder entfernt werden.
Die Mitgliederverwaltung ist Realm Moderatoren vorbehalten.
### Moderatoren
By default bekommen Moderatoren Berechtigungen um Kanäle & Rechte des Realms zu verwalten.