<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.gmail.nossr50.mcMMO</groupId>
    <artifactId>mcMMO</artifactId>
    <version>2.2.046-SNAPSHOT</version>
    <name>mcMMO</name>
    <url>https://github.com/mcMMO-Dev/mcMMO</url>
    <scm>
        <url>https://github.com/mcMMO-Dev/mcMMO</url>
        <connection>scm:git:git://github.com/mcMMO-Dev/mcMMO.git</connection>
        <developerConnection>scm:git:git@github.com:mcMMO-Dev/mcMMO.git</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <properties>
<!--        <spigot.version>1.19-R0.1-SNAPSHOT</spigot.version>-->
        <spigot.version>1.21.10-R0.1-SNAPSHOT</spigot.version>
        <kyori.adventure.version>4.23.0</kyori.adventure.version>
        <kyori.adventure.platform.version>4.4.1-SNAPSHOT</kyori.adventure.platform.version>
        <kyori.option.version>1.1.0</kyori.option.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <java.version>17</java.version>
    </properties>

    <issueManagement>
        <url>https://github.com/mcMMO-Dev/mcMMO/issues</url>
        <system>GitHub</system>
    </issueManagement>
    <packaging>jar</packaging>
    <distributionManagement>
        <repository>
            <id>neetgames</id>
            <url>https://nexus.neetgames.com/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>neetgames</id>
            <url>https://nexus.neetgames.com/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
    <build>
        <finalName>${project.artifactId}</finalName>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <resources>
            <resource>
                <targetPath>.</targetPath>
                <filtering>true</filtering>
                <directory>${basedir}/src/main/resources/</directory>
                <includes>
                    <include>*.yml</include>
                    <include>.jenkins</include>
                </includes>
            </resource>
            <resource>
                <targetPath>com/gmail/nossr50/locale</targetPath>
                <filtering>true</filtering>
                <directory>${basedir}/src/main/resources/locale/</directory>
                <includes>
                    <include>locale*.properties</include>
                </includes>
            </resource>
            <resource>
                <targetPath>mods</targetPath>
                <filtering>true</filtering>
                <directory>${basedir}/src/main/resources/mods</directory>
                <includes>
                    <include>*.yml</include>
                </includes>
            </resource>
            <resource>
                <targetPath>.</targetPath>
                <filtering>true</filtering>
                <directory>${basedir}</directory>
                <includes>
                    <include>LICENSE</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <propertiesEncoding>UTF-8</propertiesEncoding>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.2.5</version>

                <configuration>
                    <junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
                    <trimStackTrace>false</trimStackTrace>
                    <excludedGroups>skip</excludedGroups>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.2.5</version>
                <configuration>
                    <junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
                    <trimStackTrace>false</trimStackTrace>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>3.0.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.13.0</version>
                <configuration>
                    <release>17</release>
                    <compilerArgs>
                        <arg>-parameters</arg> <!-- used for ACF syntax stuff -->
                    </compilerArgs>
                    <excludes>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.7.1</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/package.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>build</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.5.3</version>
                <configuration>
                    <artifactSet>
                        <includes>
                            <include>commons-logging:commons-logging</include>
                            <include>org.apache.tomcat:tomcat-jdbc</include>
                            <include>org.apache.tomcat:tomcat-juli</include>
                            <include>org.bstats:bstats-base</include>
                            <include>org.bstats:bstats-bukkit</include>
                            <include>net.kyori:adventure-api</include>
                            <include>net.kyori:adventure-key</include>
                            <include>net.kyori:adventure-nbt</include>
                            <include>net.kyori:adventure-platform-api</include>
                            <include>net.kyori:adventure-platform-bukkit</include>
                            <include>net.kyori:adventure-platform-facet</include>
                            <include>net.kyori:adventure-platform-viaversion</include>
                            <include>net.kyori:adventure-text-serializer-bungeecord</include>
                            <include>net.kyori:adventure-text-serializer-commons</include>
                            <include>net.kyori:adventure-text-serializer-gson</include>
                            <include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
                            <include>net.kyori:adventure-text-serializer-json</include>
                            <include>net.kyori:adventure-text-serializer-json-legacy-impl</include>
                            <include>net.kyori:adventure-text-serializer-legacy</include>
                            <include>net.kyori:examination-api</include>
                            <include>net.kyori:examination-string</include>
                            <include>net.kyori:option</include>
                            <include>net.kyori:adventure-text-serializer-craftbukkit</include>
                            <include>co.aikar:acf-bukkit</include>
                            <include>com.tcoded:FoliaLib</include>
                        </includes>
                    </artifactSet>
                    <relocations>
                        <relocation>
                            <pattern>net.kyori</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.kyori</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>co.aikar.commands</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.acf</shadedPattern> <!-- Replace this -->
                        </relocation>
                        <relocation>
                            <pattern>co.aikar.locales</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.locales</shadedPattern> <!-- Replace this -->
                        </relocation>
                        <relocation>
                            <pattern>org.apache.commons.logging</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.commons.logging</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>org.apache.juli</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.database.tomcat.juli</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>org.apache.tomcat</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.database.tomcat</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>org.bstats</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.metrics.bstats</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>com.tcoded.folialib</pattern>
                            <shadedPattern>com.gmail.nossr50.mcmmo.folialib</shadedPattern>
                        </relocation>
                    </relocations>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-file</artifactId>
                <version>3.5.2</version>
            </extension>
        </extensions>
    </build>
    <pluginRepositories>
        <pluginRepository>
            <id>maven-snapshots</id>
            <url>https://repository.apache.org/content/repositories/snapshots/</url>
        </pluginRepository>
    </pluginRepositories>

    <repositories>
        <repository>
            <id>spigot-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>CodeMC</id>
            <url>https://repo.codemc.org/repository/maven-public</url>
        </repository>
        <repository>
            <id>enginehub-repo</id>
            <url>https://maven.enginehub.org/repo/</url>
        </repository>
        <repository> <!-- for development builds -->
            <id>sonatype-oss</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>aikar</id>
            <url>https://repo.aikar.co/content/groups/aikar/</url>
        </repository>
        <repository>
            <id>sonatype-oss-snapshots1</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>placeholderapi</id>
            <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
        </repository>
        <!-- MockBukkit -->
        <repository>
            <id>papermc</id>
            <url>https://repo.papermc.io/repository/maven-public/</url>
        </repository>
        <repository>
            <id>jitpack</id>
            <url>https://jitpack.io</url>
        </repository>
        <repository>
            <id>tcoded-releases</id>
            <url>https://repo.tcoded.com/releases/</url>
        </repository>
    </repositories>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>3.25.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.dmulloy2</groupId>
            <artifactId>ProtocolLib</artifactId>
            <version>5.3.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.2.224</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>me.clip</groupId>
            <artifactId>placeholderapi</artifactId>
            <version>2.11.6</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>co.aikar</groupId>
            <artifactId>acf-bukkit</artifactId> <!-- Don't forget to replace this -->
            <version>0.5.1-SNAPSHOT</version> <!-- Replace this as well -->
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-text-serializer-bungeecord</artifactId>
            <version>${kyori.adventure.platform.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-text-serializer-gson</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-text-serializer-json</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-text-serializer-json-legacy-impl</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-api</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-nbt</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-key</artifactId>
            <version>${kyori.adventure.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-platform-api</artifactId>
            <version>${kyori.adventure.platform.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-platform-bukkit</artifactId>
            <version>${kyori.adventure.platform.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-platform-facet</artifactId>
            <version>${kyori.adventure.platform.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>adventure-platform-viaversion</artifactId>
            <version>${kyori.adventure.platform.version}</version>
        </dependency>
        <dependency>
            <groupId>net.kyori</groupId>
            <artifactId>option</artifactId>
            <version>${kyori.option.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-provider-gitexe</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.bstats</groupId>
            <artifactId>bstats-bukkit</artifactId>
            <version>3.0.2</version>
            <scope>compile</scope>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>io.papermc.paper</groupId>-->
<!--            <artifactId>paper-api</artifactId>-->
<!--            <version>1.21.8-R0.1-SNAPSHOT</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>${spigot.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sk89q.worldedit</groupId>
            <artifactId>worldedit-bukkit</artifactId>
            <version>7.2.0-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sk89q.worldguard</groupId>
            <artifactId>worldguard-core</artifactId>
            <version>7.0.7</version>
            <exclusions>
                <exclusion>
                    <!-- We use jetbrains instead. Excluding this -->
                    <!-- prevents us from using inconsistent annotations -->
                    <groupId>com.google.code.findbugs</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.sk89q.worldguard</groupId>
            <artifactId>worldguard-legacy</artifactId>
            <version>7.0.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bukkit</groupId>
                    <artifactId>bukkit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.11.0-M2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>5.12.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-inline</artifactId>
            <version>5.2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
            <version>10.1.24</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains</groupId>
            <artifactId>annotations</artifactId>
            <version>24.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>33.2.0-jre</version> <!-- At this time Spigot is including 29.0 Guava classes that we are using -->
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.tcoded</groupId>
            <artifactId>FoliaLib</artifactId>
            <version>0.5.1</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>
