diff --git a/Dockerfile b/Dockerfile index 8c50439..0cbfbcf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,19 @@ FROM eclipse-temurin:17-jdk -ARG RUNNABLE_SERVER_JAR +ARG RUNNABLE_JAR # create directories WORKDIR /data RUN mkdir bin bundle workdir # add executable files -ADD $RUNNABLE_SERVER_JAR bin/paper.jar +ADD $RUNNABLE_JAR bin/geyser.jar ADD run.sh bin/run.sh -# download paper libraries and apply patches -RUN java -DbundlerRepoDir=/data/bundle -Dpaperclip.patchonly=true -jar /data/bin/paper.jar - # configure max heap size ENV MAXMEM=1024M -EXPOSE 25565 +EXPOSE 19132/udp VOLUME /data/workdir WORKDIR /data/workdir diff --git a/Readme.md b/Readme.md index a0796bd..6ef7791 100644 --- a/Readme.md +++ b/Readme.md @@ -3,9 +3,8 @@ Docker Compose Example ```yml version: "3" services: - paper: - image: "cr.pandacube.fr/paper:(version)" - container_name: (server name) + (server-name): + image: "cr.pandacube.fr/geyser:(version)" stdin_open: true # docker run -i tty: true # docker run -t user: "1000:1000" # uid and gid of owner of working dir @@ -17,5 +16,5 @@ services: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - - "0.0.0.0:(port):25565" + - "0.0.0.0:(port):19132/udp" ``` \ No newline at end of file diff --git a/build.sh b/build.sh index 8781e21..31e8650 100644 --- a/build.sh +++ b/build.sh @@ -1,75 +1,39 @@ #!/bin/bash -URL_PROJECT='https://api.papermc.io/v2/projects/paper' +URL_BUILD='https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest' -echo "Getting Paper last build id for MC "$MC_VERSION"..." - -URL_VERSION=$URL_PROJECT'/versions/'$MC_VERSION +echo "Getting Geyser last build infos..." # get paper build version -if ! curl -s $URL_VERSION -o version_infos.json; then +if ! curl -s $URL_BUILD -o build_infos.json; then echo -e "Error: Can’t join API" exit 1 fi - -if ! jq -r '.builds[-1]' -e < version_infos.json > build_number.txt; then - echo -e "API returned an error (probably MC_VERSION is not valid)" +if ! jq -r '.version' -e < build_infos.json > /dev/null; then + echo -e "API returned an error" exit 1 fi -PAPER_BUILD=`cat build_number.txt` -URL_BUILD=$URL_VERSION'/builds/'$PAPER_BUILD +GEYSER_VERSION=$(jq -r '.version' < build_infos.json) +GEYSER_BUILD=$(jq -r '.build' < build_infos.json) + +echo "Geyser verion $GEYSER_VERSION build #$GEYSER_BUILD" + +DOWNLOAD_URL=$URL_BUILD'/downloads/standalone' + +RUNNABLE_JAR='Geyser-'$GEYSER_VERSION'-'$GEYSER_BUILD'.jar' + +echo "Downloadling Geyser Standalone..." +echo "From "$DOWNLOAD_URL +echo "To "$RUNNABLE_JAR +curl -o $RUNNABLE_JAR $DOWNLOAD_URL -DOWNLOAD_REOBF=$URL_BUILD'/downloads/paper-'$MC_VERSION'-'$PAPER_BUILD'.jar' +DOCKER_TAG="cr.pandacube.fr/geyser:"$GEYSER_VERSION"-"$GEYSER_BUILD +echo "Building docker image of Geyser Standalone "$DOCKER_TAG +docker build --build-arg RUNNABLE_JAR=$RUNNABLE_JAR -t $DOCKER_TAG . -# the runnable jar is actually paperclip -RUNNABLE_SERVER_JAR='Paper-'$MC_VERSION'-'$PAPER_BUILD'.jar' -#UBER_SERVER_JAR='Paper-uberjar-'$MC_VERSION'-'$PAPER_BUILD'.jar' - -echo "Downloadling Paperclip for Paper-"$MC_VERSION"-"$PAPER_BUILD"..." -echo "From "$DOWNLOAD_REOBF -echo "To "$RUNNABLE_SERVER_JAR -curl -o $RUNNABLE_SERVER_JAR $DOWNLOAD_REOBF - - -#java -version - -# run it to generate final jar, but not launching the actual server (-v option) - -#echo "Running Paperclip..." -#mkdir bundle -#java -DbundlerRepoDir=bundle -Dpaperclip.patchonly=true -jar $RUNNABLE_SERVER_JAR - - -# important that versions/ comes first. It will be extracted first, -# and following extraction will not override any file -#find bundle/versions/ bundle/libraries/ -type f -name '*.jar' > jars.txt - - -DOCKER_TAG="cr.pandacube.fr/paper:"$MC_VERSION"-"$PAPER_BUILD -echo "Building docker image with pre-downloaded and pre-patched files, with tag "$DOCKER_TAG -docker build --build-arg RUNNABLE_SERVER_JAR=$RUNNABLE_SERVER_JAR -t $DOCKER_TAG . - -#DOCKER_IMAGE_FILE="Paper-docker-"$MC_VERSION"-"$PAPER_BUILD".tar.gz" -#echo "Saving docker image to "$DOCKER_IMAGE_FILE -#docker save $DOCKER_TAG | gzip > $DOCKER_IMAGE_FILE echo "Pushing image to Pandacube’s container registry" docker push $DOCKER_TAG - -#mkdir uberjar -#for jar in `cat jars.txt`; do -# unzip -d uberjar -nq $jar -#done - -#( -# cd uberjar -# # exclude some stuff, especially about jar signature and stuff -# rm -f META-INF/*.SF META-INF/*.DSA META-INF/*.RSA -# # create the uber jar -# zip -r '../'$UBER_SERVER_JAR * -#) - -#mvn install:install-file -Dfile=$UBER_SERVER_JAR -DgroupId=io.papermc.paper -DartifactId=paper -Dversion=$MC_VERSION-$PAPER_BUILD-SNAPSHOT -Dpackaging=jar diff --git a/run.sh b/run.sh index 5fef4e8..4a14b87 100644 --- a/run.sh +++ b/run.sh @@ -1,11 +1,3 @@ #!/bin/sh -exec java -Xmx$MAXMEM -XX:+UseG1GC -XX:+ParallelRefProcEnabled \ - -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \ - -XX:G1ReservePercent=15 -XX:G1NewSizePercent=20 -XX:G1MaxNewSizePercent=30 \ - -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \ - -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 \ - -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \ - -XX:MaxHeapFreeRatio=30 -XX:MinHeapFreeRatio=5 \ - -DbundlerRepoDir=/data/bundle \ - -jar /data/bin/paper.jar nogui +exec java -Xmx$MAXMEM -XX:+UseG1GC -jar /data/bin/geyser.jar