Eine Einführung in das Projekt kann hier gefunden werden.
- Java 8+
- Maven
- Minecraft 1.13.1
- Spigot Minecraft Server
1.13.1-R0.1-SNAPSHOT-b1893
- Arduino angeschlossen und konfiguriert
Damit das Projekt gestartet werden kann muss folgendes getan werden:
- Projekt bauen.
cd Projekt mvn package
- Danach die JAR Datei
*-jar-with-dependencies
(im Ordnertarget
) in den Plugins Ordner vom Spigot Server verschieben. - Den Code von
Arduino/code.ino
auf den Arduino kopieren (via Arduino IDE) - wenn noch nicht getan. - Den Spigot Server starten
cd MC_SERVER_DIR java -jar spigot-1.13.1-R0.1-SNAPSHOT-b1893.jar
Damit die Anwendung vernünftig unter Linux läuft und die USB Schnittstellen erkennen kann ist es notwendig folgende Parameter beim Start des Servers mitzugeben:
-Dgnu.io.rxtx.SerialPorts=/dev/ttyACM1
Hier gilt es /dev/ttyACM1
mit dem jeweils richtigen Port zu ersetzten. Diesen kann man beispielsweise in der Arduino IDE auslesen.
Eine kompletter Befehl um den Server dann zu starten sieht wie folgt aus:
java -Dgnu.io.rxtx.SerialPorts=/dev/ttyACM1 -jar spigot-1.13.1-R0.1-SNAPSHOT-b1893.jar
Aus Sicherheitsgründen ist es unter Fedora nicht möglich den Server ohne Adminberichtigung zu starten. Grund dafür ist die RXTX Bibliothek welche versucht eine Lock-Datei im "alten" Stil zu erzeugen was nicht mehr funktioniert (siehe Issue).
Folgende Möglichkeiten ergeben sich jetzt:
-
Server als Admin starten (via
sudo
) -
Das Verzeichnis
/var/lock
manipulierensudo chown root:lock /var/lock sudo chmod g+w /var/lock
Der Arduino sendet einen Befehl mit einem Linebreak, z. B. könnte der Arduino den Wert knopf1\n senden.
In der Konfigurationsdatei muss am Ende die Zeile arduino_[arduino_wert]: [mein_befehl] eingefügt werden. Wenn der Spieler Player1 gekickt werden soll, sobald der Arduino den Wert knopf1\n sendet, muss Folgendes eingefügt werden:
arduino_knopf1: kick Player1
Die Beispieldateien findest Du im Ordner /beispiel_knopf1