TerminalAPI - Server aus dem Chat steuern

Hier könnt ihr eure selbstgeschriebenen Plugins veröffentlichen.

TerminalAPI - Server aus dem Chat steuern

Beitragvon niltrus » Di 24. Jun 2014, 14:58

TerminalAPI – was ist das?

Hi, heute möchte ich euch ein kleines aber sehr hilfreiches plugin vorstellen. Es kann auch in projekte anderer entwickler eingebunden werden. Was es macht ist eigentlich ganz einfach. Vergesst SSH oder VNC auf eurem minecraft server (root/vserver). Das plugin kann euren ganzen server vom minecraft chat steuern! Wie funktioniert es? ganz einfach: Man kann commands über den chat zum server senden der diese dann ausführt. Das funktioniert auf linux sowie Windows. Man kann sich z.b. einen ftp server auf linux ganz einfach vom minecraft chat installieren (/terminal -command sudo apt-get install vsftpd) man bekommt die ganze console des servers in den minecraft chat.

Was kann ich damit anfangen?

Es ist im ersten falle nur als erleichterung für serverbesitzer gedacht. Man muss nur das plugin in den plugins ordner tun – reloaden und man kann den server ganz bequem vom chat aus steuern. Das ist z.b. eine erleichterung um externe bungeecord server schnell und einfach aus dem chat zu starten. Das nimmt aber die arbeit nur zu einem gewissen teil ab. live editing wie in ssh ist nicht möglich. Heist keine configs bearbeiten oder textdateien umschreiben. Das kann man aber noch mit der API implementieren.

Scripte ausführen

Mit dem plugin kann man ebenfalls .sh oder .bat (abhängig von win oder linux) einfach starten. Die scripte können im ordner “plugins/TerminalAPI/scripts” abgelegt werden. mit dem command “/terminal -run <script name>” kann es dann gestartet werden WICHTIG! Die endung (.bat|.sh) wird vom Plugin selber angefügt!

Plugins Installieren

Mit dem command "/termianl -installplugin <link der auf .jar endet>" kann man plugins von einem webserer downloaden. Das Plugin wird automatisch in den plugins ordner eingefügt. alles was noch getan werden muss ist ein reload um es zu aktivieren.


Permissions/Sicherheit

Das Plugin ist so gestaltet, das normale OPs nicht gleich auf das Plugin zugreifen können. Man benötigt zum einen die permission "terminalapi.use" und man muss seinen namen in die Config eintragen. Das hat den grund das nicht gleich jeder OP vollen zugriff auf euer server system hat.

Commands

Hier einfach mal ne liste von allen möglichen kommandos:
/terminal -help – zeigt help seite
/terminal -run <script> – startet script (bat/sh)
/terminal -setsystem <Windows/Linux> – auf das jeweilige system anpassen (Standartmäßig Linux)
/terminal -command <command> – startet command
/termianl -installplugin <link der auf .jar endet>

Die API

Ist zwar auf englisch, aber ich denke das es trotzdem verständlich ist :)
http://dev.bukkit.org/bukkit-plugins/te ... s/the-api/

dev.bukkit.org Setite

http://dev.bukkit.org/bukkit-plugins/terminalapi/
Bild
Benutzeravatar
niltrus
 
Beiträge: 141
Registriert: So 16. Jun 2013, 08:33

Re: TerminalAPI - Server aus dem Chat steuern

Beitragvon PostCrafter » Di 24. Jun 2014, 16:58

Klasse Idee mit dem Plugin, ich hatte das in einem meiner Plugins nur in sehr geringem Umfang eingebaut gehabt und mich nie weiter mit dem Thema beschäftigt, ich werde mir das Plugin bei Gelegenheit auf jeden Fall mal näher ansehen.

Welchen Grund hat es, dass die Endung des auszuführenden Skriptes vom Plugin hinzugefügt wird? (Insbesondere interessant, da Endungen unter Linux keinerlei Bedeutung haben)
Wird das Plugin, beim installplugin-Befehl, mithilfe von Java oder durch einen Befehl heruntergeladen?

Außerdem ist es fraglich, ob es nötig ist zusätzlich zum eingetragenen Namen in der Config auch eine Permission zu überprüfen. (Zumal du hier möglichst bald auf die UUIDs umsteigen solltest)
TeamSpeak-Server zur freien Nutzung: postcrafter.de
Benutzeravatar
PostCrafter
Administrator
 
Beiträge: 1443
Registriert: Do 6. Jun 2013, 19:16
Wohnort: Ebersberg

Re: TerminalAPI - Server aus dem Chat steuern

Beitragvon niltrus » Di 24. Jun 2014, 17:13

Das mit der endung hat eigentlich kein tieferen sinn. Ich wollte es eigentlich nur auf .bat und .sh begrenzen das nicht jede beliebige dateiart ausgeführt werden kann.
Das programm downloaded die Plugins über java code. Das hat den grund das es auf windows und linux mit dem gleichen code läuft. Bei Linux hätte ich sonst wget einsetzen müssen und bei Windows wieder was anderes.
Im nächsten Update kann ich ja UUIDs einbauen. Die permission wird ja trotzdem gepüft auch wenn der name in der config steht.
Bild
Benutzeravatar
niltrus
 
Beiträge: 141
Registriert: So 16. Jun 2013, 08:33

Re: TerminalAPI - Server aus dem Chat steuern

Beitragvon Jofkos » Di 24. Jun 2014, 17:32

Ich habe mir mal erlaubt dein Plugin zu decompilieren, und habe bemerkt, dass du für jede anzahl an Argumenten diese einzeln zusammenfügst. Das ist nicht flexibel und auch nicht sehr "schön". Du könntest das ganze entweder mit einer for-schleife lösen, oder die argumente mit StringUtils.join(String[], " ") zusammen fügen. (du müsstest dann dein Array noch "zuschneiden", da es vom ersten arg an startet, und nicht vom nullten).
Es ist nur ein Vorschlag, ansonsten finde ich die Idee des Plugins sehr innovativ. Vielleicht finden das manche Server-Anbieter aber nicht, wenn man einfach Sachen auf einem Game-Server ausführen kann, die man eigentlich nicht ausführen können sollte. (man könnte Beispielsweise einen einzelnen Server mieten, und von diesem aus per Unix Befehlen noch andere starten ;))
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: TerminalAPI - Server aus dem Chat steuern

Beitragvon niltrus » Di 24. Jun 2014, 17:35

Ja das mit den arumenten ist nicht sehr gut gelöst :) Bin etwas eingerostet in Java. Das ist mein erstes JavaPlugin seit nem Halben Jahr ca.
Bild
Benutzeravatar
niltrus
 
Beiträge: 141
Registriert: So 16. Jun 2013, 08:33


Zurück zu Veröffentlichungen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron