diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 6e9729e76..292cedfcb 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -3871,7 +3871,7 @@ index 2858ea5562d06c11e5c7337a2b123f9be7a3f62e..aad51022eac584fbc058c2b25e2bf192 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 4a132c3eff6978e927bcd4df56b9ce0306af6d19..519d7667e6a8bcb39c200546af5ebbf74e0e9368 100644 +index 4a132c3eff6978e927bcd4df56b9ce0306af6d19..8c8ff7d291999cc8ab251a145db000871050236f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -60,6 +60,64 @@ public class Phantom extends FlyingMob implements Enemy { @@ -3928,7 +3928,7 @@ index 4a132c3eff6978e927bcd4df56b9ce0306af6d19..519d7667e6a8bcb39c200546af5ebbf7 + loc.setPitch(-loc.getPitch()); + org.bukkit.util.Vector target = loc.getDirection().normalize().multiply(100).add(loc.toVector()); + -+ org.purpurmc.purpur.entity.PhantomFlames flames = new org.purpurmc.purpur.entity.PhantomFlames(level, this); ++ org.purpurmc.purpur.entity.PhantomFlames flames = new org.purpurmc.purpur.entity.PhantomFlames(level(), this); + flames.canGrief = level().purpurConfig.phantomAllowGriefing; + flames.shoot(target.getX() - getX(), target.getY() - getY(), target.getZ() - getZ(), 1.0F, 5.0F); + level().addFreshEntity(flames); diff --git a/patches/server/0065-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0065-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 71c8483e9..edc2262a0 100644 --- a/patches/server/0065-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0065-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java -index 5465711d486e5f265a26042031e895fb09e30608..767cd1dad6bb9857501abe04f5023ca3ffa5fdd2 100644 +index 5465711d486e5f265a26042031e895fb09e30608..e73446de9a58643609fedcbd0a503d95e5ce8271 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java @@ -30,6 +30,12 @@ public class EndCrystal extends Entity { @@ -31,7 +31,7 @@ index 5465711d486e5f265a26042031e895fb09e30608..767cd1dad6bb9857501abe04f5023ca3 + } + + if (targetPhantom == null) { -+ for (net.minecraft.world.entity.monster.Phantom phantom : level.getEntitiesOfClass(net.minecraft.world.entity.monster.Phantom.class, getBoundingBox().inflate(level().purpurConfig.phantomAttackedByCrystalRadius))) { ++ for (net.minecraft.world.entity.monster.Phantom phantom : level().getEntitiesOfClass(net.minecraft.world.entity.monster.Phantom.class, getBoundingBox().inflate(level().purpurConfig.phantomAttackedByCrystalRadius))) { + if (phantom.hasLineOfSight(this)) { + attackPhantom(phantom); + break; @@ -73,7 +73,7 @@ index 5465711d486e5f265a26042031e895fb09e30608..767cd1dad6bb9857501abe04f5023ca3 @Override protected void addAdditionalSaveData(CompoundTag nbt) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 2189058a752986179165fb904513796e7220438e..b0aad0632ed2c6004222a4715c2643eff13f030c 100644 +index 961300cb8bcc7b0aff476a435aa33e713bd520a6..a72dc02aaed018df9172f9c322b27c3e6399d0a3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy { diff --git a/patches/server/0083-Short-enderman-height.patch b/patches/server/0083-Short-enderman-height.patch index 63c02885e..73c080bd9 100644 --- a/patches/server/0083-Short-enderman-height.patch +++ b/patches/server/0083-Short-enderman-height.patch @@ -19,17 +19,17 @@ index 78937a0cf8ee9a1a57123451f873f962f53b9394..e4e1245aaae94762b61a2a4663a68a62 private static EntityType register(String id, EntityType.Builder type) { // CraftBukkit - decompile error 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 54b59b7faf69d54c05bdfee9b1bd2f137a5dd958..15eb4c93ddd4ea06640ff45e11c54b5c761ca89a 100644 +index 54b59b7faf69d54c05bdfee9b1bd2f137a5dd958..a9de01b7043124d8460f1608c3b929e911e3bc6f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -@@ -267,6 +267,7 @@ public class EnderMan extends Monster implements NeutralMob { - - if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { +@@ -423,6 +423,7 @@ public class EnderMan extends Monster implements NeutralMob { + if (this.isInvulnerableTo(source)) { return false; + } else if (getRider() != null && this.isControllable()) { return super.hurt(source, amount); // Purpur - no teleporting on damage + } else if (org.purpurmc.purpur.PurpurConfig.endermanShortHeight && source.is(net.minecraft.world.damagesource.DamageTypes.IN_WALL)) { return false; // Purpur - no suffocation damage if short height } else { - Vec3 vec3d = player.getViewVector(1.0F).normalize(); - Vec3 vec3d1 = new Vec3(this.getX() - player.getX(), this.getEyeY() - player.getEyeY(), this.getZ() - player.getZ()); + boolean flag = source.getDirectEntity() instanceof ThrownPotion; + boolean flag1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java index e829e215d1fe80cdaf9162268011912081f4c5ee..db4c85cae58805cfa2a460e33a13e85abc8e593d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch index 40b29e79d..232b0c7a9 100644 --- a/patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0128-Toggle-for-water-sensitive-mob-damage.patch @@ -379,7 +379,7 @@ index 7d02e552a27632939bb9c40a62f4e0df7bd60bbc..b16d075581a352714f86f1b87805f24c return "entity.minecraft.tropical_fish.predefined." + variant; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index c04e77f8c5c1c8c038a9c8f76546b683691c6b2a..5c2fc833dac13dd8b959f035abb74432ec6c82c9 100644 +index cded4a8baa6815f9d6a3107173f9654136d5943a..9f8891a3eacf461071ce7ad2a277c78048171d51 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -110,6 +110,11 @@ public class Turtle extends Animal { @@ -673,7 +673,7 @@ index 48c28b5177c26c8ab07bb4960a71cddb7d4f543d..b494d5689beb19d621f5d7c9c22d84e1 return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } 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 87960051bd908822cf8c0d5c7b2d1faa6396c92f..002ea677568e4d4a13509bb5c880341a742dac83 100644 +index cda9662affdac0f42f27d4b2edfa412b9cd16283..2c59a40a1c9f898c859063919659e91628131af1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -89,7 +89,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -685,7 +685,7 @@ index 87960051bd908822cf8c0d5c7b2d1faa6396c92f..002ea677568e4d4a13509bb5c880341a } // Purpur start -@@ -303,7 +303,7 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -302,7 +302,7 @@ public class EnderMan extends Monster implements NeutralMob { @Override public boolean isSensitiveToWater() { @@ -823,7 +823,7 @@ index b472309f97b24f1d7b97d8b6d464c479c2d602d5..e0ebc4c2d8dd718ce78d981a1d099e74 return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, (double)0.2F); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 29167ec21bc68e43c6505b6b1ee376d75a43c1ef..0894335fd9057184bb4f3ba5765ceec9d02828f7 100644 +index 5511075728e3a2db213d9c4faf90f0fba255044c..7a5429bc117137989efe322eca092ad26869bb82 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -138,6 +138,11 @@ public class Phantom extends FlyingMob implements Enemy { diff --git a/patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 78e26fe11..42d76b90b 100644 --- a/patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0138-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! 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 1e544c8fa21d028f7c3ac66d66c2362c01326a54..6f7dc1f55d52a0957dc0f3b19644e3dce33ccb0f 100644 +index f579a092670b3e076008dc8c588ec2de0c2337b6..1c8e2813ee24a73a8f83c74b90dc5f6eafe3689d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -265,7 +265,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -17,8 +17,8 @@ index 1e544c8fa21d028f7c3ac66d66c2362c01326a54..6f7dc1f55d52a0957dc0f3b19644e3dc - if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { + if (this.level().purpurConfig.endermanDisableStareAggro || itemstack.is(Blocks.CARVED_PUMPKIN.asItem()) || (this.level().purpurConfig.endermanIgnorePlayerDragonHead && itemstack.is(net.minecraft.world.item.Items.DRAGON_HEAD))) { // Purpur return false; - } else if (org.purpurmc.purpur.PurpurConfig.endermanShortHeight && source.is(net.minecraft.world.damagesource.DamageTypes.IN_WALL)) { return false; // Purpur - no suffocation damage if short height } else { + Vec3 vec3d = player.getViewVector(1.0F).normalize(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index d8c011df48dea4aa70614c60ff544b21b790582e..06234cbb2a947fd6b98fad1ec4e457cac6e050c9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/patches/server/0301-Config-to-remove-explosion-radius-clamp.patch b/patches/server/0301-Config-to-remove-explosion-radius-clamp.patch index cf677a730..8837fbc6f 100644 --- a/patches/server/0301-Config-to-remove-explosion-radius-clamp.patch +++ b/patches/server/0301-Config-to-remove-explosion-radius-clamp.patch @@ -4,6 +4,18 @@ Date: Mon, 9 Jan 2023 19:45:55 -0500 Subject: [PATCH] Config to remove explosion radius clamp +diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +index 8a8895abe609b3be02aa896c40e4a2a240fd86f3..cf6330694b811cef743763e0915824df8f75fe27 100644 +--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java ++++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +@@ -109,6 +109,7 @@ public class EnderDragon extends Mob implements Enemy { + + public EnderDragon(EntityType entitytypes, Level world) { + super(EntityType.ENDER_DRAGON, world); ++ this.explosionSource = new Explosion(world, this, null, null, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, Explosion.BlockInteraction.DESTROY); // Purpur - moved instantiation from field + this.fightOrigin = BlockPos.ZERO; + this.growlTime = 100; + this.nodes = new Node[24]; diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java index e35ebb5b923c2f63e37e5dae006bc4a030e49bb7..dcc3b333f3647631e2fb695d0854036d3bc009be 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java @@ -27,7 +39,7 @@ index e35ebb5b923c2f63e37e5dae006bc4a030e49bb7..dcc3b333f3647631e2fb695d0854036d } // CraftBukkit end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cb044fcf75485cc47f200dcaf2e585da187e3364..14bae922d201ca7fe1d152f84b8bd6d2d4671626 100644 +index eb386c7993f05e6b4c9295f3aaa7af2a95f6a34b..ed458d774b35f5c88dbc8e666ab0c6a935c7de46 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -215,6 +215,11 @@ public class PurpurWorldConfig {