FROM maven:3-amazoncorretto-8 AS builder-ms3
RUN yum install -y git
WORKDIR /build/arcturus-community
RUN git clone --branch dev --recurse-submodules https://git.krews.org/morningstar/Arcturus-Community.git .
# explicit pin this version
RUN git checkout f051d1d1
RUN mvn package
RUN mvn install
WORKDIR /build/arcturus-ws
RUN git clone --recurse-submodules https://git.krews.org/nitro/ms-websockets.git .
RUN sed -i 's#3.0.0#[1.0.0,)#g' pom.xml
RUN mvn package
RUN cp target/NitroWebsockets-*.jar target/websockets.jar
FROM maven:3-amazoncorretto-19 AS builder-ms4
ARG BRANCH=ms4/dev
ARG COMMIT=3bb8ce16
RUN yum install -y git
WORKDIR /build/arcturus-community
RUN git clone --branch ${BRANCH} --recurse-submodules https://git.krews.org/morningstar/Arcturus-Community.git .
RUN git checkout $COMMIT
RUN sed -i 's#Scanner scanner = new Scanner(System.in);##g' src/main/java/com/eu/habbo/Emulator.java
RUN sed -i 's#scanner.nextLine();##g' src/main/java/com/eu/habbo/Emulator.java
ADD patches/ /build/arcturus-community/patches/
RUN find "$(readlink -f patches/)" -type f -name "*.patch" | xargs -I {} sh -c 'echo "Applying {}"; git apply {}'
RUN mvn package
RUN mvn install
RUN cp target/Morningstar*-with-dependencies.jar target/emulator.jar
WORKDIR /build/apollyon
RUN git clone --recurse-submodules https://git.gurkengewuerz.de/nitro/apollyon-ms4.git .
RUN sed -i 's#4.0-DEVPREVIEW#[1.0.0,)#g' pom.xml
RUN mvn package
RUN cp target/Apollyon-*.jar target/apollyon.jar
FROM amazoncorretto:19-alpine
WORKDIR /app
RUN apk add --no-cache mariadb-client bash
COPY --from=builder-ms4 /build/arcturus-community/target/emulator.jar /app/emulator.jar
RUN mkdir -p /app/plugins
COPY --from=builder-ms3 /build/arcturus-ws/target/websockets.jar /app/plugins/websockets.jar
COPY --from=builder-ms4 /build/apollyon/target/apollyon.jar /app/plugins/apollyon.jar
ENTRYPOINT ["/usr/bin/java", "-jar", "/app/emulator.jar"]