#!/bin/bash SERVER_DIR=/home/server/instance cd $SERVER_DIR # prepare performance opts for java JAVA_OPTS="" echo "eula=${EULA:-false}" > eula.txt if [[ -n $SERVER_MEMORY ]] then JAVA_OPTS="-Xms${SERVER_MEMORY} -Xmx${SERVER_MEMORY} $JAVA_OPTS" fi SERVER_PROPERTIES=$SERVER_DIR/server.properties SERVER_WHITELIST=$SERVER_DIR/white-list.txt SERVER_OPLIST=$SERVER_DIR/ops.txt WHITELIST_PREP=$SERVER_DIR/whitelist.prep OPLIST_PREP=$SERVER_DIR/op.prep if [ -f $SERVER_PROPERTIES ]; then mv $SERVER_PROPERTIES $SERVER_PROPERTIES.bkp rm $SERVER_PROPERTIES touch $SERVER_PROPERTIES fi if [ -f $WHITELIST_PREP ]; then echo -n "" > $SERVER_WHITELIST cat $WHITELIST_PREP | while read u do echo "Adding $u to whitelist" # get uuid of user uuid=$(curl -s https://api.mojang.com/users/profiles/minecraft/$u | jq -r '.id') uuid=$(echo "${uuid:0:8}-${uuid:8:4}-${uuid:12:4}-${uuid:16:4}-${uuid:20:12}") if [[ $uuid == "null" ]]; then echo "User $u not found. Skipping." continue fi # write to whitelist.json echo "$uuid" >> $SERVER_WHITELIST; done fi if [ -f $OPLIST_PREP ]; then echo -n "" > $SERVER_OPLIST cat $OPLIST_PREP | while read u do echo "Adding $u to whitelist" # get uuid of user uuid=$(curl -s https://api.mojang.com/users/profiles/minecraft/$u | jq -r '.id') uuid=$(echo "${uuid:0:8}-${uuid:8:4}-${uuid:12:4}-${uuid:16:4}-${uuid:20:12}") if [[ $uuid == "null" ]]; then echo "User $u not found. Skipping." continue fi # write to whitelist.json echo "$uuid" >> $SERVER_OPLIST; done fi if [[ -n $WHITELIST ]]; then echo "white-list=$WHITELIST" >> $SERVER_PROPERTIES fi if [[ -n $SEED ]]; then echo "seed=$SEED" >> $SERVER_PROPERTIES fi if [[ -n $MAX_PLAYERS ]]; then echo "max-players=$MAX_PLAYERS" >> $SERVER_PROPERTIES fi if [[ -n $DIFFICULTY ]]; then echo "difficulty=$DIFFICULTY" >> $SERVER_PROPERTIES fi if [[ -n $MOTD ]]; then echo "motd=$MOTD" >> $SERVER_PROPERTIES fi if [[ -n $WORLD_TYPE ]]; then echo "world-type=$WORLD_TYPE" >> $SERVER_PROPERTIES fi sleep 1 # Start server exec java $JAVA_OPTS -jar "server.jar" nogui