From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 20:40:33 -0600
Subject: [PATCH] POM Changes


diff --git a/pom.xml b/pom.xml
index 185aa47591ddf92bece217a56078bd74777f749a..7d38039fcba45ee55f35c0291ad66a58ef99c392 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,15 +1,14 @@
 <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>org.spigotmc</groupId>
-    <artifactId>spigot</artifactId>
+    <artifactId>paper</artifactId>
     <packaging>jar</packaging>
     <version>1.16.4-R0.1-SNAPSHOT</version>
-    <name>Spigot</name>
-    <url>https://www.spigotmc.org/</url>
+    <name>Paper</name>
+    <url>https://papermc.io</url>
 
     <properties>
-        <skipTests>true</skipTests>
+        <!-- <skipTests>true</skipTests> Paper - This [was] not going to end well -->
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <api.version>unknown</api.version>
         <minecraft.version>1.16.4</minecraft.version>
@@ -19,21 +18,27 @@
     </properties>
 
     <parent>
-        <groupId>org.spigotmc</groupId>
-        <artifactId>spigot-parent</artifactId>
+        <groupId>com.destroystokyo.paper</groupId>
+        <artifactId>paper-parent</artifactId>
         <version>dev-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <dependencies>
         <dependency>
-            <groupId>org.spigotmc</groupId>
-            <artifactId>spigot-api</artifactId>
+            <groupId>com.destroystokyo.paper</groupId>
+            <artifactId>paper-api</artifactId>
             <version>${project.version}</version>
             <scope>compile</scope>
         </dependency>
         <dependency>
-            <groupId>org.spigotmc</groupId>
+            <groupId>com.destroystokyo.paper</groupId>
+            <artifactId>paper-mojangapi</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.papermc</groupId>
             <artifactId>minecraft-server</artifactId>
             <version>${minecraft.version}-SNAPSHOT</version>
             <scope>compile</scope>
@@ -56,6 +61,17 @@
             <version>8.0.1</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <!-- wrapper to use either java 8 sun cleaner or java9+ official cleaner -->
+            <groupId>co.aikar</groupId>
+            <artifactId>cleaner</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+            <version>4.1.50.Final</version>
+        </dependency>
         <!-- deprecated API depend -->
         <dependency>
             <groupId>com.googlecode.json-simple</groupId>
@@ -112,34 +128,22 @@
 
     <!-- This builds a completely 'ready to start' jar with all dependencies inside -->
     <build>
+        <finalName>paper-${minecraft.version}</finalName>
+        <defaultGoal>clean install</defaultGoal> <!-- Paper -->
         <plugins>
             <plugin>
-                <groupId>net.md-5</groupId>
-                <artifactId>scriptus</artifactId>
-                <version>0.4.1</version>
+                <groupId>com.lukegb.mojo</groupId>
+                <artifactId>gitdescribe-maven-plugin</artifactId>
+                <version>1.3</version>
+                <configuration>
+                    <outputPrefix>git-Paper-</outputPrefix>
+                    <scmDirectory>..</scmDirectory>
+                </configuration>
                 <executions>
                     <execution>
-                        <id>ex-spigot</id>
-                        <configuration>
-                            <format>git-Spigot-%s</format>
-                            <scmDirectory>../</scmDirectory>
-                            <descriptionProperty>spigot.desc</descriptionProperty>
-                        </configuration>
-                        <phase>initialize</phase>
-                        <goals>
-                            <goal>describe</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>ex-craftbukkit</id>
-                        <configuration>
-                            <format>-%s</format>
-                            <scmDirectory>../../CraftBukkit</scmDirectory>
-                            <descriptionProperty>craftbukkit.desc</descriptionProperty>
-                        </configuration>
-                        <phase>initialize</phase>
+                        <phase>compile</phase>
                         <goals>
-                            <goal>describe</goal>
+                            <goal>gitdescribe</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -149,6 +153,7 @@
                 <artifactId>maven-jar-plugin</artifactId>
                 <version>3.2.0</version>
                 <configuration>
