From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kyle Wood <kyle@denwav.dev>
Date: Thu, 10 Dec 2020 20:54:19 -0800
Subject: [PATCH] Setup Gradle project

The pom.xml file is deleted in this patch so the patch will fail to
apply if there are changes made to it from upstream - thus notifying us
that changes were made.

diff --git a/.gitignore b/.gitignore
index 37dab9e868dbfb019c271a547d975a48ad1cb571..3811c0d849a3eb028ed1a6b7a2d4747f7f570448 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+.gradle/
+build/
+
 # Eclipse stuff
 /.classpath
 /.project
@@ -39,3 +42,7 @@ dependency-reduced-pom.xml
 
 /src/main/resources/achievement
 /src/main/resources/lang
+
+# vs code
+/.vscode
+/.factorypath
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000000000000000000000000000000000000..36e6426438865213d2e5e11ee3b1d6e538d475f7
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,131 @@
+import io.papermc.paperweight.util.*
+
+plugins {
+    java
+    `maven-publish`
+}
+
+dependencies {
+    implementation(project(":paper-api"))
+    implementation("jline:jline:2.12.1")
+    implementation("org.apache.logging.log4j:log4j-iostreams:2.24.1") {
+        exclude(group = "org.apache.logging.log4j", module = "log4j-api")
+    }
+    implementation("org.ow2.asm:asm-commons:9.7.1")
+    implementation("commons-lang:commons-lang:2.6")
+    runtimeOnly("org.xerial:sqlite-jdbc:3.47.0.0")
+    runtimeOnly("com.mysql:mysql-connector-j:9.1.0")
+
+    runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6")
+    runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
+    runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
+
+    testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+    testImplementation("org.junit.platform:junit-platform-suite-engine:1.10.0")
+    testImplementation("org.hamcrest:hamcrest:2.2")
+    testImplementation("org.mockito:mockito-core:5.14.1")
+    testImplementation("org.ow2.asm:asm-tree:9.7.1")
+}
+
+paperweight {
+    craftBukkitPackageVersion.set("v1_21_R3") // also needs to be updated in MappingEnvironment
+}
+
+tasks.jar {
+    archiveClassifier.set("dev")
+
+    manifest {
+        val git = Git(rootProject.layout.projectDirectory.path)
+        val gitHash = git("rev-parse", "--short=7", "HEAD").getText().trim()
+        val implementationVersion = System.getenv("BUILD_NUMBER") ?: "\"$gitHash\""
+        val date = git("show", "-s", "--format=%ci", gitHash).getText().trim() // Paper
+        attributes(
+            "Main-Class" to "org.bukkit.craftbukkit.Main",
+            "Implementation-Title" to "CraftBukkit",
+            "Implementation-Version" to "git-Paper-$implementationVersion",
+            "Implementation-Vendor" to date, // Paper
+            "Specification-Title" to "Bukkit",
+            "Specification-Version" to project.version,
+            "Specification-Vendor" to "Bukkit Team",
+        )
+        for (tld in setOf("net", "com", "org")) {
+            attributes("$tld/bukkit", "Sealed" to true)
+        }
+    }
+}
+
+publishing {
+    publications.create<MavenPublication>("maven") {
+    }
+}
+
+tasks.test {
+    include("**/**TestSuite.class")
+    workingDir = temporaryDir
+    useJUnitPlatform {
+        forkEvery = 1
+        excludeTags("Slow")
+    }
+}
+
+fun TaskContainer.registerRunTask(
+    name: String,
+    block: JavaExec.() -> Unit
+): TaskProvider<JavaExec> = register<JavaExec>(name) {
+    group = "paper"
+    mainClass.set("org.bukkit.craftbukkit.Main")
+    standardInput = System.`in`
+    workingDir = rootProject.layout.projectDirectory
+        .dir(providers.gradleProperty("paper.runWorkDir").getOrElse("run"))
+        .asFile
+    javaLauncher.set(project.javaToolchains.launcherFor {
+        languageVersion.set(JavaLanguageVersion.of(21))
+        vendor.set(JvmVendorSpec.JETBRAINS)
+    })
+    jvmArgs("-XX:+AllowEnhancedClassRedefinition", "-XX:+AllowRedefinitionToAddDeleteMethods")
+
+    if (rootProject.childProjects["test-plugin"] != null) {
+        val testPluginJar = rootProject.project(":test-plugin").tasks.jar.flatMap { it.archiveFile }
+        inputs.file(testPluginJar)
+        args("-add-plugin=${testPluginJar.get().asFile.absolutePath}")
+    }
+
+    args("--nogui")
+    systemProperty("net.kyori.adventure.text.warnWhenLegacyFormattingDetected", true)
+    if (providers.gradleProperty("paper.runDisableWatchdog").getOrElse("false") == "true") {
+        systemProperty("disable.watchdog", true)
+    }
+    systemProperty("io.papermc.paper.suppress.sout.nags", true)
+
+    val memoryGb = providers.gradleProperty("paper.runMemoryGb").getOrElse("2")
+    minHeapSize = "${memoryGb}G"
+    maxHeapSize = "${memoryGb}G"
+
+    doFirst {
+        workingDir.mkdirs()
+    }
+
+    block(this)
+}
+
+val runtimeClasspathWithoutVanillaServer = configurations.runtimeClasspath.flatMap { it.elements }
+    .zip(configurations.vanillaServer.map { it.singleFile.absolutePath }) { runtime, vanilla ->
+        runtime.filterNot { it.asFile.absolutePath == vanilla }
+    }
+
+tasks.registerRunTask("runServerJar") {
+    description = "Spin up a test server from the serverJar archiveFile"
+    classpath(tasks.serverJar.flatMap { it.archiveFile })
+    classpath(runtimeClasspathWithoutVanillaServer)
+}
+
+tasks.registerRunTask("runReobf") {
+    description = "Spin up a test server from the reobfJar output jar"
+    classpath(tasks.reobfJar.flatMap { it.outputJar })
+    classpath(runtimeClasspathWithoutVanillaServer)
+}
+
+tasks.registerRunTask("runDev") {
+    description = "Spin up a non-relocated Mojang-mapped test server"
+    classpath(sourceSets.main.map { it.runtimeClasspath })
+}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 8fdbc360f03b7ad561be4497f0793e81aa2e170b..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,691 +0,0 @@
-<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>
-    <packaging>jar</packaging>
-    <version>1.21.4-R0.1-SNAPSHOT</version>
-    <name>Spigot</name>
-    <url>https://www.spigotmc.org/</url>
-
-    <parent>
-        <groupId>org.spigotmc</groupId>
-        <artifactId>spigot-parent</artifactId>
-        <version>dev-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <properties>
-        <skipTests>true</skipTests>
-        <groups>AllFeatures,Bundle,Legacy,Normal,VanillaFeature</groups>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <api.version>unknown</api.version>
-        <bt.name>git</bt.name>
-        <minecraft_version>1_21_R3</minecraft_version>
-        <maven.compiler.release>21</maven.compiler.release>
-    </properties>
-
-    <repositories>
-        <repository>
-            <id>minecraft-libraries</id>
-            <name>Minecraft Libraries</name>
-            <url>https://libraries.minecraft.net/</url>
-        </repository>
-    </repositories>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.spigotmc</groupId>
-            <artifactId>spigot-api</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.spigotmc</groupId>
-            <artifactId>minecraft-server</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>jline</groupId>
-            <artifactId>jline</artifactId>
-            <version>2.12.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-iostreams</artifactId>
-            <version>2.24.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ow2.asm</groupId>
-            <artifactId>asm-commons</artifactId>
-            <version>9.7.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <!-- Start Mojang depends -->
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>2.13.4</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-            <version>2.13.4</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>2.13.4.2</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.github.oshi</groupId>
-            <artifactId>oshi-core</artifactId>
-            <version>6.6.5</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.github.stephenc.jcip</groupId>
-            <artifactId>jcip-annotations</artifactId>
-            <version>1.0-1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.microsoft.azure</groupId>
-            <artifactId>msal4j</artifactId>
-            <version>1.17.2</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.mojang</groupId>
-            <artifactId>authlib</artifactId>
-            <version>6.0.57</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.mojang</groupId>
-            <artifactId>brigadier</artifactId>
-            <version>1.3.10</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.mojang</groupId>
-            <artifactId>datafixerupper</artifactId>
-            <version>8.0.16</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.mojang</groupId>
-            <artifactId>jtracy</artifactId>
-            <version>1.0.29</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.mojang</groupId>
-            <artifactId>logging</artifactId>
-            <version>1.5.10</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.nimbusds</groupId>
-            <artifactId>content-type</artifactId>
-            <version>2.3</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.nimbusds</groupId>
-            <artifactId>lang-tag</artifactId>
-            <version>1.7</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.nimbusds</groupId>
-            <artifactId>nimbus-jose-jwt</artifactId>
-            <version>9.40</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.nimbusds</groupId>
-            <artifactId>oauth2-oidc-sdk</artifactId>
-            <version>11.18</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.17.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-buffer</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-codec</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-common</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-handler</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-resolver</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport-classes-epoll</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport-native-epoll</artifactId>
-            <version>4.1.115.Final</version>
-            <classifier>linux-x86_64</classifier>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport-native-epoll</artifactId>
-            <version>4.1.115.Final</version>
-            <classifier>linux-aarch_64</classifier>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty-transport-native-unix-common</artifactId>
-            <version>4.1.115.Final</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>it.unimi.dsi</groupId>
-            <artifactId>fastutil</artifactId>
-            <version>8.5.15</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>net.java.dev.jna</groupId>
-            <artifactId>jna</artifactId>
-            <version>5.15.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>net.java.dev.jna</groupId>
-            <artifactId>jna-platform</artifactId>
-            <version>5.15.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>net.minidev</groupId>
-            <artifactId>accessors-smart</artifactId>
-            <version>2.5.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>net.minidev</groupId>
-            <artifactId>json-smart</artifactId>
-            <version>2.5.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>net.sf.jopt-simple</groupId>
-            <artifactId>jopt-simple</artifactId>
-            <version>5.0.4</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.17.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <version>2.24.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>2.24.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j2-impl</artifactId>
-            <version>2.24.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.lz4</groupId>
-            <artifactId>lz4-java</artifactId>
-            <version>1.8.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>2.0.16</version>
-            <scope>compile</scope>
-        </dependency>
-        <!-- End Mojang depends -->
-        <!-- deprecated API depend -->
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.6</version>
-            <scope>compile</scope>
-        </dependency>
-        <!-- deprecated API depend -->
-        <dependency>
-            <groupId>com.googlecode.json-simple</groupId>
-            <artifactId>json-simple</artifactId>
-            <version>1.1.1</version>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>junit</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.xerial</groupId>
-            <artifactId>sqlite-jdbc</artifactId>
-            <version>3.47.0.0</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.mysql</groupId>
-            <artifactId>mysql-connector-j</artifactId>
-            <version>9.1.0</version>
-            <scope>runtime</scope>
-        </dependency>
-        <!-- add these back in as they are not exposed by the API -->
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-resolver-provider</artifactId>
-            <version>3.9.6</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>maven-resolver-connector-basic</artifactId>
-            <version>1.9.18</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>maven-resolver-transport-http</artifactId>
-            <version>1.9.18</version>
-            <scope>runtime</scope>
-        </dependency>
-        <!-- annotations -->
-        <dependency>
-            <groupId>org.jetbrains</groupId>
-            <artifactId>annotations-java5</artifactId>
-            <version>24.1.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <!-- testing -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <version>5.10.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.platform</groupId>
-            <artifactId>junit-platform-suite-engine</artifactId>
-            <version>1.10.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest</artifactId>
-            <version>2.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <version>5.14.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ow2.asm</groupId>
-            <artifactId>asm-tree</artifactId>
-            <version>9.7.1</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <!-- This builds a completely 'ready to start' jar with all dependencies inside -->
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>net.md-5</groupId>
-                <artifactId>scriptus</artifactId>
-                <version>0.5.0</version>
-                <executions>
-                    <execution>
-                        <id>ex-spigot</id>
-                        <configuration>
-                            <format>${bt.name}-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>
-                        <goals>
-                            <goal>describe</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-clean-plugin</artifactId>
-                <version>3.2.0</version>
-                <executions>
-                    <execution>
-                        <phase>initialize</phase>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>3.4.1</version>
-                <configuration>
-                    <archive>
-                        <manifest>
-                            <addDefaultEntries>false</addDefaultEntries>
-                        </manifest>
-                        <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>
-                            <Specification-Title>Bukkit</Specification-Title>
-                            <Specification-Version>${api.version}</Specification-Version>
-                            <Specification-Vendor>Bukkit Team</Specification-Vendor>
-                            <Multi-Release>true</Multi-Release>
-                        </manifestEntries>
-                        <manifestSections>
-                            <manifestSection>
-                                <name>net/bukkit/</name>
-                                <manifestEntries>
-                                    <Sealed>true</Sealed>
-                                </manifestEntries>
-                            </manifestSection>
-                            <manifestSection>
-                                <name>com/bukkit/</name>
-                                <manifestEntries>
-                                    <Sealed>true</Sealed>
-                                </manifestEntries>
-                            </manifestSection>
-                            <manifestSection>
-                                <name>org/bukkit/</name>
-                                <manifestEntries>
-                                    <Sealed>true</Sealed>
-                                </manifestEntries>
-                            </manifestSection>
-                        </manifestSections>
-                    </archive>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <version>3.5.3</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            <createSourcesJar>${shadeSourcesJar}</createSourcesJar>
-                            <artifactSet>
-                                <includes>
-                                    <include>org.spigotmc:minecraft-server</include>
-                                </includes>
-                            </artifactSet>
-                            <relocations>
-                                <relocation>
-                                    <pattern>org.bukkit.craftbukkit</pattern>
-                                    <shadedPattern>org.bukkit.craftbukkit.v${minecraft_version}</shadedPattern>
-                                    <excludes>
-                                        <exclude>org.bukkit.craftbukkit.bootstrap.*</exclude>
-                                        <exclude>org.bukkit.craftbukkit.Main*</exclude>
-                                    </excludes>
-                                </relocation>
-                            </relocations>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>net.md-5</groupId>
-                <artifactId>specialsource-maven-plugin</artifactId>
-                <version>2.0.3</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>remap</goal>
-                        </goals>
-                        <id>remap-members</id>
-                        <configuration>
-                            <useProjectDependencies>false</useProjectDependencies>
-                            <logFile>${project.build.directory}/server.txt</logFile>
-                            <srgIn>org.spigotmc:minecraft-server:${project.version}:csrg:maps-spigot-members</srgIn>
-                            <reverse>true</reverse>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>net.nicoulaj.maven.plugins</groupId>
-                <artifactId>checksum-maven-plugin</artifactId>
-                <version>1.11</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>artifacts</goal>
-                            <goal>dependencies</goal>
-                        </goals>
-                        <configuration>
-                            <algorithms>
-                                <algorithm>SHA-256</algorithm>
-                            </algorithms>
-                            <quiet>true</quiet>
-                            <scopes>
-                                <scope>compile</scope>
-                                <scope>runtime</scope>
-                            </scopes>
-                            <shasumSummary>true</shasumSummary>
-                            <transitive>true</transitive>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.7.1</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                        <configuration>
-                            <archive>
-                                <manifest>
-                                    <addDefaultEntries>false</addDefaultEntries>
-                                </manifest>
-                                <manifestEntries>
-                                    <Main-Class>org.bukkit.craftbukkit.bootstrap.Main</Main-Class>
-                                </manifestEntries>
-                            </archive>
-                            <attach>false</attach>
-                            <descriptors>
-                                <descriptor>${project.basedir}/src/assembly/bootstrap.xml</descriptor>
-                            </descriptors>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.13.0</version>
-                <configuration>
-                    <!-- default changed with version 3.11.0 -->
-                    <showWarnings>false</showWarnings>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.2.5</version>
-                <configuration>
-                    <workingDirectory>${basedir}/target/test-server</workingDirectory>
-                    <reuseForks>false</reuseForks>
-                    <includes>
-                        <include>**/*TestSuite.java</include>
-                    </includes>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <profiles>
-        <profile>
-            <id>shadeSourcesJar</id>
-            <properties>
-                <shadeSourcesJar>true</shadeSourcesJar>
-                <shadeSourcesContent>true</shadeSourcesContent>
-            </properties>
-        </profile>
-        <profile>
-            <id>development</id>
-            <properties>
-                <skipTests>false</skipTests>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <version>3.3.1</version>
-                        <executions>
-                            <execution>
-                                <phase>test-compile</phase>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <configLocation>checkstyle.xml</configLocation>
-                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
-                        </configuration>
-                        <dependencies>
-                            <dependency>
-                                <groupId>com.puppycrawl.tools</groupId>
-                                <artifactId>checkstyle</artifactId>
-                                <version>8.45.1</version>
-                            </dependency>
-                        </dependencies>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>remapped</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>net.md-5</groupId>
-                        <artifactId>specialsource-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>remap</goal>
-                                </goals>
-                                <id>remap-obf</id>
-                                <configuration>
-                                    <useProjectDependencies>false</useProjectDependencies>
-                                    <srgIn>org.spigotmc:minecraft-server:${project.version}:csrg:maps-spigot</srgIn>
-                                    <reverse>true</reverse>
-                                    <remappedArtifactAttached>true</remappedArtifactAttached>
-                                    <remappedClassifierName>remapped-obf</remappedClassifierName>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>remap</goal>
-                                </goals>
-                                <id>remap-mojang</id>
-                                <configuration>
-                                    <useProjectDependencies>false</useProjectDependencies>
-                                    <inputFile>${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar</inputFile>
-                                    <srgIn>org.spigotmc:minecraft-server:${project.version}:txt:maps-mojang</srgIn>
-                                    <remappedArtifactAttached>true</remappedArtifactAttached>
-                                    <remappedClassifierName>remapped-mojang</remappedClassifierName>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-</project>