#!/bin/bash

SCRNAME=`basename $(pwd)`
MINMEMORY="512M"
MAXMEMORY="3G"
JAR_FILE="core-1.12.2.jar"
JMX_PORT="20911"

if test -f "start.sh.local"; then
    echo "Найден файл start.sh.local, выполняем его...";
    source start.sh.local;
fi

screen -wipe $SCRNAME > /dev/null 2>&1

echo "Запускаем сервер $SCRNAME";

SCR=`ps -u $USER -o command | grep "\-Dserver=$SCRNAME\s"`;

if [ "$SCR" != "" ];
then
  echo "Уже существует процесс сервера:";
  echo $SCR;
  echo "";
  exit 0;
fi

ulimit -c unlimited
screen -dmS $SCRNAME bash -c "ulimit -c unlimited; \
    java17 \
    -Dserver=$SCRNAME \
    -DIReallyKnowWhatIAmDoingISwear \
    -server \
    -Xms$MINMEMORY \
    -Xmx$MAXMEMORY \
    -XX:+UseZGC \
    --add-opens java.base/java.lang=ALL-UNNAMED \
    --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
    --add-opens java.base/java.lang.invoke=ALL-UNNAMED \
    --add-opens java.base/java.time=ALL-UNNAMED \
    --add-opens java.base/java.util=ALL-UNNAMED \
    --add-opens java.base/java.util.concurrent=ALL-UNNAMED \
    --add-opens java.base/java.util.regex=ALL-UNNAMED \
    --add-opens java.base/java.io=ALL-UNNAMED \
    --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED \
    -Dfile.encoding=UTF-8 \
    -Djava.rmi.server.hostname=`hostname -f` \
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/$USER \
    -Djava.net.preferIPv6Addresses=true \
    -Dlog4j2.formatMsgNoLookups=true \
    -jar $JAR_FILE;"
