<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>net.glowstone</groupId>
  <artifactId>glowstone</artifactId>
  <packaging>jar</packaging>
  <version>2018.1.0-SNAPSHOT</version>
  <name>Glowstone</name>
  <url>https://www.glowstone.net</url>
  <description>A fast, customizable and compatible open source Minecraft server.</description>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <api.version>1.12.2-R0.1-SNAPSHOT</api.version>
    <minecraft.version>1.12.2</minecraft.version>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <repositories>
    <repository>
      <id>glowstone-internal</id>
      <url>https://repo.glowstone.net/repository/internal/</url>
    </repository>
    <repository>
      <id>glowstone-snapshots</id>
      <url>https://repo.glowstone.net/repository/snapshots/</url>
    </repository>
  </repositories>

  <distributionManagement>
    <repository>
      <id>glowstone-upstream</id>
      <url>https://repo.glowstone.net/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
      <id>glowstone-upstream</id>
      <url>https://repo.glowstone.net/content/repositories/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.25</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>net.glowstone</groupId>
      <artifactId>glowkit</artifactId>
      <version>${api.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>jline</groupId>
      <artifactId>jline</artifactId>
      <version>2.14.5</version>
    </dependency>
    <dependency>
      <groupId>net.sf.trove4j</groupId>
      <artifactId>trove4j</artifactId>
      <version>3.0.3</version>
    </dependency>
    <dependency>
      <groupId>co.aikar</groupId>
      <artifactId>fastutil-lite</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.14.8</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.flowpowered</groupId>
      <artifactId>flow-network</artifactId>
      <version>1.2.2-SNAPSHOT</version>
    </dependency>
    <!-- Kotlin -->
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-runtime</artifactId>
      <version>1.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-reflect</artifactId>
      <version>1.2.0</version>
    </dependency>
    <!-- OpenCL -->
    <dependency>
      <groupId>org.jogamp.gluegen</groupId>
      <artifactId>gluegen-rt-main</artifactId>
      <version>2.3.2</version>
    </dependency>
    <dependency>
      <groupId>org.jogamp.jocl</groupId>
      <artifactId>jocl-main</artifactId>
      <version>2.3.2</version>
    </dependency>
    <!-- Tests -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>1.6.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito</artifactId>
      <version>1.6.6</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <finalName>glowstone</finalName>

    <directory>${project.basedir}/target</directory>

    <resources>
      <resource>
        <directory>${project.basedir}/src/main/resources</directory>
      </resource>
    </resources>

    <defaultGoal>package</defaultGoal>

    <plugins>
      <plugin>
        <groupId>net.md-5</groupId>
        <artifactId>scriptus</artifactId>
        <version>0.3.1</version>
        <configuration>
          <format>%s</format>
        </configuration>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>describe</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>8.5</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <configLocation>${project.basedir}/etc/checkstyle.xml</configLocation>
          <headerLocation>${project.basedir}/LICENSE</headerLocation>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <version>1.15</version>
        <executions>
          <execution>
            <phase>process-classes</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <signature>
            <groupId>org.codehaus.mojo.signature</groupId>
            <artifactId>java18</artifactId>
            <version>1.0</version>
          </signature>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <relocations>
                <relocation>
                  <pattern>jline</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.jline</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>it.unimi</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.it.unimi</shadedPattern>
                </relocation>
              </relocations>
              <filters>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>mojang-translations/*</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.0.2</version>
        <configuration>
          <forceCreation>true</forceCreation>
          <archive>
            <manifestEntries>
              <Launcher-Agent-Class>net.glowstone.util.ClassPathAgent</Launcher-Agent-Class>
              <Main-Class>net.glowstone.GlowServer</Main-Class>
              <Implementation-Title>${project.name}</Implementation-Title>
              <Implementation-Version>${project.version}.${describe}</Implementation-Version>
              <Implementation-Vendor>${maven.build.timestamp}</Implementation-Vendor>
              <Specification-Title>Bukkit</Specification-Title>
              <Specification-Version>${api.version}</Specification-Version>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.7.0</version>
      </plugin>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.0.0-M1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.0.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.8.2</version>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <configLocation>${project.basedir}/etc/checkstyle.xml</configLocation>
          <headerLocation>${project.basedir}/LICENSE</headerLocation>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>
