![sahnee-bot](https://l-neubauer.de/wp-content/uploads/2020/06/sahnee-bot-150x150.png)
Der sahnee-bot. Entstanden aus einer früheren Idee von @PatrickSachs und @JakobHeubl.
Die Funktion dieses Bot ist leicht zu beschreiben: Command eingeben und eine Person bekommt eine Verwarnung. Die Logik dahinter hat sich im Gegensatz zur Version 1 komplett geändert.
Discord- Wo ist der Unterschied zwischen Version 1 und dem finalen Release des sahnee-bot?
- .NET Core 3.1 Framework statt Javascript und Node.js
- Verwendung einer Datenbank (liteDB) für die Rollen und Nachrichten
- Hosting auf einem Server mit Gigabit Anbindung und SSDs als Speicherplatz für die Datenbank
- Aufgaben, welche in regelmäßigen Abständen ausgeführt werden können
- Verwarnungs-Warteschlangen pro Discord Server
So funktioniert der neue Bot:
Um keine eigene Implementation der Discord API schreiben zu müssen, haben wir uns für die Discord.NET API entschieden.
1. Die Befehle
Es gibt eine Liste an Befehlen, die, sofern der von uns gehostete Bot verwendet wird, in den Channel „bot-commands“ geschrieben werden müssen. Die Befehle sind Englisch gehalten, da mit dem Bot ein internationales Publikum erreicht werden soll.
2. Die Warteschlange
Nun fiel uns während des Entwickelns auf, dass sofern Benutzer 1 eine Verwarnung von Benutzer 2 und Benutzer 3 gleichzeitig bekommt und im worst-case von Benutzer 4 eine Entwarnung erhält, wird diese Befehlskette nicht der Reihe nach abgearbeitet. Daher haben wir eine Warteschlange für Befehle pro Discord Server erstellt, um genau dieses Problem zu vermeiden.
3. Datenbank und Aufgaben
Die Handhabung der Rollen Verteilung/vergabe war in der ersten Version des Bots unsauber gelöst. Die Rollen wurden auf dem Discord Server erstellt und dabei wurde es dann auch belassen. Da Discord leider ein Limit hat, für Rollen pro Server sind wir hier auch schon an eine Grenze gestoßen während der Bot auf unserem Discord Server aktiv war.
Daher haben wir uns dafür entschieden, dass wir die Verwarnungen nun auch in einer Datenbank speichern. Somit kann der Bot weiterhin funktionieren, auch wenn die entsprechende Rolle aus versehen auf dem Server gelöscht wurde.
Die Aufgaben ergänzen die Thematik mit dem Rollen-Limit pro Discord Server.
In Release 1.0 gibt es eine Aufgabe, die sich um diese Problematik kümmer.
Sofern der von Sahnee gehostete Bot verwendet wird, werden alle 24 Stunden nicht benötigte Verwarnungsrollen vom Discord Server gelöscht. Somit sind nur benötigte Rollen auf dem Discord Server aktiv. Gleichzeitig hat man damit auch wieder mehr überblick über alle Rollen.
4. Weitere Informationen
Wer schon ganz neugierig geworden ist, kann sich auf der Sahnee Website gerne die Dokumentation des Bots durchlesen und den Bot auch gerne auf seinen eigenen Discord Server einladen. Sahnee.dev
5. Zukunft
Der Bot wird stetig, aber in unregelmäßigen Abständen weiter Wachsen und verbessert werden. Einerseits wollen wir auf Feedback eingehen und andererseits eventuelle neue Features der Discord.NET API verwenden, sofern diese für den Bot sinn machen.