# YoshiBot #

Ein in Java geschriebener Discordbot, der lustige Sachen kann.

Das Git-Projekt befindet sich unter http://yannicpunktdee.de:3000/yannic/YoshiBot.git.

## Einrichtung ##

Der Bot ist hauptsächlich in Java geschrieben mit Gradle als Build-Tool.
Zusätzlich wird Python3 mit dem Paket gTTS verwendet für alles was mit Text-To-Speech zu tun hat.
Für die Annotationen wie ```@Getter``` oder ```@SneakyThrows``` wird das Lombok-Plugin für Intellij benötigt.
Mit Gradle sind die Bibliotheken JDA für die Discord-Schnittstelle (https://github.com/DV8FromTheWorld/JDA) und 
LavaPlayer (https://github.com/sedmelluq/lavaplayer) für Audioangelegenheiten einzubinden. Dies ist aber bereits im
Gradle build script (```app/build.gradle```) enthalten.

Als Entwicklungsumgebung eignet sich z.B. IntelliJ IDEA.

Zum Einrichten einfach das Projekt mit Git clonen und in Intellij öffnen.

Damit sich der Bot online schalten kann wird noch die Datei ```rsc/PrivateJdaBuilderString.txt``` benötigt, die den 
Geheimschlüssel der Discord-Anwendung enthält. Diesen bekommt man mitgeteilt, sobald man eine Discord-Anwendung erstellt
über https://discord.com/developers/applications und der Bot auf den Server eingeladen wurde.

Weiterhin muss die Guild-ID der Server-Guild in der ```Config.properties``` angepasst werden.

Für Pfadangaben in der ```Config.properties``` achte darauf, dass diese Ordner auch existieren und dass Verzeichnisse auch unter
Windows mit ```/``` und nicht mit ```\ ``` geschrieben werden und darauf enden.

Nun nur noch die Main-Methode starten oder wie folgt builden und ausführen und der Bot läuft.

**Warnung** Der Bot benutzt das temp-Verzeichnis (Ordner ```yoshibot```) des Rechners, auf dem er ausgeführt wird und legt dort evtl viele Dateien
ab, die er selbst nicht löscht. Also entweder muss das Verzeichnis von Zeit zu Zeit geleert oder der Rechner neu gestartet werden.

## Build ##

Zum Exportieren der Applikation führe den Befehl ```gradlew clean build``` auf Windows oder für Linux ```gradle clean build``` 
im Root Verzeichnis aus. Die fertige Jar liegt dann in ```app/build/libs```. Füge dieser noch im selben Verzeichnis den 
rsc-Ordner mitsamt Inhalt hinzu. Starte die Applikation mit ```java-jar app.jar``` am besten im Hintergrund oder per ```screen```
unter Linux, damit der Bot permanent läuft.
