Skip to content

Instantly share code, notes, and snippets.

@evoL
Created January 13, 2013 20:16
Show Gist options
  • Save evoL/4525968 to your computer and use it in GitHub Desktop.
Save evoL/4525968 to your computer and use it in GitHub Desktop.
#!/bin/bash
#### CONFIG
MC_PATH=/home/minecraft
SCREEN_NAME="minecraft"
USERNAME="minecraft"
MEMALLOC=512
JAR_NAME="craftbukkit.jar"
WORLD_NAME="world"
#### END OF CONFIG
if [ -e $MC_PATH/server.log.lck ]
then
ONLINE=1
else
ONLINE=0
fi
display() {
# screen -R $SCREEN_NAME
sudo -u $USERNAME tmux attach -t $SCREEN_NAME
}
server_start() {
echo "Starting Minecraft..."
cd $MC_PATH
# screen -m -d -S $SCREEN_NAME java -Xmx${MEMALLOC}M -Xms${MEMALLOC}M -jar craftbukkit-1.1-R3.jar nogui
sudo -u $USERNAME tmux new-session -d -n $SCREEN_NAME -s $SCREEN_NAME "java -Xmx${MEMALLOC}M -Xms${MEMALLOC}M -jar ${JAR_NAME} nogui"
sleep 1
}
server_stop() {
echo "Stopping Minecraft..."
# screen -S $SCREEN_NAME -p 0 -X stuff "`printf "stop.\r"`"
sudo -u $USERNAME tmux send -t $SCREEN_NAME stop ENTER
sleep 5
}
if [ $# -gt 0 ]
then
case $1 in
"status")
if [ $ONLINE -eq 1 ]
then
echo "Minecraft seems to be ONLINE."
else
echo "Minecraft seems to be OFFLINE."
fi;;
"start")
if [ $ONLINE -eq 1 ]
then
echo "Minecraft is already running."
case $2 in
"-f")
sudo -u $USERNAME kill `ps -e | grep java | cut -d " " -f 1`
sudo -u $USERNAME rm -rf $MC_PATH/*.log.lck 2> /dev/null;;
esac
else
server_start
fi;;
"stop")
if [ $ONLINE -eq 1 ]
then
server_stop
else
case $2 in
"-f")
sudo -u $USERNAME kill `ps -e | grep java | cut -d " " -f 1`
sudo -u $USERNAME rm -rf $MC_PATH/*.log.lck 2> /dev/null;;
*)
echo "Minecraft is already offline."
esac
fi;;
"restart")
if [ $ONLINE -eq 1 ]
then
server_stop
fi
server_start;;
"display")
display;;
*)
echo "Usage: minecraft [<status | start [-f] | stop [-f] | restart | display>]";
esac
else
echo "Usage: minecraft [<status | start [-f] | stop [-f] | restart | display>]"
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment