ebastler
Volt-Modder(in)
Hallo,
auf meinem Homeserver (Ubuntu Server, ohne GUI) möchte ich gerne für Minecraft einige Daten an die Serverkonsole senden, CPU-Temperatur usw., alle 30min.
Momentan mache ich das über /say, was auch funktioniert. Ich würde aber lieber /tellraw benutzen, da ich damit farbige Texte ohne "[SERVER]" als Autor an die Client-Chats senden kann.
Mein Minecraft-Befehl lautet also:
Damit sende ich an alle Clients am Server in goldener Schrift 'mein text hier'.
So weit so gut. Also habe ich mein Script hergenommen, das ich auch schon mit /say erfolgreich verwendet hab. Der relevante Befehl sieht so aus:
Ergebnis davon in der Screen Session:
Hier mein Code dazu:
Und das ist es, was im Screen als Fehlermeldung auftaucht:
Schicke ich nun aber etwas ohne Leerzeichen, zum Beispiel das hier:
Dann taucht das so in Screen auf:
Fazit: Stuff verschluckt mir irgendwie alle Anführungszeichen, und dann kommt in der Screen Session nur mehr Mist an.
Dann habe ich mal versucht, die Anführungszeichen zu escapen, also das hier:
Fehlermeldung, die im screen steht:
Auch diverse Versuche, ' statt " einzusetzen an manchen Stellen hat überhaupt nichts geholfen... Einen meiner hier geschilderten Fehler kriege ich immer.
Mein Wissen in Bash ist leider sehr beschränkt, und das hier geht bereits weit darüber hinaus.
Vielleicht kann mir hier ja jemand ein paar Tipps geben, was ich machen kann...
Das Problem ist ja auch nicht auf Minecraft beschränkt, es geht eher darum, wie ich eine beliebige Zeichenkette an einen screen gesendet kriege.
mfg,
ebastler
auf meinem Homeserver (Ubuntu Server, ohne GUI) möchte ich gerne für Minecraft einige Daten an die Serverkonsole senden, CPU-Temperatur usw., alle 30min.
Momentan mache ich das über /say, was auch funktioniert. Ich würde aber lieber /tellraw benutzen, da ich damit farbige Texte ohne "[SERVER]" als Autor an die Client-Chats senden kann.
Mein Minecraft-Befehl lautet also:
Code:
tellraw @a {"text":"mein text hier",color:gold}
So weit so gut. Also habe ich mein Script hergenommen, das ich auch schon mit /say erfolgreich verwendet hab. Der relevante Befehl sieht so aus:
Code:
screen -p 0 -S minecraft -X eval "stuff \"say mein text hier\"\015"
Zur Fehlerkorrektur schicke ich nun die Befehle statt an die minecraft-Screen-Session an eine Session, in der ich nano offen habe, da ich dort alles sehe, was an die Session geschickt wird.say mein text hier
Hier mein Code dazu:
Code:
screen -p 0 -S nanotest -X eval "stuff \"tellraw @a {"text":"mein Text hier",color:gold}\"\015"
-X: stuff: missing " quote
Schicke ich nun aber etwas ohne Leerzeichen, zum Beispiel das hier:
Code:
screen -p 0 -S nanotest -X eval "stuff \"tellraw @a {"text":"test",color:gold}\"\015"
tellraw @a {text:test,color:gold}
Fazit: Stuff verschluckt mir irgendwie alle Anführungszeichen, und dann kommt in der Screen Session nur mehr Mist an.
Dann habe ich mal versucht, die Anführungszeichen zu escapen, also das hier:
Code:
screen -p 0 -S nanotest -X eval "stuff \"tellraw @a {\"text\":\"mein text hier\",color:gold}\"\015"
(I have no idea what I am doing )-X: stuff: no, one, or two argument required
Auch diverse Versuche, ' statt " einzusetzen an manchen Stellen hat überhaupt nichts geholfen... Einen meiner hier geschilderten Fehler kriege ich immer.
Mein Wissen in Bash ist leider sehr beschränkt, und das hier geht bereits weit darüber hinaus.
Vielleicht kann mir hier ja jemand ein paar Tipps geben, was ich machen kann...
Das Problem ist ja auch nicht auf Minecraft beschränkt, es geht eher darum, wie ich eine beliebige Zeichenkette an einen screen gesendet kriege.
mfg,
ebastler