summarylogtreecommitdiffstats
path: root/ClassiCubeLauncher
blob: 30181fa3f02d020bcadfe0f2ae071ca977b2b156 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

set -eu

[ -z "${XDG_DATA_HOME}" ] && _xdg_data="${HOME}/.local/share" || _xdg_data="${XDG_DATA_HOME}"
mkdir -p "${_xdg_data}/ClassiCube"
cd "${_xdg_data}/ClassiCube"

# TODO: Remove this once mc:// parsing gets added in the client
if [ "$#" -eq 1 ]; then
  case "$1" in
    'mc://'*)
      IFS='/' read -ra _args <<< "$1"

      if [ "${#_args[@]}" -eq 5 ]; then
        for i in {2..4}; do [ -z "${_args[$i]}" ] && exit 1; done

        IFS=':' read -ra _args2 <<< "${_args[2]}"
        echo "Username: ${_args[3]}, password: ${_args[4]}, address: ${_args2[0]}, port: ${_args2[1]}"
        exec ClassiCube "${_args[3]}" "${_args[4]}" "${_args2[0]}" "${_args2[1]}"
      fi
      ;;
    *)
      exec ClassiCube "$@"
      ;;
  esac 
else
  exec ClassiCube "$@"
fi