diff --git a/mcserver b/mcserver index 0bb91fa..ebed416 100755 --- a/mcserver +++ b/mcserver @@ -16,6 +16,15 @@ _stop_and_wait () { done } +_start () { + ! tmux $TMUX_OPTS has-session > /dev/null 2>&1 && \ + tmux $TMUX_OPTS new-session -d -s $TMUX_SESSION "./start.sh" || \ + die "Instance $instance is already running." +} + +_send_command() { + tmux $TMUX_OPTS send-keys -t "$TMUX_SESSION" -l "$code_clear" "$*" "$code_send" +} # directories mcserver_root="${XDG_DATA_HOME:-${HOME}/.local/share}/mcserver" @@ -59,6 +68,6 @@ TMUX_OPTS="-L mcserver" case "$cmd" in stop) _stop_and_wait ;; - command) tmux $TMUX_OPTS send-keys -t "$TMUX_SESSION" -l "$code_clear" "$*" "$code_send" ;; - start|*) tmux $TMUX_OPTS new-window -t $TMUX_SESSION: "./start.sh" || tmux new-session -d -s $TMUX_SESSION "./start.sh";; + command) _send_command ;; + start|*) _start ;; esac