From 20d9554b471c17cb55694a7999de8dc998082228 Mon Sep 17 00:00:00 2001 From: AlphaKR93 Date: Sat, 19 Nov 2022 13:37:38 +0900 Subject: [PATCH] Updated Upstream (Paper, Pufferfish, Purpur) --- gradle.properties | 2 +- patches/api/0001-Pufferfish-API-Changes.patch | 2 +- patches/api/0002-Purpur-API-Changes.patch | 13 ++- .../0001-Pufferfish-Server-Changes.patch | 23 ++-- .../server/0002-Purpur-Server-Changes.patch | 102 +++++++++++------- patches/server/0008-Akarin-patches.patch | 77 ++----------- .../server/0009-JettPack-Server-Patches.patch | 4 +- .../server/0010-Slice-Server-Patches.patch | 8 +- patches/server/0016-Paper-PRs.patch | 17 +-- patches/server/0031-No-Bedrock-Option.patch | 39 ------- ...0031-Toggleable-offline-mode-warning.patch | 43 ++++++++ ...=> 0032-Implement-Anti-Shulker-Dupe.patch} | 4 +- ...0032-Toggleable-offline-mode-warning.patch | 59 ---------- ...146-feat-Cure-effects-food-property.patch} | 6 +- ...Add-option-to-configure-portal-size.patch} | 0 ...API.patch => 0035-Force-despawn-API.patch} | 4 +- ...-allocs.patch => 0036-Reduce-allocs.patch} | 10 +- ...ch-Allow-any-characters-in-username.patch} | 4 +- upstream-data | 4 +- 19 files changed, 160 insertions(+), 261 deletions(-) delete mode 100644 patches/server/0031-No-Bedrock-Option.patch create mode 100644 patches/server/0031-Toggleable-offline-mode-warning.patch rename patches/server/{0033-Implement-Anti-Shulker-Dupe.patch => 0032-Implement-Anti-Shulker-Dupe.patch} (94%) delete mode 100644 patches/server/0032-Toggleable-offline-mode-warning.patch rename patches/server/{0034-Purpur-PR-1146-feat-Cure-effects-food-property.patch => 0033-Purpur-PR-1146-feat-Cure-effects-food-property.patch} (97%) rename patches/server/{0035-Add-option-to-configure-portal-size.patch => 0034-Add-option-to-configure-portal-size.patch} (100%) rename patches/server/{0036-Force-despawn-API.patch => 0035-Force-despawn-API.patch} (95%) rename patches/server/{0037-Reduce-allocs.patch => 0036-Reduce-allocs.patch} (99%) rename patches/server/{0038-Rubia-patch-Allow-any-characters-in-username.patch => 0037-Rubia-patch-Allow-any-characters-in-username.patch} (95%) diff --git a/gradle.properties b/gradle.properties index 6a116ae..be59806 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = net.prismarineteam.prismarine version = 1.19.2-R0.1-SNAPSHOT -paperCommit = 215111213b878f2d837032632c83fabe09000bc2 +paperCommit = b4c1ae645fc476c41e8ef69b66050f1f184e4d97 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Pufferfish-API-Changes.patch b/patches/api/0001-Pufferfish-API-Changes.patch index 96fd3e1..6cc22eb 100644 --- a/patches/api/0001-Pufferfish-API-Changes.patch +++ b/patches/api/0001-Pufferfish-API-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Sun, 30 Oct 2022 18:24:59 +0000 +Date: Fri, 18 Nov 2022 15:46:16 +0000 Subject: [PATCH] Pufferfish API Changes Original by Kevin Raneri diff --git a/patches/api/0002-Purpur-API-Changes.patch b/patches/api/0002-Purpur-API-Changes.patch index 985c80a..d912201 100644 --- a/patches/api/0002-Purpur-API-Changes.patch +++ b/patches/api/0002-Purpur-API-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Sun, 30 Oct 2022 06:00:46 +0000 +Date: Fri, 18 Nov 2022 15:54:55 +0000 Subject: [PATCH] Purpur API Changes Copyright (C) 2022 PurpurMC LLC @@ -12,16 +12,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build.gradle.kts b/build.gradle.kts index 780c9b40f69c247592c1fe469c05fd12e984b633..8e64ccdb928bc38cb703e60c8ec31339a6f6d894 100644 @@ -3344,7 +3344,7 @@ index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7e +} diff --git a/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..a07084a72340a4fc12d161e4df8a34c2835e2cfc +index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d97b94b5a --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java @@ -0,0 +1,59 @@ @@ -3407,7 +3407,6 @@ index 0000000000000000000000000000000000000000..a07084a72340a4fc12d161e4df8a34c2 + this.cancelled = cancel; + } +} -\ No newline at end of file diff --git a/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab9d957c75 diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index eea8ff0..398af90 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Sun, 30 Oct 2022 18:24:59 +0000 +Date: Fri, 18 Nov 2022 15:46:16 +0000 Subject: [PATCH] Pufferfish Server Changes Original by Kevin Raneri @@ -2418,7 +2418,7 @@ index 2358bb1788cfb902bac9b3b7588954af2d2cd823..163f14b4e1ca99d75e5d8e14190f7b91 this.wasOnGround = this.entity.isOnGround(); this.teleportDelay = 0; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 8b3e703ebb497b9166bd211b4247a78891b61aeb..94f4a5bfd2af8389a99f80bab4eceac1f075512e 100644 +index a8cdb261c0f8c9a377bb4a6d39afbe5ef6f0d146..aa4bd1b9c22b00d7db513d85f89734795ba6caa7 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -727,7 +727,20 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2813,7 +2813,7 @@ index 72516335570d7137a62ec8667a6e8f06f024692f..b44322c337bcded94c60e1761a389101 public final String id; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 0318c9483a4d96eb39ff4df9054a9e6398186bc3..26efc49b4530112c8bd3f580ce375ab4203c9609 100644 +index c6cbf02c784d4b0a39c61cd65e777fe04e3c3772..88ebf53d3a5d93d6aa40152d55e83cb1f25443b3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -2871,7 +2871,7 @@ index 0318c9483a4d96eb39ff4df9054a9e6398186bc3..26efc49b4530112c8bd3f580ce375ab4 public boolean onClimbable() { if (this.isSpectator()) { return false; -@@ -3586,7 +3607,10 @@ public abstract class LivingEntity extends Entity { +@@ -3588,7 +3609,10 @@ public abstract class LivingEntity extends Entity { Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ()); // Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists @@ -2884,7 +2884,7 @@ index 0318c9483a4d96eb39ff4df9054a9e6398186bc3..26efc49b4530112c8bd3f580ce375ab4 } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index fffa6ba329b38433a1df51df339df652d3fda828..e89b88eb3d4202ea7ff043dc9e92163332cd10d3 100644 +index 12fcc84e9de914657409142dc70ced7015cf5533..235db1306573c25a101265c8f88dad0fbe06ca59 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -210,14 +210,16 @@ public abstract class Mob extends LivingEntity { @@ -2928,7 +2928,7 @@ index fffa6ba329b38433a1df51df339df652d3fda828..e89b88eb3d4202ea7ff043dc9e921633 this.level.getProfiler().pop(); } diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -index 692524a69d43dcf52ae1b0f7f593fc53f3878137..511fbbe5da0b6b0c51952c0f548f5ba9f6a64349 100644 +index 692524a69d43dcf52ae1b0f7f593fc53f3878137..59ca3a0a70c68263495ae9972215b76554d3fb83 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java @@ -22,9 +22,11 @@ public class AttributeMap { @@ -2943,8 +2943,11 @@ index 692524a69d43dcf52ae1b0f7f593fc53f3878137..511fbbe5da0b6b0c51952c0f548f5ba9 } private void onAttributeModified(AttributeInstance instance) { -@@ -46,9 +48,7 @@ public class AttributeMap { +@@ -44,11 +46,10 @@ public class AttributeMap { + }).collect(Collectors.toList()); + } ++ @Nullable public AttributeInstance getInstance(Attribute attribute) { - return this.attributes.computeIfAbsent(attribute, (attributex) -> { @@ -4143,7 +4146,7 @@ index 35f9b11a3a61976c952a2c1c64bb2a932538f54f..9e9ac64764cf0a84e25e75d8d6f516cd public boolean hasParam(LootContextParam parameter) { diff --git a/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java b/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java -index ebe65474a4a05ff1637d7f37ebcfe690af59def5..dd45d6464e095dfa82c569d198f5e42d94e7d877 100644 +index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7496a5f25 100644 --- a/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java +++ b/src/main/java/net/minecraft/world/phys/shapes/EntityCollisionContext.java @@ -19,47 +19,66 @@ public class EntityCollisionContext implements CollisionContext { @@ -4187,8 +4190,8 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..dd45d6464e095dfa82c569d198f5e42d + // this(entity.isDescending(), entity.getY(), entity instanceof LivingEntity ? ((LivingEntity)entity).getMainHandItem() : ItemStack.EMPTY, entity instanceof LivingEntity ? ((LivingEntity)entity)::canStandOnFluid : (fluidState) -> { + // return false; + // }, entity); -+ this.entity = entity; + // Pufferfish end ++ this.entity = entity; } @Override @@ -4209,7 +4212,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..dd45d6464e095dfa82c569d198f5e42d + // Pufferfish start + Entity entity = this.entity; + if (entity instanceof LivingEntity livingEntity) { -+ return livingEntity.canStandOnFluid(state) && !state.getType().isSame(state.getType()); ++ return livingEntity.canStandOnFluid(state) && !stateAbove.getType().isSame(state.getType()); + } + return false; + // Pufferfish end diff --git a/patches/server/0002-Purpur-Server-Changes.patch b/patches/server/0002-Purpur-Server-Changes.patch index 9573a56..4a98128 100644 --- a/patches/server/0002-Purpur-Server-Changes.patch +++ b/patches/server/0002-Purpur-Server-Changes.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 -Date: Sun, 30 Oct 2022 06:00:46 +0000 +Date: Fri, 18 Nov 2022 15:54:54 +0000 Subject: [PATCH] Purpur Server Changes Copyright (C) 2022 PurpurMC LLC @@ -12,16 +12,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build.gradle.kts b/build.gradle.kts index 5b43f5c27ce903c53cbce245477fbdefdc88733f..40e47799426ba0180c15204241d7687071908543 100644 @@ -2433,7 +2433,7 @@ index aa4bd1b9c22b00d7db513d85f89734795ba6caa7..2c53e7915bdf299ce7ecfc0aade0716c } // Paper end diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3b122f521c166253f20d233c0fcebdede6660be5..14b2c36049c91a8abfc545e2fb5e3d6f908370e8 100644 +index 3b122f521c166253f20d233c0fcebdede6660be5..2fb0398fa693a0ce0d298c15426d4b592e69195e 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -261,6 +261,11 @@ public class ServerPlayer extends Player { @@ -2726,7 +2726,7 @@ index 3b122f521c166253f20d233c0fcebdede6660be5..14b2c36049c91a8abfc545e2fb5e3d6f + + ServerLevel toLevel = ((CraftWorld) to.getWorld()).getHandle(); + if (this.level == toLevel) { -+ this.connection.teleport(to); ++ this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket.RelativeArgument.class), true); + } else { + this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck); + } @@ -3738,7 +3738,7 @@ index 17ffab92f4ae2c06fa9f9249a474d4b6c9c55090..bb15cf2aa35ce8754bba56f5b312d92b ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java -index f5c9be3fde2654bd5a6b3ee737afe96a9393e836..2284e283dec9a7a5cc691f55f5f14b55505b4a45 100644 +index f5c9be3fde2654bd5a6b3ee737afe96a9393e836..3aecf016ce182391e20c8d31b9399a9855ceb3e6 100644 --- a/src/main/java/net/minecraft/world/effect/MobEffectInstance.java +++ b/src/main/java/net/minecraft/world/effect/MobEffectInstance.java @@ -13,6 +13,7 @@ import net.minecraft.util.ExtraCodecs; @@ -3770,7 +3770,7 @@ index f5c9be3fde2654bd5a6b3ee737afe96a9393e836..2284e283dec9a7a5cc691f55f5f14b55 public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon) { - this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData()); + // Purpur start -+ this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance) null, type.createFactorData(), (NamespacedKey) null); ++ this(type, duration, amplifier, ambient, showParticles, showIcon, (MobEffectInstance)null, type.createFactorData(), (NamespacedKey)null); + } + + public MobEffectInstance(MobEffect type, int duration, int amplifier, boolean ambient, boolean showParticles, boolean showIcon, @Nullable NamespacedKey key) { @@ -3893,7 +3893,7 @@ index f5c9be3fde2654bd5a6b3ee737afe96a9393e836..2284e283dec9a7a5cc691f55f5f14b55 public void setNoCounter(boolean permanent) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 26b42474a94ccabd8cfcca39e4c37fb14852cbb8..b7519b92081249f902d6455a1ffbb42d4f727981 100644 +index 26b42474a94ccabd8cfcca39e4c37fb14852cbb8..c8a24d1026671652cc5042d6b41b85e38ddfda8b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager; @@ -3930,6 +3930,15 @@ index 26b42474a94ccabd8cfcca39e4c37fb14852cbb8..b7519b92081249f902d6455a1ffbb42d public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); +@@ -417,7 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score + public final BlockPos.MutableBlockPos cachedBlockPos = new BlockPos.MutableBlockPos(); // used where needed + // Pufferfish end +- ++ + public float getBukkitYaw() { + return this.yRot; + } @@ -575,7 +577,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.bb = Entity.INITIAL_AABB; this.stuckSpeedMultiplier = Vec3.ZERO; @@ -3966,7 +3975,7 @@ index 26b42474a94ccabd8cfcca39e4c37fb14852cbb8..b7519b92081249f902d6455a1ffbb42d && this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v) && (!(this instanceof Player player) || !player.getAbilities().invulnerable))) { // Paper end -+ if (level.purpurConfig.teleportOnNetherCeilingDamage && this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER) ((ServerPlayer) this).teleport(MCUtil.toLocation(level, level.getSharedSpawnPos())); else // Purpur ++ if (this.level.purpurConfig.teleportOnNetherCeilingDamage && this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER && this instanceof ServerPlayer player) player.teleport(MCUtil.toLocation(this.level, this.level.getSharedSpawnPos())); else // Purpur this.outOfWorld(); } @@ -4520,7 +4529,7 @@ index c1e9b40a4a0f9cdc650caa88b5ea132e06ee2496..5d6cddc221887be20ef75d688817dfe5 @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae90970aee262 100644 +index 88ebf53d3a5d93d6aa40152d55e83cb1f25443b3..2163a1ac3a9e3c39bdef7ea57b19caa213dbb16c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -220,9 +220,9 @@ public abstract class LivingEntity extends Entity { @@ -4783,7 +4792,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 if (f > 0 || !human) { if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. -@@ -2484,7 +2545,7 @@ public abstract class LivingEntity extends Entity { +@@ -2486,7 +2547,7 @@ public abstract class LivingEntity extends Entity { @Override protected void outOfWorld() { @@ -4792,7 +4801,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 } protected void updateSwingTime() { -@@ -2673,7 +2734,7 @@ public abstract class LivingEntity extends Entity { +@@ -2675,7 +2736,7 @@ public abstract class LivingEntity extends Entity { } protected long lastJumpTime = 0L; // Paper @@ -4801,7 +4810,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 double d0 = (double) this.getJumpPower() + this.getJumpBoostPower(); Vec3 vec3d = this.getDeltaMovement(); // Paper start -@@ -2831,6 +2892,7 @@ public abstract class LivingEntity extends Entity { +@@ -2833,6 +2894,7 @@ public abstract class LivingEntity extends Entity { if (f3 > 0.0F) { this.playSound(this.getFallDamageSound((int) f3), 1.0F, 1.0F); @@ -4809,7 +4818,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 this.hurt(DamageSource.FLY_INTO_WALL, f3); } } -@@ -3027,10 +3089,10 @@ public abstract class LivingEntity extends Entity { +@@ -3029,10 +3091,10 @@ public abstract class LivingEntity extends Entity { } this.run += (f3 - this.run) * 0.3F; @@ -4823,7 +4832,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 // Paper start - stop large pitch and yaw changes from crashing the server this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; -@@ -3042,7 +3104,7 @@ public abstract class LivingEntity extends Entity { +@@ -3044,7 +3106,7 @@ public abstract class LivingEntity extends Entity { this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Paper end @@ -4832,7 +4841,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 this.animStep += f2; if (this.isFallFlying()) { ++this.fallFlyTicks; -@@ -3324,19 +3386,19 @@ public abstract class LivingEntity extends Entity { +@@ -3326,19 +3388,19 @@ public abstract class LivingEntity extends Entity { } this.setDeltaMovement(d4, d5, d6); @@ -4857,7 +4866,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 if (this.jumping && this.isAffectedByFluids()) { double d7; -@@ -3363,8 +3425,8 @@ public abstract class LivingEntity extends Entity { +@@ -3365,8 +3427,8 @@ public abstract class LivingEntity extends Entity { this.noJumpDelay = 0; } @@ -4868,7 +4877,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 this.xxa *= 0.98F; this.zza *= 0.98F; this.updateFallFlying(); -@@ -3373,8 +3435,8 @@ public abstract class LivingEntity extends Entity { +@@ -3375,8 +3437,8 @@ public abstract class LivingEntity extends Entity { // SpigotTimings.timerEntityAIMove.startTiming(); // Spigot // Paper this.travel(new Vec3((double) this.xxa, (double) this.yya, (double) this.zza)); // SpigotTimings.timerEntityAIMove.stopTiming(); // Spigot // Paper @@ -4879,7 +4888,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 boolean flag1 = this.getType().is(EntityTypeTags.FREEZE_HURTS_EXTRA_TYPES); int i; -@@ -3394,18 +3456,20 @@ public abstract class LivingEntity extends Entity { +@@ -3396,18 +3458,20 @@ public abstract class LivingEntity extends Entity { this.hurt(DamageSource.FREEZE, (float) i); } @@ -4905,7 +4914,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 Location from = new Location(this.level.getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); Location to = new Location (this.level.getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone()); -@@ -3415,12 +3479,48 @@ public abstract class LivingEntity extends Entity { +@@ -3417,12 +3481,48 @@ public abstract class LivingEntity extends Entity { absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch()); } } @@ -4954,7 +4963,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..1ec9a48f2f44f5bd647e0661423ae909 } public boolean isSensitiveToWater() { -@@ -3441,7 +3541,16 @@ public abstract class LivingEntity extends Entity { +@@ -3443,7 +3543,16 @@ public abstract class LivingEntity extends Entity { int j = i / 10; if (j % 2 == 0) { @@ -5295,7 +5304,7 @@ index 5e8cc5cfac8888628c6d513148f41be09ca65a2c..a089fc61ec09be6b7490375489178dc6 boolean readyForShearing(); } diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -index 511fbbe5da0b6b0c51952c0f548f5ba9f6a64349..2c915c765ceef3ec28f5a58fa9a587282c1a906a 100644 +index 59ca3a0a70c68263495ae9972215b76554d3fb83..2c915c765ceef3ec28f5a58fa9a587282c1a906a 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java @@ -22,15 +22,22 @@ public class AttributeMap { @@ -5322,7 +5331,7 @@ index 511fbbe5da0b6b0c51952c0f548f5ba9f6a64349..2c915c765ceef3ec28f5a58fa9a58728 this.dirtyAttributes.add(instance); } -@@ -42,7 +49,7 @@ public class AttributeMap { +@@ -42,11 +49,10 @@ public class AttributeMap { public Collection getSyncableAttributes() { return this.attributes.values().stream().filter((attribute) -> { @@ -5331,6 +5340,10 @@ index 511fbbe5da0b6b0c51952c0f548f5ba9f6a64349..2c915c765ceef3ec28f5a58fa9a58728 }).collect(Collectors.toList()); } +- + @Nullable + public AttributeInstance getInstance(Attribute attribute) { + return this.attributes.computeIfAbsent(attribute, this.createInstance); // Pufferfish - cache lambda, as for some reason java allocates it anyways diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java index d5d2b58f103d6bb50a4657299876ac02b77f258a..449b13ab3aeaebdf1e315700446b62b20e275e9b 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java @@ -9435,7 +9448,7 @@ index 32cca29fd622d18030931e1f330791491e7f9fa0..5268a56a7967275df63f5a5ddb592199 } diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 3c3453638e117609190787efbf5d87fc20dcf8fd..55a9a1c9fb88773db7b84ee8857b9791c6fd5334 100644 +index 3c3453638e117609190787efbf5d87fc20dcf8fd..2e2f1b4088f6b5e327c668dc5ecd60b97e3628ff 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -89,6 +89,43 @@ public class Goat extends Animal { @@ -9505,7 +9518,7 @@ index 3c3453638e117609190787efbf5d87fc20dcf8fd..55a9a1c9fb88773db7b84ee8857b9791 // Paper start - Goat ram API public void ram(net.minecraft.world.entity.LivingEntity entity) { -+ if (!new org.purpurmc.purpur.event.entity.GoatRamEntityEvent((org.bukkit.entity.Goat) getBukkitEntity(), (org.bukkit.entity.LivingEntity) entity.getBukkitLivingEntity()).callEvent()) return; // Purpur ++ if(!new org.purpurmc.purpur.event.entity.GoatRamEntityEvent((org.bukkit.entity.Goat) getBukkitEntity(), (org.bukkit.entity.LivingEntity) entity.getBukkitLivingEntity()).callEvent()) return; // Purpur Brain brain = this.getBrain(); brain.setMemory(MemoryModuleType.RAM_TARGET, entity.position()); brain.eraseMemory(MemoryModuleType.RAM_COOLDOWN_TICKS); @@ -15727,7 +15740,7 @@ index 4adfc26062b322443828e94e6b0943884a18846b..0d9ecca25bff63f3428ccf93e2789fca } else if (this.isFuel(itemstack1)) { if (!this.moveItemStackTo(itemstack1, 1, 2, false)) { diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java -index 506d758efbf16da9467f120321d2359a8832e477..50f5f52839e66f64cc8be67cd732cfc516177bc6 100644 +index 506d758efbf16da9467f120321d2359a8832e477..7e518a1382b2bbb5151c8bb3c651c2646b2f2f1b 100644 --- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java @@ -21,6 +21,13 @@ import org.slf4j.Logger; @@ -15813,7 +15826,7 @@ index 506d758efbf16da9467f120321d2359a8832e477..50f5f52839e66f64cc8be67cd732cfc5 i2 = enchantment.getMaxLevel(); } -@@ -262,6 +281,35 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -262,6 +281,44 @@ public class AnvilMenu extends ItemCombinerMenu { } else if (!this.itemName.equals(itemstack.getHoverName().getString())) { b1 = 1; i += b1; @@ -15822,13 +15835,21 @@ index 506d758efbf16da9467f120321d2359a8832e477..50f5f52839e66f64cc8be67cd732cfc5 + org.bukkit.craftbukkit.entity.CraftHumanEntity player = this.player.getBukkitEntity(); + String name = this.itemName; + boolean removeItalics = false; -+ if (player.hasPermission("purpur.anvil.remove_italics") && (name.startsWith("&r") || name.startsWith("") || name.startsWith(""))) { -+ name = name.substring(2); -+ removeItalics = true; ++ if (player.hasPermission("purpur.anvil.remove_italics")) { ++ if (name.startsWith("&r")) { ++ name = name.substring(2); ++ removeItalics = true; ++ } else if (name.startsWith("")) { ++ name = name.substring(3); ++ removeItalics = true; ++ } else if (name.startsWith("")) { ++ name = name.substring(7); ++ removeItalics = true; ++ } + } + if (this.player.level.purpurConfig.anvilAllowColors) { + if (player.hasPermission("purpur.anvil.color")) { -+ name.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1"); ++ name = name.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1"); + } + if (player.hasPermission("purpur.anvil.format")) { + name = name.replaceAll("(?i)&([l-or])", "\u00a7$1"); @@ -15836,7 +15857,7 @@ index 506d758efbf16da9467f120321d2359a8832e477..50f5f52839e66f64cc8be67cd732cfc5 + } + net.kyori.adventure.text.Component component; + if (this.player.level.purpurConfig.anvilColorsUseMiniMessage && player.hasPermission("purpur.anvil.minimessage")) { -+ component = net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(name); ++ component = net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(org.bukkit.ChatColor.stripColor(name)); + } else { + component = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(name); + } @@ -15844,12 +15865,13 @@ index 506d758efbf16da9467f120321d2359a8832e477..50f5f52839e66f64cc8be67cd732cfc5 + component = component.decoration(net.kyori.adventure.text.format.TextDecoration.ITALIC, false); + } + itemstack1.setHoverName(io.papermc.paper.adventure.PaperAdventure.asVanilla(component)); -+ } else ++ } ++ else + // Purpur end itemstack1.setHoverName(Component.literal(this.itemName)); } -@@ -274,6 +322,13 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -274,6 +331,13 @@ public class AnvilMenu extends ItemCombinerMenu { this.cost.set(this.maximumRepairCost - 1); // CraftBukkit } @@ -15863,7 +15885,7 @@ index 506d758efbf16da9467f120321d2359a8832e477..50f5f52839e66f64cc8be67cd732cfc5 if (this.cost.get() >= this.maximumRepairCost && !this.player.getAbilities().instabuild) { // CraftBukkit itemstack1 = ItemStack.EMPTY; } -@@ -296,11 +351,17 @@ public class AnvilMenu extends ItemCombinerMenu { +@@ -296,11 +360,17 @@ public class AnvilMenu extends ItemCombinerMenu { org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareAnvilEvent(this.getBukkitView(), itemstack1); // CraftBukkit sendAllDataToRemote(); // CraftBukkit - SPIGOT-6686: Always send completed inventory to stay in sync with client this.broadcastChanges(); @@ -17063,10 +17085,10 @@ index 87beea39636b641dc5b46c2755a00285b7671ac5..95931a038d3c845048b1ffaadd1e930a if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 01477e7240f9e33d08d416a7d40ee10f3e5d4abf..c9def2202d7c2a523858ec124df2beaf994d9888 100644 +index 31708d1e94b557896d42199aa0bc6ed26a4c6d8a..e9245a476936590f165a1e5c42515218d7572906 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -363,7 +363,7 @@ public class Explosion { +@@ -366,7 +366,7 @@ public class Explosion { if (!iblockdata.isAir() && iblockdata.isDestroyable()) { // Paper BlockPos blockposition1 = blockposition.immutable(); @@ -17075,7 +17097,7 @@ index 01477e7240f9e33d08d416a7d40ee10f3e5d4abf..c9def2202d7c2a523858ec124df2beaf if (block.dropFromExplosion(this)) { Level world = this.level; -@@ -385,7 +385,7 @@ public class Explosion { +@@ -388,7 +388,7 @@ public class Explosion { this.level.setBlock(blockposition, Blocks.AIR.defaultBlockState(), 3); block.wasExploded(this.level, blockposition, this); diff --git a/patches/server/0008-Akarin-patches.patch b/patches/server/0008-Akarin-patches.patch index 701d872..406264d 100644 --- a/patches/server/0008-Akarin-patches.patch +++ b/patches/server/0008-Akarin-patches.patch @@ -28,83 +28,28 @@ with this program. If not, see . 0011 - Swaps the predicate order of collision diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b7519b92081249f902d6455a1ffbb42d4f727981..41eeb8e8af29a6eb1e89abf785d3f4557ccd854b 100644 +index c8a24d1026671652cc5042d6b41b85e38ddfda8b..6da8a8f8912e893aa339f2d36b575769c9b92800 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -419,7 +419,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { - public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score - public final BlockPos.MutableBlockPos cachedBlockPos = new BlockPos.MutableBlockPos(); // used where needed - // Pufferfish end -- -+ - public float getBukkitYaw() { - return this.yRot; - } -@@ -1970,38 +1970,37 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1970,8 +1970,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void playerTouch(Player player) {} public void push(Entity entity) { - if (!this.isPassengerOfSameVehicle(entity)) { - if (!entity.noPhysics && !this.noPhysics) { -- if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper -- double d0 = entity.getX() - this.getX(); -- double d1 = entity.getZ() - this.getZ(); -- double d2 = Mth.absMax(d0, d1); -- -- if (d2 >= 0.009999999776482582D) { -- d2 = Math.sqrt(d2); -- d0 /= d2; -- d1 /= d2; -- double d3 = 1.0D / d2; -- -- if (d3 > 1.0D) { -- d3 = 1.0D; -- } -- -- d0 *= d3; -- d1 *= d3; -- d0 *= 0.05000000074505806D; -- d1 *= 0.05000000074505806D; -- if (!this.isVehicle() && this.isPushable()) { -- this.push(-d0, 0.0D, -d1); -- } -+ // Prismarine start - why? (Akarin patches) -+ if (!this.isPassengerOfSameVehicle(entity) && !entity.noPhysics && !this.noPhysics) { -+ if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper -+ double d0 = entity.getX() - this.getX(); -+ double d1 = entity.getZ() - this.getZ(); -+ double d2 = Mth.absMax(d0, d1); -+ -+ if (d2 >= 0.009999999776482582D) { -+ d2 = Math.sqrt(d2); -+ d0 /= d2; -+ d1 /= d2; -+ double d3 = 1.0D / d2; -+ -+ if (d3 > 1.0D) { -+ d3 = 1.0D; -+ } - -- if (!entity.isVehicle() && entity.isPushable()) { -- entity.push(d0, 0.0D, d1); -- } -+ d0 *= d3; -+ d1 *= d3; -+ d0 *= 0.05000000074505806D; -+ d1 *= 0.05000000074505806D; -+ if (!this.isVehicle() && this.isPushable()) { -+ this.push(-d0, 0.0D, -d1); ++ if (!this.isPassengerOfSameVehicle(entity) && !entity.noPhysics && !this.noPhysics) { // Prismarine - Akarin patches + if (this.level.paperConfig().collisions.onlyPlayersCollide && !(entity instanceof ServerPlayer || this instanceof ServerPlayer)) return; // Paper + double d0 = entity.getX() - this.getX(); + double d1 = entity.getZ() - this.getZ(); +@@ -1999,8 +1998,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + entity.push(d0, 0.0D, d1); + } } - -+ if (!entity.isVehicle() && entity.isPushable()) { -+ entity.push(d0, 0.0D, d1); -+ } - } +- +- } } -+ // Prismarine end } - public void push(double deltaX, double deltaY, double deltaZ) { diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java index 601f8099f74e81c17600566b3c9b7a6dd39c9bcb..2bb24bf628a37c79e337f1cba99b816465ecb723 100644 --- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java diff --git a/patches/server/0009-JettPack-Server-Patches.patch b/patches/server/0009-JettPack-Server-Patches.patch index bfd1562..d4c5965 100644 --- a/patches/server/0009-JettPack-Server-Patches.patch +++ b/patches/server/0009-JettPack-Server-Patches.patch @@ -1245,7 +1245,7 @@ index 7a4ade1a4190bf4fbb048919ae2be230f7b80fff..ab33194cb4d00e033632e753fb131d55 protected void doRunTask(R task) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 1ec9a48f2f44f5bd647e0661423ae90970aee262..5b5e91a4fd837093d012845a9024a5884b0fd209 100644 +index 2163a1ac3a9e3c39bdef7ea57b19caa213dbb16c..aa7afa4b399d92e0114860674d360106dd109525 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -576,11 +576,11 @@ public abstract class LivingEntity extends Entity { @@ -1271,7 +1271,7 @@ index 1ec9a48f2f44f5bd647e0661423ae90970aee262..5b5e91a4fd837093d012845a9024a588 } -@@ -2549,6 +2549,7 @@ public abstract class LivingEntity extends Entity { +@@ -2551,6 +2551,7 @@ public abstract class LivingEntity extends Entity { } protected void updateSwingTime() { diff --git a/patches/server/0010-Slice-Server-Patches.patch b/patches/server/0010-Slice-Server-Patches.patch index cb1e124..0a1202a 100644 --- a/patches/server/0010-Slice-Server-Patches.patch +++ b/patches/server/0010-Slice-Server-Patches.patch @@ -184,7 +184,7 @@ index 7880cdcaf12197f6b36777c51b2859f2463f1595..b79e12cab036339aca73bdda639a877c } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 41eeb8e8af29a6eb1e89abf785d3f4557ccd854b..3c8dea033631f9ff0622f5ded08e55fa4ad8ddb7 100644 +index 6da8a8f8912e893aa339f2d36b575769c9b92800..ac7fa4ff2012c71ff897dc19081be45a8f0e9085 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -879,6 +879,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -202,7 +202,7 @@ index 41eeb8e8af29a6eb1e89abf785d3f4557ccd854b..3c8dea033631f9ff0622f5ded08e55fa this.setSharedFlagOnFire(this.remainingFireTicks > 0); } -@@ -3158,7 +3166,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3156,7 +3164,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); return; } @@ -212,10 +212,10 @@ index 41eeb8e8af29a6eb1e89abf785d3f4557ccd854b..3c8dea033631f9ff0622f5ded08e55fa } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5b5e91a4fd837093d012845a9024a5884b0fd209..a8e16d71225ba14a736b96f2818a4b29b72bb725 100644 +index aa7afa4b399d92e0114860674d360106dd109525..bb28ebe18acdff5e6f8456d0e90a325cd54bfbd3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3153,7 +3153,7 @@ public abstract class LivingEntity extends Entity { +@@ -3155,7 +3155,7 @@ public abstract class LivingEntity extends Entity { ItemStack itemstack1 = this.getItemBySlot(enumitemslot); diff --git a/patches/server/0016-Paper-PRs.patch b/patches/server/0016-Paper-PRs.patch index da608aa..71b8047 100644 --- a/patches/server/0016-Paper-PRs.patch +++ b/patches/server/0016-Paper-PRs.patch @@ -158,7 +158,7 @@ index bb15cf2aa35ce8754bba56f5b312d92b1a50c9f8..82c1e4f79210e10031a7555be03e294d } diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java -index 212ea98eeaaf4b20ba0896dab03cd092c494471a..3c8ea36eadf4073ed904cf6cbed30d55078ab757 100644 +index 5a3e29aedc537c672d11385cec562b2c30761730..2b039882c6857abce9394cafb7827865a75ff354 100644 --- a/src/main/java/net/minecraft/world/entity/EntitySelector.java +++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java @@ -27,7 +27,20 @@ public final class EntitySelector { @@ -183,21 +183,6 @@ index 212ea98eeaaf4b20ba0896dab03cd092c494471a..3c8ea36eadf4073ed904cf6cbed30d55 public static Predicate notAfk = (player) -> !player.isAfk(); // Purpur private EntitySelector() {} -diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a8e16d71225ba14a736b96f2818a4b29b72bb725..ec097aae56979a38b482c7615b8d11264eaa4ff5 100644 ---- a/src/main/java/net/minecraft/world/entity/LivingEntity.java -+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2276,8 +2276,9 @@ public abstract class LivingEntity extends Entity { - // CraftBukkit end - float f3 = this.getHealth(); - -- this.setHealth(f3 - f); -+ //this.setHealth(f3 - f); // Prismarine - move down - this.getCombatTracker().recordDamage(damagesource, f3, f); -+ this.setHealth(f3 - f); // Prismarine - move down - // CraftBukkit start - if (!human) { - this.setAbsorptionAmount(this.getAbsorptionAmount() - f); diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java index 4e00c2216142b52fb34be0e51d00fa20fded92c8..4f31454c192361a18d32d3085cb9df90effadba9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/patches/server/0031-No-Bedrock-Option.patch b/patches/server/0031-No-Bedrock-Option.patch deleted file mode 100644 index 3f37454..0000000 --- a/patches/server/0031-No-Bedrock-Option.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: AlphaKR93 -Date: Sat, 5 Nov 2022 21:31:59 +0900 -Subject: [PATCH] No Bedrock Option - - -diff --git a/src/main/java/net/minecraft/data/worldgen/SurfaceRuleData.java b/src/main/java/net/minecraft/data/worldgen/SurfaceRuleData.java -index 1d5bc86516df3781aea894c3afd340421ba51a17..9a03ecd08e73531e0cc35034a3a13a403db6ca53 100644 ---- a/src/main/java/net/minecraft/data/worldgen/SurfaceRuleData.java -+++ b/src/main/java/net/minecraft/data/worldgen/SurfaceRuleData.java -@@ -143,11 +143,11 @@ public class SurfaceRuleData { - SurfaceRules.RuleSource ruleSource9 = SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.ON_FLOOR, SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.isBiome(Biomes.WOODED_BADLANDS), SurfaceRules.ifTrue(conditionSource, SurfaceRules.sequence(SurfaceRules.ifTrue(conditionSource16, COARSE_DIRT), SurfaceRules.ifTrue(conditionSource17, COARSE_DIRT), SurfaceRules.ifTrue(conditionSource18, COARSE_DIRT), ruleSource))), SurfaceRules.ifTrue(SurfaceRules.isBiome(Biomes.SWAMP), SurfaceRules.ifTrue(conditionSource6, SurfaceRules.ifTrue(SurfaceRules.not(conditionSource7), SurfaceRules.ifTrue(SurfaceRules.noiseCondition(Noises.SWAMP, 0.0D), WATER)))), SurfaceRules.ifTrue(SurfaceRules.isBiome(Biomes.MANGROVE_SWAMP), SurfaceRules.ifTrue(conditionSource5, SurfaceRules.ifTrue(SurfaceRules.not(conditionSource7), SurfaceRules.ifTrue(SurfaceRules.noiseCondition(Noises.SWAMP, 0.0D), WATER)))))), SurfaceRules.ifTrue(SurfaceRules.isBiome(Biomes.BADLANDS, Biomes.ERODED_BADLANDS, Biomes.WOODED_BADLANDS), SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.ON_FLOOR, SurfaceRules.sequence(SurfaceRules.ifTrue(conditionSource2, ORANGE_TERRACOTTA), SurfaceRules.ifTrue(conditionSource4, SurfaceRules.sequence(SurfaceRules.ifTrue(conditionSource16, TERRACOTTA), SurfaceRules.ifTrue(conditionSource17, TERRACOTTA), SurfaceRules.ifTrue(conditionSource18, TERRACOTTA), SurfaceRules.bandlands())), SurfaceRules.ifTrue(conditionSource8, SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.ON_CEILING, RED_SANDSTONE), RED_SAND)), SurfaceRules.ifTrue(SurfaceRules.not(conditionSource11), ORANGE_TERRACOTTA), SurfaceRules.ifTrue(conditionSource10, WHITE_TERRACOTTA), ruleSource3)), SurfaceRules.ifTrue(conditionSource3, SurfaceRules.sequence(SurfaceRules.ifTrue(conditionSource7, SurfaceRules.ifTrue(SurfaceRules.not(conditionSource4), ORANGE_TERRACOTTA)), SurfaceRules.bandlands())), SurfaceRules.ifTrue(SurfaceRules.UNDER_FLOOR, SurfaceRules.ifTrue(conditionSource10, WHITE_TERRACOTTA)))), SurfaceRules.ifTrue(SurfaceRules.ON_FLOOR, SurfaceRules.ifTrue(conditionSource8, SurfaceRules.sequence(SurfaceRules.ifTrue(conditionSource12, SurfaceRules.ifTrue(conditionSource11, SurfaceRules.sequence(SurfaceRules.ifTrue(conditionSource9, AIR), SurfaceRules.ifTrue(SurfaceRules.temperature(), ICE), WATER))), ruleSource8))), SurfaceRules.ifTrue(conditionSource10, SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.ON_FLOOR, SurfaceRules.ifTrue(conditionSource12, SurfaceRules.ifTrue(conditionSource11, WATER))), SurfaceRules.ifTrue(SurfaceRules.UNDER_FLOOR, ruleSource7), SurfaceRules.ifTrue(conditionSource14, SurfaceRules.ifTrue(SurfaceRules.DEEP_UNDER_FLOOR, SANDSTONE)), SurfaceRules.ifTrue(conditionSource15, SurfaceRules.ifTrue(SurfaceRules.VERY_DEEP_UNDER_FLOOR, SANDSTONE)))), SurfaceRules.ifTrue(SurfaceRules.ON_FLOOR, SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.isBiome(Biomes.FROZEN_PEAKS, Biomes.JAGGED_PEAKS), STONE), SurfaceRules.ifTrue(SurfaceRules.isBiome(Biomes.WARM_OCEAN, Biomes.LUKEWARM_OCEAN, Biomes.DEEP_LUKEWARM_OCEAN), ruleSource2), ruleSource3))); - ImmutableList.Builder builder = ImmutableList.builder(); - if (bedrockRoof) { -- builder.add(SurfaceRules.ifTrue(SurfaceRules.not(new PaperBedrockConditionSource("bedrock_roof", VerticalAnchor.belowTop(5), VerticalAnchor.top(), true)), BEDROCK)); // Paper -+ builder.add(SurfaceRules.ifTrue(SurfaceRules.not(new PaperBedrockConditionSource("bedrock_roof", VerticalAnchor.belowTop(5), VerticalAnchor.top(), true)), net.prismarineteam.prismarine.PrismarineConfig.noBedrock ? STONE : BEDROCK)); // Paper // Prismarine - } - - if (bedrockFloor) { -- builder.add(SurfaceRules.ifTrue(new PaperBedrockConditionSource("bedrock_floor", VerticalAnchor.bottom(), VerticalAnchor.aboveBottom(5), false), BEDROCK)); // Paper -+ builder.add(SurfaceRules.ifTrue(new PaperBedrockConditionSource("bedrock_floor", VerticalAnchor.bottom(), VerticalAnchor.aboveBottom(5), false), net.prismarineteam.prismarine.PrismarineConfig.noBedrock ? STONE : BEDROCK)); // Paper // Prismarine - } - - SurfaceRules.RuleSource ruleSource10 = SurfaceRules.ifTrue(SurfaceRules.abovePreliminarySurface(), ruleSource9); -diff --git a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -index 9addecba6dd4602daff61e095b43edc4ac0c5960..8fe69460195a0cd5d8cd7804f14b5fd771da452c 100644 ---- a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -+++ b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -@@ -266,4 +266,9 @@ public class PrismarineConfig { - private static void maxArmorAttributeValue() { - maxArmorAttributeValue = (float) getDouble("settings.max-armor-attribute-value", maxArmorAttributeValue); - } -+ -+ public static boolean noBedrock = false; -+ private static void noBedrock() { -+ noBedrock = getBoolean("settings.no-bedrock", noBedrock); -+ } - } -\ No newline at end of file diff --git a/patches/server/0031-Toggleable-offline-mode-warning.patch b/patches/server/0031-Toggleable-offline-mode-warning.patch new file mode 100644 index 0000000..5b684bf --- /dev/null +++ b/patches/server/0031-Toggleable-offline-mode-warning.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Irochi +Date: Tue, 25 Oct 2022 23:40:57 +0900 +Subject: [PATCH] Toggleable offline mode warning + + +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 1f847ac2b0b8096015da1e830a6cd664f1cef244..1f6899246eeba9b969daf5fdde0f66bfe8b95fec 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -325,7 +325,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.STARTUP); + // CraftBukkit end + +- if (!this.usesAuthentication()) { ++ if (!this.usesAuthentication() && net.prismarineteam.prismarine.PrismarineConfig.offlineWarning) { // Prismarine - Toggleable offline mode warning + DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); + DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); + // Spigot start +@@ -337,7 +337,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + DedicatedServer.LOGGER.warn("You will not be offered any support as long as the server allows offline-mode players to join."); // Purpur + } + // Spigot end +- DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); ++ DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file, or set \"settings.offline-warning\" to \"false\" in the prismarin.yml file."); // Prismarine - Toggleable offline mode warning + } + + +diff --git a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java +index 9addecba6dd4602daff61e095b43edc4ac0c5960..e696dd4588d8fca027bfa461a8a908927ed452bc 100644 +--- a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java ++++ b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java +@@ -266,4 +266,9 @@ public class PrismarineConfig { + private static void maxArmorAttributeValue() { + maxArmorAttributeValue = (float) getDouble("settings.max-armor-attribute-value", maxArmorAttributeValue); + } ++ ++ public static boolean offlineWarning = true; ++ private static void offlineWarning() { ++ offlineWarning = getBoolean("settings.offline-warning", offlineWarning); ++ } + } +\ No newline at end of file diff --git a/patches/server/0033-Implement-Anti-Shulker-Dupe.patch b/patches/server/0032-Implement-Anti-Shulker-Dupe.patch similarity index 94% rename from patches/server/0033-Implement-Anti-Shulker-Dupe.patch rename to patches/server/0032-Implement-Anti-Shulker-Dupe.patch index e342ef9..f812e7e 100644 --- a/patches/server/0033-Implement-Anti-Shulker-Dupe.patch +++ b/patches/server/0032-Implement-Anti-Shulker-Dupe.patch @@ -38,10 +38,10 @@ index f4c47f7a7f2572dedbaee4890c98e1f3589a40c2..9fcd8f51ebd76a60b5f10322675c2a8b return super.getDrops(state, builder); diff --git a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -index c0aa331bfc2af9417ed931de1024f1c01ed1737c..b475c631cbc030225872d7f152e6f4f711183f94 100644 +index e696dd4588d8fca027bfa461a8a908927ed452bc..ecba9b47ed31a7bce579fce4bf3c568ccba95c0b 100644 --- a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java +++ b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -@@ -276,4 +276,9 @@ public class PrismarineConfig { +@@ -271,4 +271,9 @@ public class PrismarineConfig { private static void offlineWarning() { offlineWarning = getBoolean("settings.offline-warning", offlineWarning); } diff --git a/patches/server/0032-Toggleable-offline-mode-warning.patch b/patches/server/0032-Toggleable-offline-mode-warning.patch deleted file mode 100644 index 157811a..0000000 --- a/patches/server/0032-Toggleable-offline-mode-warning.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Irochi -Date: Tue, 25 Oct 2022 23:40:57 +0900 -Subject: [PATCH] Toggleable offline mode warning - - -diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 1f847ac2b0b8096015da1e830a6cd664f1cef244..d29af9f0a2abcc4baa166acbf1bb44ba9ff257f9 100644 ---- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -@@ -326,18 +326,22 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface - // CraftBukkit end - - if (!this.usesAuthentication()) { -- DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); -- DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); -- // Spigot start -- if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) { // Purpur -- DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord or Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); // Purpur -- DedicatedServer.LOGGER.warn("Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information."); -- } else { -- DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); -- DedicatedServer.LOGGER.warn("You will not be offered any support as long as the server allows offline-mode players to join."); // Purpur -+ // Prismarine start - Toggleable offline mode warning -+ if (net.prismarineteam.prismarine.PrismarineConfig.offlineWarning) { -+ DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); -+ DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware."); -+ // Spigot start -+ if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()) { // Purpur -+ DedicatedServer.LOGGER.warn("Whilst this makes it possible to use BungeeCord or Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose."); // Purpur -+ DedicatedServer.LOGGER.warn("Please see http://www.spigotmc.org/wiki/firewall-guide/ for further information."); -+ } else { -+ DedicatedServer.LOGGER.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); -+ DedicatedServer.LOGGER.warn("You will not be offered any support as long as the server allows offline-mode players to join."); // Purpur -+ } -+ // Spigot end -+ DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); - } -- // Spigot end -- DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); -+ // Prismarine end - Toggleable offline mode warning - } - - -diff --git a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -index 8fe69460195a0cd5d8cd7804f14b5fd771da452c..c0aa331bfc2af9417ed931de1024f1c01ed1737c 100644 ---- a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -+++ b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -@@ -271,4 +271,9 @@ public class PrismarineConfig { - private static void noBedrock() { - noBedrock = getBoolean("settings.no-bedrock", noBedrock); - } -+ -+ public static boolean offlineWarning = true; -+ private static void offlineWarning() { -+ offlineWarning = getBoolean("settings.offline-warning", offlineWarning); -+ } - } -\ No newline at end of file diff --git a/patches/server/0034-Purpur-PR-1146-feat-Cure-effects-food-property.patch b/patches/server/0033-Purpur-PR-1146-feat-Cure-effects-food-property.patch similarity index 97% rename from patches/server/0034-Purpur-PR-1146-feat-Cure-effects-food-property.patch rename to patches/server/0033-Purpur-PR-1146-feat-Cure-effects-food-property.patch index c21b9d6..b692ae6 100644 --- a/patches/server/0034-Purpur-PR-1146-feat-Cure-effects-food-property.patch +++ b/patches/server/0033-Purpur-PR-1146-feat-Cure-effects-food-property.patch @@ -25,10 +25,10 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index ec097aae56979a38b482c7615b8d11264eaa4ff5..a776e8b705725d82758e96b36892b549b5df71b3 100644 +index bb28ebe18acdff5e6f8456d0e90a325cd54bfbd3..37cd5682ee3886ac8cc37cec2b1c3088b4c9d457 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -4375,6 +4375,7 @@ public abstract class LivingEntity extends Entity { +@@ -4376,6 +4376,7 @@ public abstract class LivingEntity extends Entity { if (stack.isEdible()) { world.playSound((net.minecraft.world.entity.player.Player) null, this.getX(), this.getY(), this.getZ(), this.getEatingSound(stack), SoundSource.NEUTRAL, 1.0F, 1.0F + (world.random.nextFloat() - world.random.nextFloat()) * 0.4F); this.addEatEffect(stack, world, this); @@ -36,7 +36,7 @@ index ec097aae56979a38b482c7615b8d11264eaa4ff5..a776e8b705725d82758e96b36892b549 if (!(this instanceof net.minecraft.world.entity.player.Player) || !((net.minecraft.world.entity.player.Player) this).getAbilities().instabuild) { stack.shrink(1); } -@@ -4403,6 +4404,23 @@ public abstract class LivingEntity extends Entity { +@@ -4404,6 +4405,23 @@ public abstract class LivingEntity extends Entity { } diff --git a/patches/server/0035-Add-option-to-configure-portal-size.patch b/patches/server/0034-Add-option-to-configure-portal-size.patch similarity index 100% rename from patches/server/0035-Add-option-to-configure-portal-size.patch rename to patches/server/0034-Add-option-to-configure-portal-size.patch diff --git a/patches/server/0036-Force-despawn-API.patch b/patches/server/0035-Force-despawn-API.patch similarity index 95% rename from patches/server/0036-Force-despawn-API.patch rename to patches/server/0035-Force-despawn-API.patch index 7501d4f..8b144d6 100644 --- a/patches/server/0036-Force-despawn-API.patch +++ b/patches/server/0035-Force-despawn-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Force despawn API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3c8dea033631f9ff0622f5ded08e55fa4ad8ddb7..4349bea37d9c9d952b731aae6866ed98974c9ab8 100644 +index ac7fa4ff2012c71ff897dc19081be45a8f0e9085..352fb856010532e2b76a9980b508240f703ca90a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -4433,6 +4433,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4431,6 +4431,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void checkDespawn() {} diff --git a/patches/server/0037-Reduce-allocs.patch b/patches/server/0036-Reduce-allocs.patch similarity index 99% rename from patches/server/0037-Reduce-allocs.patch rename to patches/server/0036-Reduce-allocs.patch index f5e2591..e6c13e0 100644 --- a/patches/server/0037-Reduce-allocs.patch +++ b/patches/server/0036-Reduce-allocs.patch @@ -653,7 +653,7 @@ index f2a513cea03f7849f4c76ff3c9a3f3130b57c077..efa593e437550f3ec7ccfce6444bb142 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 38f356a83a0145f44f035edc0949d0bb7f8235e7..7ec17310ebd1cbce6079b42a20315a9c69db907a 100644 +index 1e9d78801c32b21dc26e83ed710ad21e86b76f30..1e850dcdae91b10115e4c68c986ee8b1d5862e06 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1230,7 +1230,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -818,10 +818,10 @@ index 3b0c03506b883fcca1ef49ff54905a5bc4359a9d..d9dfd14875199a960192bce3db32d19a public static void registerJmxMonitoring(MinecraftServer server) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a776e8b705725d82758e96b36892b549b5df71b3..8ca290b7faefdefb5a7a80c2068eb23f394ebb36 100644 +index 37cd5682ee3886ac8cc37cec2b1c3088b4c9d457..018734b9285c674792794110a5a8ef83c3e95b17 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3134,7 +3134,7 @@ public abstract class LivingEntity extends Entity { +@@ -3135,7 +3135,7 @@ public abstract class LivingEntity extends Entity { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -831,7 +831,7 @@ index a776e8b705725d82758e96b36892b549b5df71b3..8ca290b7faefdefb5a7a80c2068eb23f for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index e9fc05533d3f92836f8c6c93364d85c7a35b48b0..b9967d0323ef670ce4d3ab9d7a0845b9dc125650 100644 +index 44deff2f4a694b1234d8c0e51b8afde257771624..e905a15408ad1617a04792b15ac5a22e0d76acd3 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1065,7 +1065,7 @@ public abstract class Mob extends LivingEntity { @@ -1040,7 +1040,7 @@ index b9ac8cefefe1f47548166330b7c889dfbc05e583..0930a28259939fe6e13052499e67ec76 this.targetSelector.addGoal(3, new Spider.SpiderTargetGoal<>(this, IronGolem.class)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 86cbf62b6a0ab4352d91456b6ea2324c4389374d..68b849545d74a05f394c3c7c3c625afada3886c1 100644 +index 31b1715a5b62e4bd36d672ad21a3bdfbec8af7d1..2078aa02d251b258c2b3e344e32688c99f9f8049 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -164,7 +164,7 @@ public class Zombie extends Monster { diff --git a/patches/server/0038-Rubia-patch-Allow-any-characters-in-username.patch b/patches/server/0037-Rubia-patch-Allow-any-characters-in-username.patch similarity index 95% rename from patches/server/0038-Rubia-patch-Allow-any-characters-in-username.patch rename to patches/server/0037-Rubia-patch-Allow-any-characters-in-username.patch index e714880..528e11f 100644 --- a/patches/server/0038-Rubia-patch-Allow-any-characters-in-username.patch +++ b/patches/server/0037-Rubia-patch-Allow-any-characters-in-username.patch @@ -33,10 +33,10 @@ index 2b03274392300f89c634d3372c30a0fa0122ef85..0633090d9d1824e1c810c205a07ee0be // Paper start - validate usernames if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) { diff --git a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -index b475c631cbc030225872d7f152e6f4f711183f94..a15a528daf9eeec37bf2c0e94e63b97301a4a94b 100644 +index ecba9b47ed31a7bce579fce4bf3c568ccba95c0b..5a6ef0616782d3a6f3288193413169f5b0d9ac9f 100644 --- a/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java +++ b/src/main/java/net/prismarineteam/prismarine/PrismarineConfig.java -@@ -281,4 +281,9 @@ public class PrismarineConfig { +@@ -276,4 +276,9 @@ public class PrismarineConfig { private static void antiShulkerDupe() { antiShulkerDupe = getBoolean("settings.anti-shulker-dupe", antiShulkerDupe); } diff --git a/upstream-data b/upstream-data index 6164c75..81994a4 100644 --- a/upstream-data +++ b/upstream-data @@ -1,5 +1,5 @@ -purpur = 1aa65909d796e3354afdaa95244ec914b3fccfd4 -pufferfish = dda277afae92068b2b462e498ae819fbdcd3962b +purpur = 79accf69dcdd084d0278e3d4fa25f04a00615121 +pufferfish = 53295bd78f9503eac253e8eee9d0fc6ae7d7df5b config-opts = d6790069bf247aa0a2f320af5b44ef4c2438e6f5 slice = 14575216df800fafe688814e979656113d3eaa9f