diff --git a/gradle.properties b/gradle.properties index 876d741fa..723fede32 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.21.6-R0.1-SNAPSHOT mcVersion = 1.21.6-rc1 -paperCommit = a5f209c60ebc70189918deda6b00ad152b11b3a0 +paperCommit = 16fd59e06d232a648dd11e01635e320936eca300 org.gradle.configuration-cache = true org.gradle.caching = true diff --git a/purpur-api/build.gradle.kts.patch b/purpur-api/build.gradle.kts.patch index 7dc5f4924..755a5bb4e 100644 --- a/purpur-api/build.gradle.kts.patch +++ b/purpur-api/build.gradle.kts.patch @@ -28,7 +28,7 @@ } } } -@@ -165,16 +_,18 @@ +@@ -165,8 +_,10 @@ val services = objects.newInstance() tasks.withType { @@ -40,30 +40,6 @@ options.use() options.isDocFilesSubDirs = true options.links( - "https://guava.dev/releases/33.3.1-jre/api/docs/", -- "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", -- "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", -- "https://javadoc.io/doc/org.joml/joml/1.10.8/", -- "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0", -+ // "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", -+ // "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", -+ // "https://javadoc.io/doc/org.joml/joml/1.10.8/", -+ // "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0", - "https://jspecify.dev/docs/api/", - "https://jd.advntr.dev/api/$adventureVersion/", - "https://jd.advntr.dev/key/$adventureVersion/", -@@ -183,9 +_,9 @@ - "https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/", - "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", - "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", -- "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", -+ // "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", - "https://logging.apache.org/log4j/2.x/javadoc/log4j-api/", -- "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3", -+ // "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3", - ) - options.tags("apiNote:a:API Note:") - @@ -199,11 +_,11 @@ } diff --git a/purpur-api/paper-patches/files/src/main/java/org/bukkit/entity/Villager.java.patch b/purpur-api/paper-patches/files/src/main/java/org/bukkit/entity/Villager.java.patch index 083a0d057..55d5c2802 100644 --- a/purpur-api/paper-patches/files/src/main/java/org/bukkit/entity/Villager.java.patch +++ b/purpur-api/paper-patches/files/src/main/java/org/bukkit/entity/Villager.java.patch @@ -1,9 +1,9 @@ --- a/src/main/java/org/bukkit/entity/Villager.java +++ b/src/main/java/org/bukkit/entity/Villager.java -@@ -391,4 +_,13 @@ - * reputation regardless of its impact and the player associated. +@@ -408,4 +_,13 @@ + * Demand is still updated even if all events are canceled. */ - public void clearReputations(); + public void restock(); + + // Purpur start + /** diff --git a/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch b/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch index dcc55445d..d83757e95 100644 --- a/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch +++ b/purpur-server/minecraft-patches/features/0003-Barrels-and-enderchests-6-rows.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 803d022cb325c850f830e2b52cd1917d230807de..5a31e11e72e80e5a5aef211a45370fb293dfd144 100644 +index cc26f97e1e72eb077dc60691dadbcd5a52235c0d..1f03fb4c45f0cc97492d3821245cc4c758d258e1 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -1036,6 +1036,27 @@ public abstract class PlayerList { +@@ -1037,6 +1037,27 @@ public abstract class PlayerList { player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); } // Paper - Add sendOpLevel API diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/npc/Villager.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/npc/Villager.java.patch index 29dada8c0..be471e893 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/npc/Villager.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/npc/Villager.java.patch @@ -104,7 +104,7 @@ @@ -505,7 +_,7 @@ - private void updateDemand() { + public void updateDemand() { for (MerchantOffer merchantOffer : this.getOffers()) { - merchantOffer.updateDemand(); + merchantOffer.updateDemand(this.level().purpurConfig.villagerMinimumDemand); // Purpur - Configurable minimum demand for trades diff --git a/purpur-server/paper-patches/features/0005-API-for-any-mob-to-burn-daylight.patch b/purpur-server/paper-patches/features/0005-API-for-any-mob-to-burn-daylight.patch index f9b172eb8..17ca1fc7f 100644 --- a/purpur-server/paper-patches/features/0005-API-for-any-mob-to-burn-daylight.patch +++ b/purpur-server/paper-patches/features/0005-API-for-any-mob-to-burn-daylight.patch @@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index df23fbae231eca494131bf7ec78924669cd5e03d..834389b78d9342e96b3473c9cb6e40ca6cd4e46f 100644 +index d00238a0f39c5b19575cd0463b0b5da1f1db1a2e..55ae7d0a5b36ff10880d4e5fb1bb7f7724a743fd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -120,6 +120,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -24,10 +24,10 @@ index df23fbae231eca494131bf7ec78924669cd5e03d..834389b78d9342e96b3473c9cb6e40ca Preconditions.checkArgument(entity != null, "Unknown entity"); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 78846e0abe010997b6a5da04f2be4b5ffba5dd0a..5f30621d717bd0728ddc074072ab7a02c487b253 100644 +index 69d92e708bac7925ff30e403e94200236536b670..fc4fa99a993a017676da2be3cb254399d421bce1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1165,4 +1165,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1167,4 +1167,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public CombatTracker getCombatTracker() { return this.getHandle().getCombatTracker().paperCombatTracker; } diff --git a/purpur-server/paper-patches/files/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java.patch b/purpur-server/paper-patches/files/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java.patch index 68250b56b..6bcd01ff5 100644 --- a/purpur-server/paper-patches/files/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java.patch @@ -1,13 +1,14 @@ --- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java -@@ -27,6 +_,10 @@ - static { - // TODO these kinda should be checked on each release, in case obfuscation changes - deobfuscationMap.put("abstract_skeleton_1", "abstract_skeleton_melee"); -+ // Purpur start - Add option to disable zombie aggressiveness towards villagers -+ deobfuscationMap.put("zombie_1", "zombie_attack_villager"); -+ deobfuscationMap.put("drowned_1", "drowned_attack_villager"); -+ // Purpur end - Add option to disable zombie aggressiveness towards villagers +@@ -143,6 +_,11 @@ + private static final Map NESTED_CLASS_NAMES = Util.make(new HashMap<>(), map -> { + map.put("AbstractSkeleton$1", "AbstractSkeletonMelee"); - ignored.add("goal_selector_1"); - ignored.add("goal_selector_2"); ++ // Purpur start - Add option to disable zombie aggressiveness towards villagers ++ map.put("Zombie$1", "ZombieAttackVillager"); ++ map.put("Drowned$1", "DrownedAttackVillager"); ++ // Purpur end - Add option to disable zombie aggressiveness towards villagers ++ + // remove duplicate + map.put("TraderLlama$TraderLlamaDefendWanderingTraderGoal", "TraderLlamaDefendWanderingTraderGoal"); + map.put("AbstractIllager$RaiderOpenDoorGoal", "RaiderOpenDoorGoal"); diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java.patch index a73b21afb..fa1f1bdc9 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -513,7 +_,7 @@ +@@ -514,7 +_,7 @@ net.minecraft.server.level.ServerPlayer nmsKiller = killer == null ? null : ((CraftPlayer) killer).getHandle(); this.getHandle().setLastHurtByMob(nmsKiller); if (nmsKiller != null) { diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java.patch index d7511caa8..88d5d7054 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java.patch @@ -1,8 +1,8 @@ --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -@@ -380,4 +_,11 @@ - public void clearReputations() { - getHandle().getGossips().gossips.clear(); +@@ -258,4 +_,11 @@ + public void restock() { + getHandle().restock(); } + + // Purpur start - Lobotomize stuck villagers diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java.patch index 23e754ef4..c9d036471 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java -@@ -91,6 +_,18 @@ +@@ -90,6 +_,18 @@ this.getHandle().setSoundVariant(CraftSoundVariant.bukkitToMinecraftHolder(soundVariant)); } @@ -16,6 +16,6 @@ + } + // Purpur end - Configurable chance for wolves to spawn rabid + - public static class CraftVariant implements Variant, Handleable { + public static class CraftVariant extends HolderableBase implements Variant { public static Variant minecraftToBukkit(WolfVariant minecraft) { diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java.patch index 32ef5cc86..2caad1ea9 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -491,7 +_,7 @@ +@@ -481,7 +_,7 @@ @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {