9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-27 02:49:19 +00:00

Updated Upstream (Purpur)

Upstream has released updates that appear to apply and compile correctly

Purpur Changes:
PurpurMC/Purpur@b7f79d4 Updated Upstream (Paper)
PurpurMC/Purpur@da0a61d [ci skip] move log4j plugin into proper location
PurpurMC/Purpur@1d0d781 fix rambar nbt value not being saved to player, closes #1632
PurpurMC/Purpur@a9bcd9f fix villager not restocking while lobotomized, closes #1629
PurpurMC/Purpur@9d1d9fd [ci skip] inline import
PurpurMC/Purpur@1b5ab0c Updated Upstream (Paper)
PurpurMC/Purpur@4b74604 [ci skip] enable caching (#1634)
This commit is contained in:
Dreeam
2025-01-19 05:43:02 -05:00
parent 840062900f
commit daf447de8b
13 changed files with 66 additions and 87 deletions

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: dd4143984219cea8440913b7918322b5ba59265a
Commit: 4b74604c1f9f84e87f91dd390c83850f088a736b
Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "co/aikar/timings/TimedEventExecutor.java.patch"
@@ -20,6 +20,37 @@ Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "org/bukkit/plugin/java/LibraryLoader.java.patch"
* "org/spigotmc/CustomTimingsHandler.java.patch"
diff --git a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index f15a7b4471cd31a487467ec7ecf7a186fa887a51..f09fefe6821d8b2b8c8f055985bacc2e042ca569 100644
--- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -441,6 +441,26 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);
+ // Purpur start - Ridables
+ GoalKey<Mob> MOB_HAS_RIDER = GoalKey.of(Mob.class, NamespacedKey.minecraft("has_rider"));
+ GoalKey<AbstractHorse> HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider"));
+ GoalKey<Llama> LLAMA_HAS_RIDER = GoalKey.of(Llama.class, NamespacedKey.minecraft("llama_has_rider"));
+ // Purpur end - Ridables
+ // Purpur start - Phantoms attracted to crystals and crystals shoot phantoms
+ GoalKey<Phantom> FIND_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal"));
+ GoalKey<Phantom> ORBIT_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal"));
+ // Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
+ // Purpur start - Add option to disable zombie aggressiveness towards villagers when lagging
+ GoalKey<Drowned> DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager"));
+ GoalKey<Zombie> ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager"));
+ // Purpur end - Add option to disable zombie aggressiveness towards villagers when lagging
+ // Purpur start - Configurable chance for wolves to spawn rabid
+ GoalKey<Wolf> AVOID_RABID_WOLF = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolf"));
+ // Purpur end - Configurable chance for wolves to spawn rabid
+ // Purpur start - Iron golem poppy calms anger
+ GoalKey<IronGolem> RECEIVE_FLOWER = GoalKey.of(IronGolem.class, NamespacedKey.minecraft("receive_flower"));
+ // Purpur end - Iron golem poppy calms anger
+
private static <T extends Mob> GoalKey<T> create(final String key, final Class<T> type) {
return GoalKey.of(type, NamespacedKey.minecraft(key));
}
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java
index 184ed5a41a138d14757f12acd4ec3113cb165b72..2240bb704dd9fa62836efa1b3d6ec4d7744d9b1d 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java

View File

