<?xml version="1.0" encoding="UTF-8"?>
<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>

  <parent>
    <groupId>org.geysermc.floodgate</groupId>
    <artifactId>parent</artifactId>
    <version>2.0-SNAPSHOT</version>
  </parent>

  <artifactId>spigot</artifactId>

  <properties>
    <authlib.version>1.5.21</authlib.version>
    <guava.version>21.0</guava.version>
    <gson.version>2.8.5</gson.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.spigotmc</groupId>
      <artifactId>spigot-api</artifactId>
      <version>${spigot.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.mojang</groupId>
      <artifactId>authlib</artifactId>
      <version>${authlib.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-transport</artifactId>
      <version>${netty.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-codec</artifactId>
      <version>${netty.version}</version>
      <scope>provided</scope>
    </dependency>
    <!-- part of a hack to make pre 1.12 work -->
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
      <scope>compile</scope>
    </dependency>
    <!-- end of hack -->
    <dependency>
      <groupId>org.geysermc.floodgate</groupId>
      <artifactId>common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <!-- the following dependencies are (also) relocated -->
    <dependency>
      <groupId>cloud.commandframework</groupId>
      <artifactId>cloud-bukkit</artifactId>
      <version>${cloud.version}</version>
    </dependency>
    <dependency>
      <groupId>net.kyori</groupId>
      <artifactId>adventure-text-serializer-legacy</artifactId>
      <version>${adventure-api.version}</version>
    </dependency>
    <dependency>
      <groupId>net.kyori</groupId>
      <artifactId>adventure-text-serializer-gson</artifactId>
      <version>${adventure-api.version}</version>
    </dependency>
    <!-- the following common dependencies are already present on the platform -->
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>${gson.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
      <version>${snakeyaml.version}</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <id>spigot-repo</id>
      <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
    <repository>
      <id>minecraft-libraries</id>
      <url>https://libraries.minecraft.net/</url>
    </repository>
  </repositories>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources/</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <relocations>
                <relocation>
                  <pattern>net.kyori</pattern>
                  <shadedPattern>org.geysermc.floodgate.shaded.net.kyori</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>cloud.commandframework</pattern>
                  <shadedPattern>org.geysermc.floodgate.shaded.cloud.commandframework</shadedPattern>
                </relocation>
                <!-- used in cloud -->
                <relocation>
                  <pattern>io.leangen.geantyref</pattern>
                  <shadedPattern>org.geysermc.floodgate.shaded.io.leangen.geantyref</shadedPattern>
                </relocation>
                <!-- hack to make pre 1.12 work -->
                <relocation>
                  <pattern>com.google.common</pattern>
                  <shadedPattern>org.geysermc.floodgate.shaded.com.google.common</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.guava</pattern>
                  <shadedPattern>org.geysermc.floodgate.shaded.com.google.guava</shadedPattern>
                </relocation>
                <!-- hack to make (old versions? of) Paper work -->
                <relocation>
                  <pattern>it.unimi</pattern>
                  <shadedPattern>org.geysermc.floodgate.shaded.it.unimi</shadedPattern>
                </relocation>
              </relocations>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <finalName>${outputName}</finalName>
          <shadedArtifactAttached>true</shadedArtifactAttached>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
