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-25 23:21:18 +02:00
|
|
|
index e69d74d671b1b73f32eac47d620ec364f419bd6c..9d425351f32739eb6c18ebc5c36545c1be21d436 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")
|
2024-04-23 19:02:08 +02:00
|
|
|
- implementation("org.apache.logging.log4j:log4j-iostreams:2.22.1") {
|
2021-06-11 14:31:17 +02:00
|
|
|
- exclude(group = "org.apache.logging.log4j", module = "log4j-api")
|
|
|
|
- }
|
2024-04-23 19:02:08 +02:00
|
|
|
+ implementation("org.apache.logging.log4j:log4j-iostreams:2.22.1") // Paper - remove exclusion
|
2024-04-06 21:53:39 +02:00
|
|
|
implementation("org.ow2.asm:asm-commons:9.7")
|
2022-06-07 20:12:34 +02:00
|
|
|
implementation("commons-lang:commons-lang:2.6")
|
2024-04-23 19:02:08 +02:00
|
|
|
runtimeOnly("org.xerial:sqlite-jdbc:3.45.3.0")
|
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-23 21:23:27 +02:00
|
|
|
@@ -60,6 +62,17 @@ tasks.shadowJar {
|
|
|
|
configurations = listOf(project.configurations.vanillaServer.get())
|
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-23 21:23:27 +02:00
|
|
|
@@ -121,4 +134,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
|
2024-04-23 19:02:08 +02:00
|
|
|
index 0e93817621bad5d69cf0f9f839d033c47c861457..0ad6d9d417193248f6a9df67f1d1a66cef3ff122 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
|
2024-04-23 19:02:08 +02:00
|
|
|
@@ -32,6 +32,7 @@ public class ResourceLocation implements Comparable<ResourceLocation> {
|
2023-09-15 20:03:42 +02:00
|
|
|
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
|
2024-04-23 19:02:08 +02:00
|
|
|
index 14fc03563daea531314c7ceba56dbb47884010ee..fcf95958ef659c7aa8e28026961fa1d6a5f8b28c 100644
|
2024-04-05 02:12:05 +02:00
|
|
|
--- a/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/packs/VanillaPackResourcesBuilder.java
|
2024-04-12 21:14:06 +02:00
|
|
|
@@ -138,6 +138,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
|
2024-04-26 17:33:00 +02:00
|
|
|
index a5e8713bc0fefae455b666ebf13c9529e7ba94e6..def8ed40ef732b512a07fe50449c77a860b97462 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
|
2024-04-23 19:02:08 +02:00
|
|
|
@@ -48,7 +48,7 @@ public class ServerPacksSource extends BuiltInPackSource {
|
2023-09-21 19:39:51 +02:00
|
|
|
public static VanillaPackResources createVanillaPackSource() {
|
2024-04-12 21:14:06 +02:00
|
|
|
return new VanillaPackResourcesBuilder()
|
|
|
|
.setMetadata(BUILT_IN_METADATA)
|
|
|
|
- .exposeNamespace("minecraft")
|
|
|
|
+ .exposeNamespace("minecraft", ResourceLocation.PAPER_NAMESPACE) // Paper
|
|
|
|
.applyDevelopmentConfig()
|
|
|
|
.pushJarResources()
|
2024-04-23 19:02:08 +02:00
|
|
|
.build(VANILLA_PACK_INFO);
|
2024-04-26 17:33:00 +02:00
|
|
|
@@ -68,7 +68,15 @@ public class ServerPacksSource extends BuiltInPackSource {
|
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
protected Pack createBuiltinPack(String fileName, Pack.ResourcesSupplier packFactory, Component displayName) {
|
|
|
|
- return Pack.readMetaAndCreate(createBuiltInPackLocation(fileName, displayName), packFactory, PackType.SERVER_DATA, FEATURE_SELECTION_CONFIG);
|
|
|
|
+ // Paper start - custom built-in pack
|
|
|
|
+ final PackLocationInfo info;
|
|
|
|
+ if ("paper".equals(fileName)) {
|
|
|
|
+ info = new PackLocationInfo(fileName, displayName, PackSource.BUILT_IN, Optional.empty());
|
|
|
|
+ } else {
|
|
|
|
+ info = createBuiltInPackLocation(fileName, displayName);
|
|
|
|
+ }
|
|
|
|
+ return Pack.readMetaAndCreate(info, packFactory, PackType.SERVER_DATA, FEATURE_SELECTION_CONFIG);
|
|
|
|
+ // Paper end - custom built-in pack
|
|
|
|
}
|
|
|
|
|
|
|
|
public static PackRepository createPackRepository(Path dataPacksPath, DirectoryValidator symlinkFinder) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/DataPackConfig.java b/src/main/java/net/minecraft/world/level/DataPackConfig.java
|
|
|
|
index 3338a2423275ffff000a61d49167bb631bac3e32..72b5095b286009e95c7cbc0a579d3527d4b88866 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/DataPackConfig.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/DataPackConfig.java
|
|
|
|
@@ -9,8 +9,8 @@ public class DataPackConfig {
|
|
|
|
public static final DataPackConfig DEFAULT = new DataPackConfig(ImmutableList.of("vanilla"), ImmutableList.of());
|
|
|
|
public static final Codec<DataPackConfig> CODEC = RecordCodecBuilder.create(
|
|
|
|
instance -> instance.group(
|
|
|
|
- Codec.STRING.listOf().fieldOf("Enabled").forGetter(settings -> settings.enabled),
|
|
|
|
- Codec.STRING.listOf().fieldOf("Disabled").forGetter(settings -> settings.disabled)
|
|
|
|
+ Codec.STRING.listOf().validate(DataPackConfig::ensureEnabled).fieldOf("Enabled").forGetter(settings -> settings.enabled), // Paper - ensure "paper" is always enabled
|
|
|
|
+ Codec.STRING.listOf().validate(DataPackConfig::ensureNotDisabled).fieldOf("Disabled").forGetter(settings -> settings.disabled) // Paper - ensure "paper" is always enabled
|
|
|
|
)
|
|
|
|
.apply(instance, DataPackConfig::new)
|
|
|
|
);
|
|
|
|
@@ -29,4 +29,13 @@ public class DataPackConfig {
|
|
|
|
public List<String> getDisabled() {
|
|
|
|
return this.disabled;
|
|
|
|
}
|
|
|
|
+ // Paper start - ensure "paper" datapack is always enabled
|
|
|
|
+ private static com.mojang.serialization.DataResult<List<String>> ensureEnabled(final List<String> enabled) {
|
|
|
|
+ return com.mojang.serialization.DataResult.success(enabled.contains("paper") ? enabled: io.papermc.paper.util.MCUtil.copyListAndAdd(enabled, "paper"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static com.mojang.serialization.DataResult<List<String>> ensureNotDisabled(final List<String> disabled) {
|
|
|
|
+ return com.mojang.serialization.DataResult.success(io.papermc.paper.util.MCUtil.copyListAndRemoveIf(disabled, "paper"::equals));
|
|
|
|
+ }
|
|
|
|
+ // Paper end - ensure "paper" datapack is always enabled
|
|
|
|
}
|
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-04-23 19:02:08 +02:00
|
|
|
index 5595eb892fa868508c45448942da65d7c11d49fd..4b8602b168f9dd386aa72b4e5d189c441c93542e 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
|
2024-04-23 19:02:08 +02:00
|
|
|
@@ -210,7 +210,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-04-23 19:02:08 +02:00
|
|
|
deadline.add(Calendar.DAY_OF_YEAR, -3);
|
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-26 17:33:00 +02:00
|
|
|
diff --git a/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta b/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta
|
|
|
|
new file mode 100644
|
|
|
|
index 0000000000000000000000000000000000000000..288fbe68c6053f40e72f0feedef0ae0fed10fa67
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta
|
|
|
|
@@ -0,0 +1,6 @@
|
|
|
|
+{
|
|
|
|
+ "pack": {
|
|
|
|
+ "description": "Built-in Paper Datapack",
|
|
|
|
+ "pack_format": 41
|
|
|
|
+ }
|
|
|
|
+}
|
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
|
2024-04-23 19:02:08 +02:00
|
|
|
index 1bdf0b2b8f8e6dace403695fece80ebb3dc9e039..544307fe34cbcfa286a7d7b30900ebea127d189e 100644
|
2024-04-05 02:12:05 +02:00
|
|
|
--- 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
|