2021-06-11 14:31:17 +02:00
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
2021-06-11 14:33:08 +02:00
Subject: [PATCH] Build system changes
2021-06-11 14:31:17 +02:00
2023-09-15 20:03:42 +02:00
== AT ==
public net.minecraft.server.packs.VanillaPackResourcesBuilder safeGetPath(Ljava/net/URI;)Ljava/nio/file/Path;
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2021-06-11 14:31:17 +02:00
diff --git a/build.gradle.kts b/build.gradle.kts
2024-04-05 02:12:05 +02:00
index 74849d7b20e3c3831a6a6c3715a6e875d6ff8a48..ff9e7b4c4354d4475559213cdaa01728601859fa 100644
2021-06-11 14:31:17 +02:00
--- a/build.gradle.kts
+++ b/build.gradle.kts
2024-01-14 10:46:04 +01:00
@@ -9,9 +9,7 @@ plugins {
2021-06-11 14:31:17 +02:00
dependencies {
2021-11-26 07:08:46 +01:00
implementation(project(":paper-api"))
2021-06-11 14:31:17 +02:00
implementation("jline:jline:2.12.1")
2022-12-07 18:08:55 +01:00
- implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") {
2021-06-11 14:31:17 +02:00
- exclude(group = "org.apache.logging.log4j", module = "log4j-api")
- }
2022-12-07 18:08:55 +01:00
+ implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion
2024-01-14 10:46:04 +01:00
implementation("org.ow2.asm:asm-commons:9.5")
2022-06-07 20:12:34 +02:00
implementation("commons-lang:commons-lang:2.6")
2023-10-03 13:55:12 +02:00
runtimeOnly("org.xerial:sqlite-jdbc:3.42.0.1")
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10277)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
9a80d38c SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-722: Add EntityRemoveEvent
258086d9 SPIGOT-7417, PR-967: Add Sign#getTargetSide and Sign#getAllowedEditor
ffaba051 SPIGOT-7584: Add missing Tag.ITEMS_NON_FLAMMABLE_WOOD
CraftBukkit Changes:
98b6c1ac7 SPIGOT-7589 Fix NullPointerException when bans expire
a2736ddb0 SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-1008: Add EntityRemoveEvent
5bf12cb89 SPIGOT-7565: Throw a more descriptive error message when a developer tries to spawn an entity from a CraftBukkit class
76d95fe7e SPIGOT-7417, PR-1343: Add Sign#getTargetSide and Sign#getAllowedEditor
Spigot Changes:
e9ec5485 Rebuild patches
f1b62e0c Rebuild patches
2024-02-23 14:37:33 +01:00
@@ -36,6 +34,7 @@ tasks.jar {
2021-11-25 00:26:29 +01:00
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
+ val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#10277)
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
9a80d38c SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-722: Add EntityRemoveEvent
258086d9 SPIGOT-7417, PR-967: Add Sign#getTargetSide and Sign#getAllowedEditor
ffaba051 SPIGOT-7584: Add missing Tag.ITEMS_NON_FLAMMABLE_WOOD
CraftBukkit Changes:
98b6c1ac7 SPIGOT-7589 Fix NullPointerException when bans expire
a2736ddb0 SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-1008: Add EntityRemoveEvent
5bf12cb89 SPIGOT-7565: Throw a more descriptive error message when a developer tries to spawn an entity from a CraftBukkit class
76d95fe7e SPIGOT-7417, PR-1343: Add Sign#getTargetSide and Sign#getAllowedEditor
Spigot Changes:
e9ec5485 Rebuild patches
f1b62e0c Rebuild patches
2024-02-23 14:37:33 +01:00
@@ -44,6 +43,9 @@ tasks.jar {
2021-11-25 00:26:29 +01:00
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
"Specification-Vendor" to "Bukkit Team",
+ "Git-Branch" to gitBranch, // Paper
+ "Git-Commit" to gitHash, // Paper
2022-05-31 07:18:45 +02:00
+ "CraftBukkit-Package-Version" to craftbukkitPackageVersion, // Paper
2021-11-25 00:26:29 +01:00
)
for (tld in setOf("net", "com", "org")) {
attributes("$tld/bukkit", "Sealed" to true)
2024-04-05 02:12:05 +02:00
@@ -77,6 +79,17 @@ tasks.shadowJar {
2022-06-28 00:41:59 +02:00
}
}
+// Paper start
+val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) {
+ badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;")
+ jarToScan.set(tasks.shadowJar.flatMap { it.archiveFile })
+ classpath.from(configurations.compileClasspath)
+}
+tasks.check {
+ dependsOn(scanJar)
+}
+// Paper end
+
tasks.test {
exclude("org/bukkit/craftbukkit/inventory/ItemStack*Test.class")
2023-09-25 01:05:05 +02:00
useJUnitPlatform()
2024-04-05 02:12:05 +02:00
@@ -138,4 +151,5 @@ tasks.registerRunTask("runReobf") {
2023-09-15 20:03:42 +02:00
tasks.registerRunTask("runDev") {
description = "Spin up a non-relocated Mojang-mapped test server"
2024-04-05 02:12:05 +02:00
classpath(sourceSets.main.map { it.runtimeClasspath })
+ jvmArgs("-DPaper.pushPaperAssetsRoot=true")
2023-09-15 20:03:42 +02:00
}
diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java
2023-09-22 19:59:56 +02:00
index 68e3d54c79924d72b22eb3bc142ff47aa1700895..d3300e43523429fdd0e61c5aa9aed2e6bc78e07e 100644
2023-09-15 20:03:42 +02:00
--- a/src/main/java/net/minecraft/resources/ResourceLocation.java
+++ b/src/main/java/net/minecraft/resources/ResourceLocation.java
@@ -26,6 +26,7 @@ public class ResourceLocation implements Comparable<ResourceLocation> {
public static final char NAMESPACE_SEPARATOR = ':';
public static final String DEFAULT_NAMESPACE = "minecraft";
public static final String REALMS_NAMESPACE = "realms";
+ public static final String PAPER_NAMESPACE = "paper"; // Paper
private final String namespace;
private final String path;
2024-04-05 02:12:05 +02:00
diff --git a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java
index 1b65823e6c2070761dd08ce801268e95dad13065..978dd399430ae98d54fc4805800aa0214d4034e3 100644
--- a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java
+++ b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java
@@ -141,6 +141,15 @@ public class VanillaPackResourcesBuilder {
2023-09-15 20:03:42 +02:00
2024-04-05 02:12:05 +02:00
public VanillaPackResourcesBuilder applyDevelopmentConfig() {
developmentConfig.accept(this);
+ if (Boolean.getBoolean("Paper.pushPaperAssetsRoot")) {
+ try {
+ this.pushAssetPath(net.minecraft.server.packs.PackType.SERVER_DATA, net.minecraft.server.packs.VanillaPackResourcesBuilder.safeGetPath(java.util.Objects.requireNonNull(
+ // Important that this is a patched class
+ VanillaPackResourcesBuilder.class.getResource("/data/.paperassetsroot"), "Missing required .paperassetsroot file").toURI()).getParent());
+ } catch (java.net.URISyntaxException | IOException ex) {
+ throw new RuntimeException(ex);
2023-09-15 20:03:42 +02:00
+ }
2024-04-05 02:12:05 +02:00
+ }
return this;
}
2023-09-15 20:03:42 +02:00
diff --git a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java
2023-12-05 19:38:29 +01:00
index a2a8bce29ec5540de89095574dfdc0ca9b17bbd3..d92cd89373f8373c367ce422328b9836de09096d 100644
2023-09-15 20:03:42 +02:00
--- a/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java
+++ b/src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java
2023-09-21 19:39:51 +02:00
@@ -32,7 +32,7 @@ public class ServerPacksSource extends BuiltInPackSource {
2023-09-15 20:03:42 +02:00
2023-09-21 19:39:51 +02:00
@VisibleForTesting
public static VanillaPackResources createVanillaPackSource() {
2023-09-15 20:03:42 +02:00
- return (new VanillaPackResourcesBuilder()).setMetadata(BUILT_IN_METADATA).exposeNamespace("minecraft").applyDevelopmentConfig().pushJarResources().build();
+ return (new VanillaPackResourcesBuilder()).setMetadata(BUILT_IN_METADATA).exposeNamespace("minecraft", ResourceLocation.PAPER_NAMESPACE).applyDevelopmentConfig().pushJarResources().build(); // Paper
}
@Override
2021-06-11 14:31:17 +02:00
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
2024-03-09 00:52:00 +01:00
index dc1021186ad4c4db26fb498e58ddec06f8bc1cf6..96210dd54e8ff6dc0375a8d03bf14fec1b26aaeb 100644
2021-06-11 14:31:17 +02:00
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
2023-06-06 11:09:19 +02:00
@@ -209,7 +209,7 @@ public class Main {
2021-06-11 14:31:17 +02:00
}
2022-07-29 09:11:11 +02:00
if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
2021-06-11 14:31:17 +02:00
- Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);
2021-07-12 08:24:48 +02:00
+ Date buildDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").parse(Main.class.getPackage().getImplementationVendor()); // Paper
2021-06-11 14:31:17 +02:00
Calendar deadline = Calendar.getInstance();
2024-03-09 00:52:00 +01:00
deadline.add(Calendar.DAY_OF_YEAR, -28);
2021-06-11 14:31:17 +02:00
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 93046379d0cefd5d3236fc59e698809acdc18f80..774556a62eb240da42e84db4502e2ed43495be17 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/io.papermc.paper/paper-api/pom.properties");
Properties properties = new Properties();
if (stream != null) {
2023-09-15 20:03:42 +02:00
diff --git a/src/main/resources/data/.paperassetsroot b/src/main/resources/data/.paperassetsroot
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
2024-04-05 02:12:05 +02:00
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
index a1c2c702cc6b5d949df62b5ecf4cc62b8e4e8f77..0619361adf57fdc41c4ecb09d1d6a5c862a85f89 100644
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
@@ -43,6 +43,7 @@ public abstract class AbstractTestingBase {
public static final Registry<Biome> BIOMES;
static {
+ System.setProperty("Paper.pushPaperAssetsRoot", "true"); // Paper
SharedConstants.tryDetectVersion();
Bootstrap.bootStrap();
// Populate available packs