+function loop_worlds {
+ WORLDS=`ls worlds`
+ for WORLD in $WORLDS; do
+ $1 $WORLD
+ done
+}
+
+function run_one_or_all {
+ if [ -z $2 ]; then
+ loop_worlds $1
+ return 0
+ else
+ $1 $2
+ return 1
+ fi
+}
+
+function run_in_screen {
+ screen -dmS $1 bash -c "
+ touch $2
+ while [ -f $2; ] do
+ bash -c \"
+ echo \\$\\$ > $2
+ exec $3
+ \"
+ done
+ "
+}
+
+function start_multiserver {
+ echo -n "Starting Multiserver... "
+ if multiserver_running; then
+ echo -e "\e[31mMultiserver is already running\e[0m"
+ else
+ run_in_screen `multiserver_screenname` `multiserver_lock` "~/go/bin/multiserver"
+ echo -e "\e[32mDone\e[0m"
+ fi
+}
+
+function stop_multiserver {
+ echo -n "Stopping Multiserver... "
+ if multiserver_running; then
+ kill_multiserver
+ rm `multiserver_lock`
+
+ echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31mMultiserver is not running\e[0m"
+ fi
+}
+
+function restart_multiserver {
+ echo -n "Multiserver..."
+ if multiserver_running; then
+ kill_multiserver
+
+ echo -e "\e[32mDone\e[0m"
+ else
+ echo -e "\e[31mMultiserver is not running\e[0m"
+ fi
+}
+