Minecraft Server Manager

  • Nun funktioniert der Script.

    Jedoch wird mir in $OVERVIEW nichts angezeigt.

    ~EDIT~
    Beim ersten Start wurde nichts angezeigt, jetzt wird der Inhalt aber wiedergegeben.

    Die Befehle funktionieren weiterhin nicht, leider wird der Overview nicht automatisch aktualisiert.

    Einmal editiert, zuletzt von Kazuto (11. März 2011 um 08:16)

  • Ich bin grade auf der Arbeit, desshalb kann ichs nicht testen, aber probiers mal hiermit,
    ich denke durch Adlibregister kommst du nicht mehr ins GUI

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon

    [/autoit] [autoit][/autoit] [autoit]

    ; ================================;
    ; Bukkit Server Manager
    ; Made by Kazu
    ; © 2011 Kazu Mikura
    ; ================================;

    [/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    Global $cnt2 = 0
    #Region ### START Koda GUI section ### Form=d:\autoit\bukkit server manager\gui.kxf
    $GUI = GUICreate("Bukkit Server Manager", 684, 405, 192, 124)
    $OVERVIEW= GUICtrlCreateEdit("", 8, 48, 665, 305)
    $START = GUICtrlCreateButton("Start", 8, 8, 81, 25, $WS_GROUP)
    $STOP = GUICtrlCreateButton("Stop", 104, 8, 81, 25, $WS_GROUP)
    $RESTART = GUICtrlCreateButton("Restart", 200, 8, 81, 25, $WS_GROUP)
    $SAVEALL = GUICtrlCreateButton("Save-All", 296, 8, 81, 25, $WS_GROUP)
    $RELOAD = GUICtrlCreateButton("Reload", 392, 8, 81, 25, $WS_GROUP)
    $INPUT = GUICtrlCreateInput("", 8, 368, 665, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $START
    ;~ $Process = Run("craftbukkit-0.0.1-SNAPSHOT.jar", "", default,0x3 )
    $Process = Run(@ProgramFilesDir&'\Java\jre6\bin\java.exe -Xms1024M -Xmx1024M -jar craftbukkit-0.0.1-SNAPSHOT.jar ', '', '', 0x9)
    AdlibRegister(Getdata(), 2000)
    Case $STOP
    StdinWrite ( $Process, "stop" )
    Case $RESTART

    [/autoit] [autoit][/autoit] [autoit]

    Case $SAVEALL
    StdinWrite ( $Process, "save-all" )
    Case $RELOAD
    StdinWrite ( $Process, "reload" )
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    ;~ If ProcessExists( $Process) Then
    ;~ Do
    ;~ $data = StdoutRead($Process)
    ;~ If $data <> "" Then
    ;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $data = ' & $data & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ;~ FileWrite($hFile, $data&@CRLF)
    ;~ EndIf
    ;~ Until @error <> 0
    ;~ EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Getdata()
    Local $avArray
    $cnt = _FileCountLines("server.log")
    If $cnt <> $cnt2 Then
    _FileReadToArray("server.log", $avArray)
    If IsArray( $avArray) Then
    $data = GUIctrlRead($Overview)
    For $i = $cnt2 To $avArray[0]
    GUICtrlSetData($OVERVIEW, $data&@CRLF&$avArray[$i]&@CRLF )
    $data = GUIctrlRead($Overview)
    Next
    $cnt2 = $cnt
    EndIf
    EndIf
    EndFunc

    [/autoit]
  • Hier mal mein Anfang, bitte ändern den Pfad bei _Start() !

    Probleme:
    Es wird nix in die $OVERVIEW geschrieben.
    cmd.exe wird nicht beendet wenn Programm beendet wird.

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #region ### START Koda GUI section ### Form=d:\autoit\bukkit server manager\gui.kxf
    $GUI = GUICreate("Bukkit Server Manager", 684, 405, 192, 124)
    $OVERVIEW = GUICtrlCreateEdit("", 8, 48, 665, 305)
    $START = GUICtrlCreateButton("Start", 8, 8, 81, 25, $WS_GROUP)
    $STOP = GUICtrlCreateButton("Stop", 104, 8, 81, 25, $WS_GROUP)
    $RESTART = GUICtrlCreateButton("Restart", 200, 8, 81, 25, $WS_GROUP)
    $SAVEALL = GUICtrlCreateButton("Save-All", 296, 8, 81, 25, $WS_GROUP)
    $RELOAD = GUICtrlCreateButton("Reload", 392, 8, 81, 25, $WS_GROUP)
    $INPUT = GUICtrlCreateInput("", 8, 368, 665, 21)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    AdlibRegister("_Lesen", 1000)
    $foo = False
    Func _Lesen()
    If $foo = True Then
    ;~ $line = StdoutRead($foo)
    ;~ StderrRead / StdoutRead
    ;~ GUICtrlSetData($OVERVIEW, StderrRead($foo))
    ;~ GUICtrlSetData($OVERVIEW, StdoutRead($foo))
    Else
    ; Nix
    EndIf
    EndFunc ;==>_Lesen

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $STOP
    _Stop()
    Case $SAVEALL
    _SaveAll()
    Case $RESTART
    _Restart()
    Case $START
    _Start()
    Case $RELOAD
    _Reload()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Stop()
    StdinWrite($foo, "stop" & @CRLF)
    EndFunc ;==>_Stop

    [/autoit] [autoit][/autoit] [autoit]

    Func _SaveAll()
    StdinWrite($foo, "save-all" & @CRLF)
    EndFunc ;==>_SaveAll

    [/autoit] [autoit][/autoit] [autoit]

    Func _Restart()
    StdinWrite($foo, "restart" & @CRLF)
    EndFunc ;==>_Restart

    [/autoit] [autoit][/autoit] [autoit]

    Func _Reload()
    StdinWrite($foo, "relaod" & @CRLF)
    EndFunc ;==>_Reload
    Func _Start()
    $foo = True
    $dir = "C:\Dokumente und Einstellungen\USERNAME\Eigene Dateien\Downloads\minecraft-server\"
    $cmd = "java -Xms512M -Xmx512M -cp minecraft-server.jar com.mojang.minecraft.server.MinecraftServer"
    FileChangeDir($dir)
    $foo = Run(@ComSpec & " /c " & $cmd, $dir, 1, $STDIN_CHILD + $STDOUT_CHILD)
    EndFunc ;==>_Start

    [/autoit]
  • Ich habe bei $dir einfach

    [autoit]

    $dir = @Scriptdir

    [/autoit]

    gemacht und aus
    $cmd habe ich

    [autoit]

    $cmd = "java -Xms512M -Xmx512M -cp craftbukkit-0.0.1-SNAPSHOT.jar com.mojang.minecraft.server.MinecraftServer"

    [/autoit]

    gemacht.

    Jedoch startet der Server nicht, es wird auch keine Java.exe gestartet.

  • Du benutzt auch die alte minecraft version.
    Ich downloade mir mal craftbukkit und werde es dann mal probieren.

    Update: 15:25
    Du benutzt auch nicht die neuste Server Version.
    Hier mal für craftbukkit

    [autoit]

    Func _Start()
    $foo = True
    $dir = @ScriptDir
    $cmd = "java -Xms512M -Xmx512M -jar craftbukkit-0.0.1-SNAPSHOT.jar"
    FileChangeDir($dir)
    $foo = Run(@ComSpec & " /c " & $cmd, $dir, 1, $STDIN_CHILD + $STDOUT_CHILD)
    EndFunc ;==>_Start

    [/autoit]