hMod Minecraft-Server via php steuern

03/21/2011 10:06 Anti_Gamer#1
Hallo Leute! sry ich bin neu hier und ich hoffe ich bin im richtigen unterforum! :) fals nich kann das bitte verschoben werden! danke

okay back to topic:

ich habe einen Minecraft-Server mit dem hMod zu laufen funktioniert auch alles top nur würde ich gerne den server über eine internetseite (apache) die auf dem server ist "vernsteuern".
sprich durch ein login script einloggen und dann den server "starten" können "stoppen", "restarten" und vielleicht befehle eingeben können.
ich habe auch schon ein script:
PHP Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Minecraft-Server_Admin</title>
</head>

<body>
<?php
$passwort 
$_GET["pass"];
$server $_GET["server"];


if(
$passwort == "passwort")
    {
    
// starten
    
echo "    <form action=\"index.php\" method=\"get\"> ";
    echo 
"  <input type=\"hidden\" name=\"pass\" value=\"demmin\" /> ";
    echo 
"    <select name=\"server\" size=\"4\" ";
    echo 
"    <option value=\"start\">starten</option> ";
    echo 
"    <option value=\"restart\">restarten</option> ";
    echo 
"    <option value=\"stop\">stoppen</option> ";
    echo 
"    </select> <br> ";
    echo 
"    <input type=\"submit\" value=\"auswaehlen\">";
    echo 
"    </form>";

    
    
if(
$server == "start")
    {
        echo 
"<br><br>";
        
system("cd /home/hMod  &&  nohup java -Xms1024M -Xmx1024M -jar Minecraft_Mod.jar nogui ");
        echo 
"----------------------------------------<br>";
        echo 
"Minecraft-Server startet!!";
    }


    
    
    
       }
else
      {
       echo 
"    <form action=\"index.php\" method=\"get\"> ";
    echo 
"    Passwort:<br>";
    echo 
"    <input type=\"password\" size=\"24\" maxlength=\"50\"";
    echo 
"    name=\"pass\"><br>";
    echo 
"    <input type=\"submit\" value=\"login\">";
    echo 
"    </form>";
       }
?>


</body>
</html>
kann man auch anstatt "nohup" "screen -S minecraft" irgendwie benutzen?!

ich glaube das problem ist nur das ich screen brauche oder?!
könnt ihr mir helfen!? habt ihr eine idee? danke schon mal im vorraus! :)
03/21/2011 12:55 yannickminecraft#2
Was soll den "screen -S minecraft" sein?

Aber um Minecraft zu beenden / restarten würde ich "tlist" verwenden den Output dann filtern um an die PID zu kommen und dann ihn dann so wegzuhauen und falls ein restart getätigt wird ihn wieder zu starten.

//Achja hier nachzufragen bringt dir eher weniger. Die kids hier wissen gerade mal wie man einen Server über Nitrado und co. anmacht.
03/21/2011 14:51 NoObKiLLyOu#3
Quote:
Originally Posted by yannickminecraft View Post
Was soll den "screen -S minecraft" sein?

Aber um Minecraft zu beenden / restarten würde ich "tlist" verwenden den Output dann filtern um an die PID zu kommen und dann ihn dann so wegzuhauen und falls ein restart getätigt wird ihn wieder zu starten.

//Achja hier nachzufragen bringt dir eher weniger. Die kids hier wissen gerade mal wie man einen Server über Nitrado und co. anmacht.
xD ja das stimmt, du könntest dich auch an die Ciodersection richten, da können dir bestimmt noch andere helfen.

Hier wirst du eher weniger Hilfe bekommen, da wie schon von Yannick erwähnt nur Kids in dieser Section sind.

Ich kann dir leider auch nicht helfen, da Ich leider kein PHP kann.

€: Der Befehl Screen kenn Ich eigentlich nur von Linux um eine Datei zu starten. Vielleicht hat Er ja seinen Server auf einem Linuxserver, da braucht Er schon Screen!
03/21/2011 17:17 yannickminecraft#4
Quote:
Originally Posted by NoObKiLLyOu View Post
€: Der Befehl Screen kenn Ich eigentlich nur von Linux um eine Datei zu starten. Vielleicht hat Er ja seinen Server auf einem Linuxserver, da braucht Er schon Screen!
Ich kenne leider nur einige Grundbefehle von Linux systemen. Aber wie man sieht führt er ja "cd /home/minecraft" im PHP-Script aus. Dies sagt ja schonmal aus das es ein Linux system ist :P.

Was man auch machen könnte wäre über eine endlos While-schleife den Prozess laufen zu lassen und über eine Schnittstelle z.b mit MySQL / externes Programm dann mit dem laufenden Script zu kommunizieren.

Damit könnte man eine API für den Server machen die sich in einen OP Account einloggt und dann via Datenpackete (zb Chat Packete) mit dem Server zu kommunizieren. Um bestimmte Befehle auszuführen oder sonstwas.

Server wie Nitrado etc haben wahrscheinlich eine Schnittstelle im Server selbst worüber sie dann mit dem Server kommunizieren können über ein PHP-Script ohne einen authentifizierten login.
03/23/2011 19:18 Anti_Gamer#5
mhh... okay ^^ also noch mal was meint ihr wo sollte ich mich lieber melden?!
ach und ja ich hab ein linux server zu stehn der rund um die uhr an ist und da hab ich ein minecraft server drauf laufen und dieses php script möchte ich haben da ich nur mit 5-7 freunden auf dem server zock und ich würde es begrüßen wenn die leute den starten könnten und auch runterfahren könnten wenn der erste/letzte spieler sind! damit der server nich so super viel strom dauernd frist^^ da minecraft ja nich grade so ein perfekt gescriptetes spiel ist !!JAVA!! tsss... :D