#!/bin/bash
source $HOME/.gamerc

if [[ $# -lt 2 ]]; then
    echo "Usage: $0 <WorldServer Old ID> <WorldServer New ID>" >&2
    exit 1
fi

# Preparation
WID_OLD="$1"
WID_NEW="$2"

WHP_OLD=$(awk -F'=' '/WorldHttpServerPort=/ {print $2}' WorldServer${WID_OLD}/setup.ini)
WHP_NEW=$((WHP_OLD + 1))

WSP_OLD=$(awk -F':' '/WebSocketProxyServer=/ {print $2}' WWebSocketProxyServer${WID_OLD}1/setup.ini)
WSP_NEW=$((WSP_OLD + 1))

W_SET=$((WID_OLD / 100))

# World
cd $HOME/servers${W_SET}/;
[ ! -d "WorldServer${WID_OLD}" ] && exec echo "WorldServer${WID_OLD} Not Exist!"
cp -arf WorldServer${WID_OLD} WorldServer${WID_NEW}
cd WorldServer${WID_NEW}
mv WorldServer${WID_OLD} WorldServer${WID_NEW}
sed -i "s/WorldServer${WID_OLD}/WorldServer${WID_NEW}/g" auto_start
sed -i "s/${WID_OLD}/${WID_NEW}/g;s/WorldHttpServerPort=${WHP_OLD}/WorldHttpServerPort=${WHP_NEW}/g" setup.ini
echo "WorldServer${WID_NEW} Built!" | colorize green black

# World HTTPAgent
cd $HOME/servers${W_SET}/;
[ ! -d "WHTTPAServer${WID_OLD}1" ] && exec echo "WHTTPAServer${WID_OLD}1 Not Exist!"
cp -arf WHTTPAServer${WID_OLD}1 WHTTPAServer${WID_NEW}1
cd WHTTPAServer${WID_NEW}1
mv WHTTPAServer${WID_OLD}1 WHTTPAServer${WID_NEW}1
sed -i "s/WHTTPAServer${WID_OLD}1/WHTTPAServer${WID_NEW}1/g" auto_start
sed -i "s/BillingGatewayPort=${WHP_OLD}/BillingGatewayPort=${WHP_NEW}/g" setup.ini
echo "WHTTPAServer${WID_NEW}1 Built!" | colorize green black

# World Web Socket Proxy
cd $HOME/servers${W_SET}/;
[ ! -d "WWebSocketProxyServer${WID_OLD}1" ] && exec echo "WWebSocketProxyServer${WID_OLD}1 Not Exist!"
cp -arf WWebSocketProxyServer${WID_OLD}1 WWebSocketProxyServer${WID_NEW}1
cd WWebSocketProxyServer${WID_NEW}1
mv WWebSocketProxyServer${WID_OLD}1 WWebSocketProxyServer${WID_NEW}1
sed -i "s/WWebSocketProxyServer${WID_OLD}1/WWebSocketProxyServer${WID_NEW}1/g" auto_start
sed -i "s/WebSocketProxyServer=0.0.0.0:${WSP_OLD}/WebSocketProxyServer=0.0.0.0:${WSP_NEW}/g" setup.ini
echo "WWebSocketProxyServer${WID_NEW}1 Built!" | colorize green black