+                    <forceCreation>true</forceCreation> <!-- Required to prevent shading the jar multiple times -->
                     <archive>
                         <manifest>
                             <addDefaultEntries>false</addDefaultEntries>
@@ -156,8 +161,9 @@
                         <manifestEntries>
                             <Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
                             <Implementation-Title>CraftBukkit</Implementation-Title>
-                            <Implementation-Version>${spigot.desc}${craftbukkit.desc}</Implementation-Version>
-                            <Implementation-Vendor>${project.build.outputTimestamp}</Implementation-Vendor>
+                            <!--suppress MavenModelInspection -->
+                            <Implementation-Version>${describe}</Implementation-Version>
+                            <Implementation-Vendor>${maven.build.timestamp}</Implementation-Vendor>
                             <Specification-Title>Bukkit</Specification-Title>
                             <Specification-Version>${api.version}</Specification-Version>
                             <Specification-Vendor>Bukkit Team</Specification-Vendor>
@@ -196,6 +202,7 @@
                             <goal>shade</goal>
                         </goals>
                         <configuration>
+                            <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation> <!-- Paper -->
                             <createSourcesJar>${shadeSourcesJar}</createSourcesJar>
                             <filters>
                                 <filter>
@@ -204,6 +211,14 @@
                                         <exclude>com/google/common/**</exclude>
                                         <exclude>com/google/gson/**</exclude>
                                         <exclude>com/google/thirdparty/**</exclude>
+                                        <!-- paper -->
+                                        <exclude>io/netty/**</exclude>
+                                        <exclude>META-INF/native/libnetty*</exclude>
+                                        <exclude>com/brigadier/**</exclude>
+                                        <exclude>META-INF/MANIFEST.MF</exclude>
+                                        <exclude>com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository</exclude>
+                                        <exclude>com.mojang.datafixers.util.Either</exclude>
+                                        <exclude>org.apache.logging.log4j/**</exclude>
                                     </excludes>
                                 </filter>
                             </filters>
@@ -219,10 +234,11 @@
                                     <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>
+                                <!-- Paper - Don't relocate fastutil in order to prevent api breakage -->
+                                <!--<relocation>-->
+                                    <!--<pattern>it.unimi</pattern>-->
+                                    <!--<shadedPattern>org.bukkit.craftbukkit.libs.it.unimi</shadedPattern>-->
+                                <!--</relocation>-->
                                 <relocation>
                                     <pattern>org.apache.commons.codec</pattern>
                                     <shadedPattern>org.bukkit.craftbukkit.libs.org.apache.commons.codec</shadedPattern>
@@ -264,10 +280,6 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.8.1</version>
-                <configuration>
-                    <!-- we use the Eclipse compiler as it doesn't need a JDK -->
-                    <compilerId>eclipse</compilerId>
-                </configuration>
                 <dependencies>
                     <!-- we need our custom version as it fixes some bugs on case sensitive file systems -->
                     <dependency>
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 8a8234199e36da33cb94fdf030f9fc75dc0add44..9c98589c2db92720b4ae054ee74ef7ab0dac891a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -186,7 +186,7 @@ public class Main {
                 }
 
                 if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
-                    Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);
+                    Date buildDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(Main.class.getPackage().getImplementationVendor()); // Paper
 
                     Calendar deadline = Calendar.getInstance();
                     deadline.add(Calendar.DAY_OF_YEAR, -7);
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 93046379d0cefd5d3236fc59e698809acdc18f80..674096cab190d62622f9947853b056f57d43a2a5 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -11,7 +11,7 @@ public final class Versioning {
     public static String getBukkitVersion() {
         String result = "Unknown-Version";
 
-        InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.spigotmc/spigot-api/pom.properties");
+        InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/com.destroystokyo.paper/paper-api/pom.properties");
         Properties properties = new Properties();
 
         if (stream != null) {
