resolved path issues and added op file generation
This commit is contained in:
parent
2dc0974957
commit
f51c269431
@ -6,7 +6,7 @@ services:
|
||||
container_name: YOUR_CONTAINER_NAME
|
||||
restart: always
|
||||
volumes:
|
||||
- "YOUR_SERVER_LOCATION":/server:z
|
||||
- "YOUR_SERVER_LOCATION":/home/server/instance:z
|
||||
ports:
|
||||
- "YOUR_PORT:25565"
|
||||
environment:
|
||||
|
61
setup.sh
61
setup.sh
@ -1,12 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Enter server directory
|
||||
cd /home/server/instance
|
||||
SERVER_DIR=/home/server/instance
|
||||
cd $SERVER_DIR
|
||||
|
||||
# Set nullstrings back to 'latest'
|
||||
: ${MINECRAFT_VERSION:='latest'}
|
||||
|
||||
# Lowercase these to avoid 404 errors on wget
|
||||
MINECRAFT_VERSION="${MINECRAFT_VERSION,,}"
|
||||
PROJECT="paper"
|
||||
|
||||
@ -32,11 +30,9 @@ JAVA_OPTS=" -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
|
||||
-Daikars.new.flags=true \
|
||||
-Dusing.aikars.flags=https://mcflags.emc.gs"
|
||||
|
||||
# Get version information and build download URL and jar name
|
||||
URL='https://papermc.io/api/v2/projects/paper'
|
||||
if [[ $MINECRAFT_VERSION == latest ]]
|
||||
then
|
||||
# Get the latest MC version
|
||||
MINECRAFT_VERSION=$(curl -s https://api.papermc.io/v2/projects/${PROJECT} | \
|
||||
jq -r '.versions[-1]')
|
||||
fi
|
||||
@ -44,43 +40,40 @@ fi
|
||||
LATEST_BUILD=$(curl -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds | \
|
||||
jq -r '.builds | map(select(.channel == "default") | .build) | .[-1]')
|
||||
|
||||
# update server.jar to latest stable
|
||||
|
||||
if [ "$LATEST_BUILD" != "null" ]; then
|
||||
JAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${LATEST_BUILD}.jar
|
||||
PAPERMC_URL="https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${LATEST_BUILD}/downloads/${JAR_NAME}"
|
||||
|
||||
rm -f *.jar
|
||||
|
||||
# Download the latest Paper version
|
||||
curl -o server.jar $PAPERMC_URL
|
||||
curl -o $SERVER_DIR/server.jar $PAPERMC_URL
|
||||
echo "Download completed"
|
||||
else
|
||||
echo "No stable build for version $MINECRAFT_VERSION found :("
|
||||
fi
|
||||
|
||||
# Update eula.txt with current setting
|
||||
echo "eula=${EULA:-false}" > eula.txt
|
||||
|
||||
# Add RAM options to Java options if necessary
|
||||
if [[ -n $SERVER_MEMORY ]]
|
||||
then
|
||||
JAVA_OPTS="-Xms${SERVER_MEMORY} -Xmx${SERVER_MEMORY} $JAVA_OPTS"
|
||||
fi
|
||||
|
||||
# prepare server properties
|
||||
SERVER_PROPERTIES=$SERVER_DIR/server.properties
|
||||
SERVER_WHITELIST=$SERVER_DIR/whitelist.json
|
||||
SERVER_OPLIST=$SERVER_DIR/ops.json
|
||||
WHITELIST_PREP=$SERVER_DIR/whitelist.prep
|
||||
OPLIST_PREP=$SERVER_DIR/op.prep
|
||||
|
||||
SERVER_PROPERTIES=/server/server.properties
|
||||
|
||||
if [ -f /server/server.properties ]; then
|
||||
if [ -f $SERVER_PROPERTIES ]; then
|
||||
mv $SERVER_PROPERTIES $SERVER_PROPERTIES.bkp
|
||||
rm $SERVER_PROPERTIES
|
||||
touch $SERVER_PROPERTIES
|
||||
fi
|
||||
|
||||
if [ -f /server/whitelist.prep ]; then
|
||||
echo -n "[" > /server/whitelist.json
|
||||
cat /server/whitelist.prep | while read u
|
||||
if [ -f $WHITELIST_PREP ]; then
|
||||
echo -n "[" > $SERVER_WHITELIST
|
||||
cat $WHITELIST_PREP | while read u
|
||||
do
|
||||
echo "Adding $u to whitelist"
|
||||
|
||||
@ -95,15 +88,35 @@ if [ -f /server/whitelist.prep ]; then
|
||||
fi
|
||||
|
||||
# write to whitelist.json
|
||||
echo -n "{\"uuid\": \"$uuid\",\"name\": \"$u\"}" >> /server/whitelist.json;
|
||||
echo -n "{\"uuid\": \"$uuid\",\"name\": \"$u\"}" >> $SERVER_WHITELIST;
|
||||
|
||||
done
|
||||
echo "]" >> /server/whitelist.json
|
||||
sed --in-place -e 's/}{/}, {/g' /server/whitelist.json
|
||||
echo "]" >> $SERVER_WHITELIST
|
||||
sed --in-place -e 's/}{/}, {/g' $SERVER_WHITELIST
|
||||
fi
|
||||
|
||||
if [ -f /server/op.prep ]; then
|
||||
echo "true"
|
||||
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 -n "{\"uuid\": \"$uuid\",\"name\": \"$u\",\"level\": 4,\"bypassesPlayerLimit\": false}" >> $SERVER_OPLIST;
|
||||
|
||||
done
|
||||
echo "]" >> $SERVER_OPLIST
|
||||
sed --in-place -e 's/}{/}, {/g' $SERVER_OPLIST
|
||||
fi
|
||||
|
||||
if [[ -n $WHITELIST ]]; then
|
||||
|
Loading…
Reference in New Issue
Block a user