@@ -1,41 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Github Actions <no-reply@github.com>
Date: Thu, 16 Jan 2025 11:21:11 +0000
Subject: [PATCH] Purpur generated-api Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: dd4143984219cea8440913b7918322b5ba59265a
diff --git a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index f15a7b4471cd31a487467ec7ecf7a186fa887a51..f09fefe6821d8b2b8c8f055985bacc2e042ca569 100644
--- a/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -441,6 +441,26 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);
+ // Purpur start - Ridables
+ GoalKey<Mob> MOB_HAS_RIDER = GoalKey.of(Mob.class, NamespacedKey.minecraft("has_rider"));
+ GoalKey<AbstractHorse> HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider"));
+ GoalKey<Llama> LLAMA_HAS_RIDER = GoalKey.of(Llama.class, NamespacedKey.minecraft("llama_has_rider"));
+ // Purpur end - Ridables
+ // Purpur start - Phantoms attracted to crystals and crystals shoot phantoms
+ GoalKey<Phantom> FIND_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal"));
+ GoalKey<Phantom> ORBIT_CRYSTAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal"));
+ // Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
+ // Purpur start - Add option to disable zombie aggressiveness towards villagers when lagging
+ GoalKey<Drowned> DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager"));
+ GoalKey<Zombie> ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager"));
+ // Purpur end - Add option to disable zombie aggressiveness towards villagers when lagging
+ // Purpur start - Configurable chance for wolves to spawn rabid
+ GoalKey<Wolf> AVOID_RABID_WOLF = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolf"));
+ // Purpur end - Configurable chance for wolves to spawn rabid
+ // Purpur start - Iron golem poppy calms anger
+ GoalKey<IronGolem> RECEIVE_FLOWER = GoalKey.of(IronGolem.class, NamespacedKey.minecraft("receive_flower"));
+ // Purpur end - Iron golem poppy calms anger
+
private static <T extends Mob> GoalKey<T> create(final String key, final Class<T> type) {
return GoalKey.of(type, NamespacedKey.minecraft(key));
}

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: dd4143984219cea8440913b7918322b5ba59265a
Commit: 4b74604c1f9f84e87f91dd390c83850f088a736b
Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "net/minecraft/CrashReport.java.patch"
@@ -118,18 +118,10 @@ index c2b7164a1395842ab95428540782eeda4c7960b0..59c70c567051bc7dba0d308387352d1b
boolean flag = this.source.acceptsSuccess() && !this.silent;
boolean flag1 = allowLogging && this.source.shouldInformAdmins() && !this.silent;
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
index 60cfa713ffc778d0cd11dfb2ea1a52db806119b2..a5cc373dbe034560865e196ce12a8361932ea085 100644
index 60cfa713ffc778d0cd11dfb2ea1a52db806119b2..967c01f9e40c2c73f266de281425c918472cf66e 100644
--- a/net/minecraft/commands/Commands.java
+++ b/net/minecraft/commands/Commands.java
@@ -135,6 +135,7 @@ import net.minecraft.util.profiling.jfr.JvmProfiler;
import net.minecraft.world.flag.FeatureFlagSet;
import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.level.GameRules;
+import org.bukkit.event.player.PlayerCommandSendEvent;
import org.slf4j.Logger;
public class Commands {
@@ -213,8 +214,8 @@ public class Commands {
@@ -213,8 +213,8 @@ public class Commands {
JfrCommand.register(this.dispatcher);
}
@@ -140,7 +132,7 @@ index 60cfa713ffc778d0cd11dfb2ea1a52db806119b2..a5cc373dbe034560865e196ce12a8361
RaidCommand.register(this.dispatcher, context);
DebugPathCommand.register(this.dispatcher);
DebugMobSpawningCommand.register(this.dispatcher);
@@ -242,6 +243,14 @@ public class Commands {
@@ -242,6 +242,14 @@ public class Commands {
StopCommand.register(this.dispatcher);
TransferCommand.register(this.dispatcher);
WhitelistCommand.register(this.dispatcher);
@@ -914,7 +906,7 @@ index e52d976f0c1c5eacdc8608b204c3a178b9b17446..a13aa7b896a998975d2ee14eafb86a85
}
// Paper end - Fix merchant inventory not closing on entity removal
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index e56e930df980613a13f92d771f1036eba82b1d19..b7829a91a7ef79706ec6d90b8b2673fd369b9931 100644
index e56e930df980613a13f92d771f1036eba82b1d19..1173deb1aeb5abc225e7b5914cc3c325afdfab16 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -392,6 +392,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -945,7 +937,7 @@ index e56e930df980613a13f92d771f1036eba82b1d19..b7829a91a7ef79706ec6d90b8b2673fd
this.saveEnderPearls(compound);
+ compound.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur - Implement TPSBar
+ compound.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur - Add compass command
+ compound.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur - Add rambar command
+ compound.putBoolean("Purpur.RamBar", this.ramBar); // Purpur - Add rambar command
}
private void saveParentVehicle(CompoundTag tag) {
@@ -12232,7 +12224,7 @@ index e6d368bc601357cfca694ce328c8e6e47491f3b5..489613b31fe47a0bd43fafddbeab6bb6
}
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9b7b17e26 100644
index a02cd34bcd643c7abad3a355043cb88d035143a0..e8e2848c12e3cf2ad86fc3bd18f03182ee291775 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -179,6 +179,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -12366,7 +12358,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
}
public boolean assignProfessionWhenSpawned() {
@@ -290,10 +389,18 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -290,12 +389,21 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
// Paper start - EAR 2
this.customServerAiStep(level, false);
}
@@ -12386,8 +12378,11 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
+ if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - Ridables
this.getBrain().tick(level, this); // Paper - EAR 2
}
+ else if (this.isLobotomized && shouldRestock()) restock(); // Purpur - Lobotomize stuck villagers
// Pufferfish end
@@ -351,7 +458,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
if (this.assignProfessionWhenSpawned) {
this.assignProfessionWhenSpawned = false;
@@ -351,7 +459,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return super.mobInteract(player, hand);
} else if (this.isBaby()) {
this.setUnhappy();
@@ -12396,7 +12391,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
} else {
if (!this.level().isClientSide) {
boolean isEmpty = this.getOffers().isEmpty();
@@ -364,9 +471,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -364,9 +472,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
if (isEmpty) {
@@ -12410,7 +12405,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
this.startTrading(player);
}
@@ -505,7 +615,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -505,7 +616,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
private void updateDemand() {
for (MerchantOffer merchantOffer : this.getOffers()) {
@@ -12419,7 +12414,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
}
}
@@ -709,7 +819,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -709,7 +820,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public boolean canBreed() {
@@ -12428,7 +12423,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
}
private boolean hungry() {
@@ -878,7 +988,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -878,7 +989,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public boolean hasFarmSeeds() {
@@ -12437,7 +12432,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
}
@Override
@@ -930,6 +1040,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -930,6 +1041,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public void spawnGolemIfNeeded(ServerLevel serverLevel, long gameTime, int minVillagerAmount) {
@@ -12445,7 +12440,7 @@ index a02cd34bcd643c7abad3a355043cb88d035143a0..347affae3cc18e01474734d2da2699c9
if (this.wantsToSpawnGolem(gameTime)) {
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
List<Villager> entitiesOfClass = serverLevel.getEntitiesOfClass(Villager.class, aabb);
@@ -1003,6 +1114,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1003,6 +1115,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public void startSleeping(BlockPos pos) {

View File

@@ -298,18 +298,6 @@ index 242b2545b6082f567d0bb7900ef06ded3c0fdcdd..85306d8f0fba3b5dcb244df54c949b45
this.getBrain().tick(level, this);
PiglinAi.updateActivity(this);
super.customServerAiStep(level);
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 347affae3cc18e01474734d2da2699c9b7b17e26..5dbf28c15f828505d42dc31c1a2185e01a7542c1 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -404,6 +404,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getBrain().tick(level, this); // Paper - EAR 2
}
// Pufferfish end
+ else if (this.isLobotomized && shouldRestock()) restock(); // Leaf - Purpur - Lobotomize stuck villagers
if (this.assignProfessionWhenSpawned) {
this.assignProfessionWhenSpawned = false;
}
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
index bd93ee97982038789114f17ee369208fc6413796..0b1263000f872431e44abfdd57134b6efe245641 100644
--- a/net/minecraft/world/entity/projectile/Projectile.java

View File

@@ -7,10 +7,10 @@ AFK command & command cooldown
AFK title message
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
index a5cc373dbe034560865e196ce12a8361932ea085..d03a6dc74877bc08b170be5add061270dc46549b 100644
index 967c01f9e40c2c73f266de281425c918472cf66e..d8464f77c54f547161356b78e76429923937b4a7 100644
--- a/net/minecraft/commands/Commands.java
+++ b/net/minecraft/commands/Commands.java
@@ -243,6 +243,7 @@ public class Commands {
@@ -242,6 +242,7 @@ public class Commands {
StopCommand.register(this.dispatcher);
TransferCommand.register(this.dispatcher);
WhitelistCommand.register(this.dispatcher);
@@ -19,7 +19,7 @@ index a5cc373dbe034560865e196ce12a8361932ea085..d03a6dc74877bc08b170be5add061270
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 08578d7398658d226318a28324a1eae0d4453add..09c9ca038f359372bda3a3d8b743d497a530ce97 100644
index 2da6609ab8398c5c537e9065b3a82693f43200e2..9db63f122539134003a5955aabae970645131c1c 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -2460,6 +2460,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -142,7 +142,7 @@ index 465e34eb906ec78f49ff1183b635e77a1fcaa758..39b01b3d96d03bca4c33eaddfc54edef
this.cserver.getPluginManager().callEvent(event);
command = event.getMessage().substring(1);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 015c4480a60acc252342d58aa129350ab36dc29b..e4c3819de8af08f36cd30fafb6ce859005c5cb43 100644
index 65f943dbbe6e30f0a299fdbd73b94ca60d4f406c..7d7343d4e2c206daf77a61050f2f4c229dd042cd 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -667,6 +667,7 @@ public abstract class PlayerList {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable unknown command message
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
index d03a6dc74877bc08b170be5add061270dc46549b..76f26f4fb93dd84a9b15ea662eeeadbc44a99ac5 100644
index d8464f77c54f547161356b78e76429923937b4a7..a59162764f141d9bb88c7084c66661f14de7ad57 100644
--- a/net/minecraft/commands/Commands.java
+++ b/net/minecraft/commands/Commands.java
@@ -390,31 +390,9 @@ public class Commands {
@@ -389,31 +389,9 @@ public class Commands {
// Paper start - Add UnknownCommandEvent
final net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text();
// source.sendFailure(ComponentUtils.fromMessage(var7.getRawMessage()));
@@ -42,7 +42,7 @@ index d03a6dc74877bc08b170be5add061270dc46549b..76f26f4fb93dd84a9b15ea662eeeadbc
org.bukkit.Bukkit.getServer().getPluginManager().callEvent(event);
if (event.message() != null) {
source.sendFailure(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.message()), false);
@@ -677,6 +655,86 @@ public class Commands {
@@ -676,6 +654,86 @@ public class Commands {
};
}

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: dd4143984219cea8440913b7918322b5ba59265a
Commit: 4b74604c1f9f84e87f91dd390c83850f088a736b
Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "Rebrand.patch"

View File

@@ -1,4 +1,10 @@
# TODOs
# Gale TODOs
- [ ] Do a benchmark for `Remove streams and iterators from range check`, getEffectiveRange in ChunkMap
- [ ] Do benchmark for reduce entity fluid lookup on 1.21.3
- [ ] Check gale force load chunk option whether need or whether need to change.
- [ ] check reduce array allocation, whether need do clone for some reference, to prevent potential issues.. or add debug command for debugging?.
# Leaf TODOs
- [ ] Check Fix MC-65198 fix
- [ ] refactor leaves protocol manager opt and pr it.
- [ ] check multithreaded tracker, that moonrise change
@@ -15,4 +21,4 @@
- [ ] 检查注释都应该start end - patch名或者合理注释
- [ ] leaf at (public, final)
- [ ] 格式调整, 变量名调整检查
- [ ] 类中新增的方法全部转private
- [ ] 类中新增的方法全部转private