Minecraft screen übertragung?

1 Antwort

Prinzipiell musst du das buffern.

Dazu musst du aber den output aus dem Screen in text Form auslesen. Allerdings wird ja alles vom Minecraft Server geloggt , in der latest.log datei.

Prinzipiell könntest du alle x Sekunden auf deiner Website mit JavaScript einen Ajax request an dein php senden , php musst du dann dazu bringen die latest.log datei zu lesen - und an den client zu senden. Jz macht das aber wenig Sinn immer die gesamte datei zu senden weil die je nachdem gerne mal hunderte Zeilen hat, also macht es am meisten Sinn nur die Veränderungen / neuen Zeilen zu übertragen und per JavaScript einfach an das bisherige dran zu hängen. Das meine ich mit "Buffering".

Viel schwieriger wird es aber Befehle zu senden... du kannst in einen gewissen screen befehle senden mit :

screen -S sessionName -p 0 -X stuff "ls^M"

Das ^M muss da sein weil du so das " ENTER" Zeichen sendest.

Ich würde dir aber generell nicht empfehlen php exec() zu nehmen es ist mega unsicher... viel besser du nutzt php nur als "zwisxheninstanz" um von php aus dann einen Python script zu callen der dir dann befehle sendet usw

---

Alternativ bietet Minecraft das RCON Protokoll damit kannst du befehle an deinen Server senden und empfangen, allerdings ist das ganze leider nicht sehr sicher. Es gibt aber entsprechende Librarys wie zB https://github.com/thedudeguy/PHP-Minecraft-Rcon

Woher ich das weiß:Studium / Ausbildung – Informatik Student
Nicky616 
Fragesteller
 14.01.2024, 19:09

Danke will ein webinterface coden. Ich teste rcon gleich mal aus. Dann kann ich den Server schon vieles steuern damit. Wie kann ich das sicherer machen? I think einfach starkes passwort oder? Und wie kann ich mit php eine start.sh datei starten? Weil er sagt mir immer das kein dateipfad existiert. Der Pfad wo sich die Datei befindet /root/netzwerk/lobby und dann start.sh

0
Nicky616 
Fragesteller
 14.01.2024, 19:13

Zu deiner Information ich will ein vollständiges webinterface coden. Hab auch bereits etwas. Wenn rcon geht kann ich schonmal restart coden und stop dann fehlt noch start. Und die Serverr Konsole. Accounts und login klappt reibungslos

0
BPPtheo  14.01.2024, 19:33
@Nicky616

Naja gut also ich war vor ungefähr 4 Jahren in der selben Situation wie du. Ich kenne deinen Wissensstand nicht aber anhand von dem was du so schreibst kann ich mir das ungefähr herleiten. Also RCON ist meines Wissens nach generell unsicher , weil es nicht verschlüsselt also selbst das sicherste Passwort hilft dir da nicht, es wird deswegen auch nicht mehr benutzt. Der einzige weg wie man es einigermaßen sicher bekommt ist es nach außen hin zu blocken so das jede Anfrage von deinem vServer verworfen wird außer sie kommt von der IP Adresse vom Webserver auf dem dein Webinterface läuft. Ich kann dir auch gar nicht sagen ob die neusten Minecraft Server Versionen es überhaupt noch unterstützen.

Nen Script direkt von php auszuführen ist halt kacke weil erstens unsicher -- zweitens der PHP script wird vom Webserver ausgeführt und dieser hat den Linux user WWW-DATA in den du dich aber nicht einloggen kannst , heißt du must alle verzeichnisse und unterordner von deinem Minecraft Server dem owner (chown) vom Webserver zuweisen heißt aber auch jede datei die du vltt so auf den Server Lädst und als root Benutzer erstellst musst du wieder überscheiben sonst berechtigungsfehler.

Wenn jetzt der script in /root liegt ist das natürlich doof. Ich weis nicht tendenziell könntest du aber halt

exec("./root/netzwerk/lobby/Start.sh"); machen aber es wird wahrscheinlich nicht gehen.

0
Nicky616 
Fragesteller
 14.01.2024, 19:35
@BPPtheo

Genau es geht nicht kann ich mit python versuchen den Server zu starten die datei

0
Nicky616 
Fragesteller
 14.01.2024, 19:45
@BPPtheo

Weil dann überbrücke ich es damit

0