diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -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
diff --git a/.idea/discord.xml b/.idea/discord.xml
new file mode 100644
index 0000000..30bab2a
--- /dev/null
+++ b/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..967f534
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..fa0887c
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..03531d0
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sh_discord_bot.wiki.iml b/.idea/sh_discord_bot.wiki.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/.idea/sh_discord_bot.wiki.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Befehle.md b/Befehle.md
index 1aff715..fec73bf 100644
--- a/Befehle.md
+++ b/Befehle.md
@@ -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, 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, game_server: int, name: str | Verknüpft das Mitglied mit dem Spielerprofil auf dem Gameserver |
### Unregister
| Befehl | Berechtigungen | Parameter | Beschreibung |
-|------------|----------------|--------------------------------------|-----------------------------------------------------------------------------------|
+| ---------- | -------------- | ------------------------------------ | --------------------------------------------------------------------------------- |
| unregister | Moderator | member: Member, 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, ,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 |
diff --git a/Realm.md b/Realm.md
index e69de29..ba70589 100644
--- a/Realm.md
+++ b/Realm.md
@@ -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.
\ No newline at end of file