<!--
  ~ This file is part of Limbo.
  ~
  ~ Copyright (C) 2026. LoohpJames <jamesloohp@gmail.com>
  ~ Copyright (C) 2026. Contributors
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.loohp</groupId>
	<artifactId>Limbo</artifactId>
	<name>Limbo</name>
	<version>2026.0.1-ALPHA</version>
	
	<description>Standalone Limbo Minecraft Server.</description>
	<url>https://github.com/LOOHP/Limbo</url>
	<packaging>jar</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.build.number></project.build.number>
		<project.fullVersion>${project.version}</project.fullVersion>
		<maven.compiler.source>21</maven.compiler.source>
		<maven.compiler.target>21</maven.compiler.target>
	</properties>
	
	<build>
		<sourceDirectory>src/main/java</sourceDirectory>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<excludes>
					<exclude>**/*.java</exclude>
					<exclude>**/*.ttf</exclude>
					<exclude>**/*.jar</exclude>
					<exclude>**/*.schem</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>false</filtering>
				<includes>
					<include>**/*.ttf</include>
					<include>**/*.jar</include>
					<include>**/*.schem</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<mainClass>com.loohp.limbo.Limbo</mainClass>
						</manifest>
						<manifestEntries>
							<Limbo-Version>${project.version}</Limbo-Version>
						</manifestEntries>
					</archive>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<appendAssemblyId>false</appendAssemblyId>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.14.0</version>
				<configuration>
					<source>21</source>
					<target>21</target>
					<encoding>ISO-8859-1</encoding>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.11.2</version>
				<configuration>
					<failOnError>false</failOnError>
					<encoding>ISO-8859-1</encoding>
					<doctitle>Limbo JavaDocs</doctitle>
					<windowtitle>Limbo JavaDocs</windowtitle>
					<additionalOptions>
						<additionalOption>-Xdoclint:none</additionalOption>
					</additionalOptions>
				</configuration>
				<executions>
					<execution>
						<phase>install</phase>
						<goals>
							<goal>aggregate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.3.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>package</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<finalName>${project.artifactId}-${project.version}-26.1.2</finalName>
	</build>

	<profiles>
		<profile>
			<id>jenkins</id>
			<activation>
				<property>
					<name>env.BUILD_NUMBER</name>
				</property>
			</activation>
			<properties>
				<project.build.number>-b${env.BUILD_NUMBER}</project.build.number>
				<!--<project.fullVersion>${project.version}${project.build.number}</project.fullVersion> -->
				<project.fullVersion>${project.version}</project.fullVersion>
			</properties>
		</profile>

		<profile>
			<id>release-sign-artifacts</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<properties>
				<project.fullVersion>${project.version}</project.fullVersion>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>3.3.1</version>
						<configuration>
							<encoding>${project.build.sourceEncoding}</encoding>
						</configuration>
						<executions>
							<execution>
								<id>attach-sources</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>3.11.2</version>
						<configuration>
							<encoding>${project.build.sourceEncoding}</encoding>
						</configuration>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<repositories>
		<repository>
			<id>maven_central</id>
			<name>Maven Central</name>
			<url>https://repo.maven.apache.org/maven2/</url>
		</repository>
		<repository>
			<id>jitpack.io</id>
			<url>https://jitpack.io</url>
		</repository>
	</repositories>

	<dependencies>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.18.0</version>
		</dependency>
		<dependency>
			<groupId>com.github.Querz</groupId>
			<artifactId>NBT</artifactId>
			<version>6.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.13.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.yaml</groupId>
			<artifactId>snakeyaml</artifactId>
			<version>2.4</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.md-5</groupId>
			<artifactId>bungeecord-chat</artifactId>
			<version>1.21-R0.3</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.md-5</groupId>
			<artifactId>bungeecord-serializer</artifactId>
			<version>1.21-R0.3</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.kyori</groupId>
			<artifactId>adventure-text-serializer-gson</artifactId>
			<version>4.26.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.kyori</groupId>
			<artifactId>adventure-text-serializer-legacy</artifactId>
			<version>4.26.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.kyori</groupId>
			<artifactId>adventure-text-serializer-plain</artifactId>
			<version>4.26.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.kyori</groupId>
			<artifactId>adventure-api</artifactId>
			<version>4.26.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>net.kyori</groupId>
			<artifactId>adventure-nbt</artifactId>
			<version>4.26.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.fusesource.jansi</groupId>
			<artifactId>jansi</artifactId>
			<version>2.4.2</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.jline</groupId>
			<artifactId>jline</artifactId>
			<version>3.30.5</version>
			<scope>compile</scope>
		</dependency>
	</dependencies>
</project>
