the rest of em

This commit is contained in:
Ben Kerllenevich
2023-06-08 21:16:09 -04:00
parent 11db9467c1
commit c74414fe7a
58 changed files with 279 additions and 283 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] MC-238526 - Fix spawner not spawning water animals correctly
diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
index 35cfa366baf6747105faa93f1220bb9cc31a5bd5..ff3a6755d04f2280a36bd363ab1722e074e37194 100644
index cd2ce5bcb8c30e4657cd0e340d80544c7e805905..c8c6fed3f93903bb5c6145930538d415f6f59738 100644
--- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
@@ -82,6 +82,6 @@ public abstract class WaterAnimal extends PathfinderMob {
@@ -17,10 +17,10 @@ index 35cfa366baf6747105faa93f1220bb9cc31a5bd5..ff3a6755d04f2280a36bd363ab1722e0
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 82d04c5f4705de059507c7633ab276a79152b6b5..f4fa610e93b5c74ca4c804bc13b5edca4019ce90 100644
index 615af0798cb2931d380378bb1ea4918b0b66d206..acd7d1f25a14896315227033133f7598aef97dbe 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -987,8 +987,10 @@ public class PurpurWorldConfig {
@@ -974,8 +974,10 @@ public class PurpurWorldConfig {
}
public boolean spawnerDeactivateByRedstone = false;
@@ -30,4 +30,4 @@ index 82d04c5f4705de059507c7633ab276a79152b6b5..f4fa610e93b5c74ca4c804bc13b5edca
+ spawnerFixMC238526 = getBoolean("blocks.spawner.fix-mc-238526", spawnerFixMC238526);
}
public int spongeAbsorptionArea = 64;
public boolean fixSandDuping = true;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for mob last hurt by player time
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 5718d70cdc4f5afb14320a20c3e723623c1e66c2..d96de1ee220465cb268819f9683d52a1251ff36a 100644
index c53f871238809fc62bb8080eb2b895c2fcac6d29..923f48e002f92a761619dbfb125d6154f4a328c5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1463,13 +1463,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1503,13 +1503,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (entity1 instanceof net.minecraft.world.entity.player.Player) {
net.minecraft.world.entity.player.Player entityhuman = (net.minecraft.world.entity.player.Player) entity1;
@@ -25,7 +25,7 @@ index 5718d70cdc4f5afb14320a20c3e723623c1e66c2..d96de1ee220465cb268819f9683d52a1
if (entityliving2 instanceof net.minecraft.world.entity.player.Player) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 69dbcc299cde87de76ff5c254842e6b89f55d86b..7ef5980f7321662aa7034a74c2f6926846425db9 100644
index 641caa0f74a40ea52f71f3150c0168272b378edf..0eaf7209c636440fa9351797d46954d53dd16c5c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -444,7 +444,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@@ -38,21 +38,21 @@ index 69dbcc299cde87de76ff5c254842e6b89f55d86b..7ef5980f7321662aa7034a74c2f69268
// Paper end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d24bb6256c8bc25fb8fefd547ffccf8b41232687..98a9b8b050d76a16a076c61c5593891ab7e70f03 100644
index acd7d1f25a14896315227033133f7598aef97dbe..4d8080d52627acce69d8cf0667b7f6006e22c95d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -144,6 +144,7 @@ public class PurpurWorldConfig {
public boolean mobsIgnoreRails = false;
public boolean rainStopsAfterSleep = true;
@@ -146,6 +146,7 @@ public class PurpurWorldConfig {
public boolean thunderStopsAfterSleep = true;
public boolean forceHalloweenSeason = false;
public float chanceHeadHalloweenOnEntity = 0.25F;
+ public int mobLastHurtByPlayerTime = 100;
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
@@ -169,6 +170,7 @@ public class PurpurWorldConfig {
mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails);
rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep);
@@ -173,6 +174,7 @@ public class PurpurWorldConfig {
thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep);
forceHalloweenSeason = getBoolean("gameplay-mechanics.halloween.force", forceHalloweenSeason);
chanceHeadHalloweenOnEntity = (float) getDouble("gameplay-mechanics.halloween.head-chance", chanceHeadHalloweenOnEntity);
+ mobLastHurtByPlayerTime = getInt("gameplay-mechanics.mob-last-hurt-by-player-time", mobLastHurtByPlayerTime);
}

View File

@@ -64,10 +64,10 @@ index 5c5a3b169795bf8a527b316c666cbc2105c66622..020afeca950d2c7fb6c7b179d424548f
return InteractionResult.SUCCESS;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 71b803f244ec392898db423652b35e8603507f2f..a060ca451f6c0b1df4f87cbc98b05a8dc3bb2c0f 100644
index 4d8080d52627acce69d8cf0667b7f6006e22c95d..cdab9ffeebfbc35e729610ab2a4d7ece3de2c895 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -732,9 +732,13 @@ public class PurpurWorldConfig {
@@ -736,9 +736,13 @@ public class PurpurWorldConfig {
public boolean anvilAllowColors = false;
public boolean anvilColorsUseMiniMessage;

View File

@@ -24,10 +24,10 @@ index 70997b83fd7631ebf3c5bda67ef77bef605eb464..a8c227e2cb62cfa8225798329cde9078
return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
// Purpur end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a060ca451f6c0b1df4f87cbc98b05a8dc3bb2c0f..77ec7bfd2b31d7346ddc56f8808904be624dc6ef 100644
index cdab9ffeebfbc35e729610ab2a4d7ece3de2c895..45cb432549683e155dc08863972f65815c203b94 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1013,12 +1013,14 @@ public class PurpurWorldConfig {
@@ -1006,12 +1006,14 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromMinecarts = true;
public boolean turtleEggsBypassMobGriefing = false;
public int turtleEggsRandomTickCrackChance = 500;
@@ -41,4 +41,4 @@ index a060ca451f6c0b1df4f87cbc98b05a8dc3bb2c0f..77ec7bfd2b31d7346ddc56f8808904be
+ turtleEggsTramplingFeatherFalling = getBoolean("blocks.turtle_egg.feather-fall-distance-affects-trampling", turtleEggsTramplingFeatherFalling);
}
public int waterInfiniteRequiredSources = 2;
public double axolotlMaxHealth = 14.0D;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for enchant level clamping
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index dfca70fd75dc2d6c169a35a25aba2262680f6ca9..f671a4475ead763d2202ff2208b8ff3490d6b5e3 100644
index b42360ce91de16864ad1e4489dc0c22ba412c749..0f6f14f3ddf18ef111d37434b8c2659c9a6484b9 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1190,7 +1190,7 @@ public final class ItemStack {
@@ -1192,7 +1192,7 @@ public final class ItemStack {
ListTag nbttaglist = this.tag.getList("Enchantments", 10);
@@ -31,10 +31,10 @@ index 2048899f8e4c8211e8dde0d11148d647678009fa..1eec84e217f6dc929091fa7451cd235e
@Nullable
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 3db04bc9611a76b939758ebaac8596e05860f365..3de2e7a17e1234367e4ec6d944b1145781aefeba 100644
index 4ebaf007c785f6805b659d153c207e8f6c800bee..75908d5fdfbf795b2e83860146291619b768df31 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -395,6 +395,7 @@ public class PurpurConfig {
@@ -393,6 +393,7 @@ public class PurpurConfig {
public static boolean allowIncompatibleEnchants = true;
public static boolean allowHigherEnchantsLevels = true;
public static boolean allowUnsafeEnchantCommand = false;
@@ -42,7 +42,7 @@ index 3db04bc9611a76b939758ebaac8596e05860f365..3de2e7a17e1234367e4ec6d944b11457
private static void enchantmentSettings() {
if (version < 5) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
@@ -417,6 +418,7 @@ public class PurpurConfig {
@@ -415,6 +416,7 @@ public class PurpurConfig {
allowIncompatibleEnchants = getBoolean("settings.enchantment.anvil.allow-incompatible-enchants", allowIncompatibleEnchants);
allowHigherEnchantsLevels = getBoolean("settings.enchantment.anvil.allow-higher-enchants-levels", allowHigherEnchantsLevels);
allowUnsafeEnchantCommand = getBoolean("settings.enchantment.allow-unsafe-enchant-command", allowUnsafeEnchants); // allowUnsafeEnchants as default for backwards compatability

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 75df9d6d69ad5e979ab7b99435dbae1dcb901e30..6f47f6c785dc8da6b211ac87630a3d83c42d1576 100644
index 49e4a49331938a01d8ff79a17bbb37f33d5c49ea..231fa50590f2861cc2a733ecfb37fb27add0eff9 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1093,6 +1093,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1060,6 +1060,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) {
@@ -18,19 +18,19 @@ index 75df9d6d69ad5e979ab7b99435dbae1dcb901e30..6f47f6c785dc8da6b211ac87630a3d83
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
List<Villager> list = world.getEntitiesOfClass(Villager.class, axisalignedbb);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 77ec7bfd2b31d7346ddc56f8808904be624dc6ef..dd39765b0b89126421834c1b9c79882347ae8a5c 100644
index 45cb432549683e155dc08863972f65815c203b94..bf94c241a737f21274e2e846a911318148a029b0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2723,6 +2723,8 @@ public class PurpurWorldConfig {
@@ -2303,6 +2303,8 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerDisplayTradeItem = true;
+ public int villagerSpawnIronGolemRadius = 0;
+ public int villagerSpawnIronGolemLimit = 0;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2756,6 +2758,8 @@ public class PurpurWorldConfig {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.villager.attributes.max-health", villagerMaxHealth);
@@ -2331,6 +2333,8 @@ public class PurpurWorldConfig {
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);
@@ -38,4 +38,4 @@ index 77ec7bfd2b31d7346ddc56f8808904be624dc6ef..dd39765b0b89126421834c1b9c798823
+ villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
}
public boolean vindicatorRidable = false;
public double vindicatorMaxHealth = 24.0D;

View File

@@ -26,10 +26,10 @@ index 0a95842c53a9d0286c57bcb42db97e468e30fb7d..e2d42e7947a237dd060ec1b9b63ac6ca
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
index 17a7fab20b4174273354fdc2fc700b7f2d669a98..a7578e112e80ed2585a7eb4fff9542f6068546be 100644
index 0e6923e6d440e846b3db47c6b8357f7e0e85ad65..48356602e9e112c4f059777467d8adf6d5147184 100644
--- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
+++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
@@ -463,7 +463,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
@@ -465,7 +465,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
return BlockPathTypes.BLOCKED;
} else {
// Paper end
@@ -38,7 +38,7 @@ index 17a7fab20b4174273354fdc2fc700b7f2d669a98..a7578e112e80ed2585a7eb4fff9542f6
return BlockPathTypes.DANGER_OTHER;
}
@@ -493,7 +493,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
@@ -498,7 +498,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
} else if (!blockState.is(BlockTags.TRAPDOORS) && !blockState.is(Blocks.LILY_PAD) && !blockState.is(Blocks.BIG_DRIPLEAF)) {
if (blockState.is(Blocks.POWDER_SNOW)) {
return BlockPathTypes.POWDER_SNOW;
@@ -48,10 +48,10 @@ index 17a7fab20b4174273354fdc2fc700b7f2d669a98..a7578e112e80ed2585a7eb4fff9542f6
return BlockPathTypes.STICKY_HONEY;
} else if (blockState.is(Blocks.COCOA)) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 3de2e7a17e1234367e4ec6d944b1145781aefeba..15ed564a579237dd1f5d6ce56ccb473f038a8c13 100644
index 75908d5fdfbf795b2e83860146291619b768df31..c731c389ca4e9114512a00cd55933debfbefc9f5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -207,8 +207,10 @@ public class PurpurConfig {
@@ -205,8 +205,10 @@ public class PurpurConfig {
}
public static String deathMsgRunWithScissors = "<player> slipped and fell on their shears";
@@ -63,10 +63,10 @@ index 3de2e7a17e1234367e4ec6d944b1145781aefeba..15ed564a579237dd1f5d6ce56ccb473f
public static boolean advancementOnlyBroadcastToAffectedPlayer = false;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dd39765b0b89126421834c1b9c79882347ae8a5c..2b405b145c4369933f2aee5262bcee1a4c077978 100644
index bf94c241a737f21274e2e846a911318148a029b0..645963cbc96e77eb45426e183c3df3a804e6b3f5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1008,6 +1008,11 @@ public class PurpurWorldConfig {
@@ -1001,6 +1001,11 @@ public class PurpurWorldConfig {
spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable damage settings for magma blocks
diff --git a/src/main/java/net/minecraft/world/level/block/MagmaBlock.java b/src/main/java/net/minecraft/world/level/block/MagmaBlock.java
index 12ffb5714f088f4aeafa1ad6a36f5b64a86c4c96..293aa5c8f91a997045f8d9f2951fe3a7f01f0642 100644
index 1b766045687e4dcded5cbcc50b746c55b9a34e22..be365914856593bb3c4e1945cc990786072f2953 100644
--- a/src/main/java/net/minecraft/world/level/block/MagmaBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/MagmaBlock.java
@@ -27,7 +27,7 @@ public class MagmaBlock extends Block {
@@ -22,7 +22,7 @@ public class MagmaBlock extends Block {
@Override
public void stepOn(Level world, BlockPos pos, BlockState state, Entity entity) {
@@ -18,10 +18,10 @@ index 12ffb5714f088f4aeafa1ad6a36f5b64a86c4c96..293aa5c8f91a997045f8d9f2951fe3a7
entity.hurt(world.damageSources().hotFloor(), 1.0F);
org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2b405b145c4369933f2aee5262bcee1a4c077978..2a1740fe8aab03c59427b01277068e6c87d6b241 100644
index 645963cbc96e77eb45426e183c3df3a804e6b3f5..258d979638e716ce822951544fb2821014816773 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -939,6 +939,13 @@ public class PurpurWorldConfig {
@@ -943,6 +943,13 @@ public class PurpurWorldConfig {
pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit);
}

View File

@@ -22,10 +22,10 @@ index 14e00c7feb1c051d56a3d27cd00dcef072dd771a..4952fb1aaaafb55baa0fddb389f966a1
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2a1740fe8aab03c59427b01277068e6c87d6b241..aaeceeb1969c6c222a0d252d207e01762b7fb27c 100644
index 258d979638e716ce822951544fb2821014816773..9db72cc34ce9cb8424a69070745246671ee49a7c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -920,9 +920,11 @@ public class PurpurWorldConfig {
@@ -924,9 +924,11 @@ public class PurpurWorldConfig {
public boolean mobsSpawnOnPackedIce = true;
public boolean mobsSpawnOnBlueIce = true;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Skeletons eat wither roses
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
index 78fc17c45e566e0844ffbebb85044b9bfe64c6db..64a5e000adbfa5de2abc32ea9182847dbf83293d 100644
index 27b3536224a9ddee098ad7765bf8f5f924b717d1..3bfe3e00bb9d6d99cc744488f73de2186c330671 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
@@ -14,6 +14,16 @@ import net.minecraft.world.item.Items;
@@ -25,7 +25,7 @@ index 78fc17c45e566e0844ffbebb85044b9bfe64c6db..64a5e000adbfa5de2abc32ea9182847d
public class Skeleton extends AbstractSkeleton {
private static final int TOTAL_CONVERSION_TIME = 300;
@@ -174,4 +184,67 @@ public class Skeleton extends AbstractSkeleton {
@@ -157,4 +167,67 @@ public class Skeleton extends AbstractSkeleton {
}
}
@@ -94,22 +94,22 @@ index 78fc17c45e566e0844ffbebb85044b9bfe64c6db..64a5e000adbfa5de2abc32ea9182847d
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aaeceeb1969c6c222a0d252d207e01762b7fb27c..2120da75446b48d58f16c187a01d73e4e1eb7a1e 100644
index 9db72cc34ce9cb8424a69070745246671ee49a7c..d766e659f4fdb123c399d5bfff422806cc6e212f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2407,6 +2407,7 @@ public class PurpurWorldConfig {
@@ -2070,6 +2070,7 @@ public class PurpurWorldConfig {
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
+ public int skeletonFeedWitherRoses = 0;
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2420,6 +2421,7 @@ public class PurpurWorldConfig {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.skeleton.attributes.max-health", skeletonMaxHealth);
@@ -2080,6 +2081,7 @@ public class PurpurWorldConfig {
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);
+ skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses);
}
public boolean skeletonHorseRidableInWater = true;
public double skeletonHorseMaxHealthMin = 15.0D;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Enchantment Table Persists Lapis
diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
index c2fc00509bf3690d359928e8d352d4b3c2ca1491..69ae671be07b1928e778399551991777829e432a 100644
index 0c3c3902e84010684ef703545c1377d8a6f32580..556e36c96820bfeba46f8e98b905c4456b969545 100644
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
@@ -38,6 +38,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent;
@@ -71,10 +71,10 @@ index c2fc00509bf3690d359928e8d352d4b3c2ca1491..69ae671be07b1928e778399551991777
});
}
diff --git a/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java b/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java
index f4ee3ce287528337a0f9a3b612c157254f895a58..37a888e5db65b927094b43775ae9d4098244f809 100644
index 839b7bc9392906dca384003468746963631fe095..286f34eef22a85be3fe9747dc3c3f9a7d51f437c 100644
--- a/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java
@@ -28,6 +28,8 @@ import net.minecraft.world.level.pathfinder.PathComputationType;
@@ -29,6 +29,8 @@ import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
@@ -83,7 +83,7 @@ index f4ee3ce287528337a0f9a3b612c157254f895a58..37a888e5db65b927094b43775ae9d409
public class EnchantmentTableBlock extends BaseEntityBlock {
protected static final VoxelShape SHAPE = Block.box(0.0D, 0.0D, 0.0D, 16.0D, 12.0D, 16.0D);
@@ -120,4 +122,18 @@ public class EnchantmentTableBlock extends BaseEntityBlock {
@@ -121,4 +123,18 @@ public class EnchantmentTableBlock extends BaseEntityBlock {
public boolean isPathfindable(BlockState state, BlockGetter world, BlockPos pos, PathComputationType type) {
return false;
}
@@ -146,11 +146,11 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2120da75446b48d58f16c187a01d73e4e1eb7a1e..61081f7e117777174b064353aa6453cecbad275d 100644
index d766e659f4fdb123c399d5bfff422806cc6e212f..a5d07401e670775cd27ebee2daaa04194dd4fdc4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1442,6 +1442,11 @@ public class PurpurWorldConfig {
elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp);
@@ -745,6 +745,11 @@ public class PurpurWorldConfig {
anvilDamageObsidianAmount = getInt("blocks.anvil.obsidian-used-for-damage", anvilDamageObsidianAmount);
}
+ public boolean enchantmentTableLapisPersists = false;
@@ -158,6 +158,6 @@ index 2120da75446b48d58f16c187a01d73e4e1eb7a1e..61081f7e117777174b064353aa6453ce
+ enchantmentTableLapisPersists = getBoolean("blocks.enchantment-table.lapis-persists", enchantmentTableLapisPersists);
+ }
+
public boolean enderDragonRidable = false;
public boolean enderDragonRidableInWater = true;
public boolean enderDragonControllable = true;
public double azaleaGrowthChance = 0.0D;
private void azaleaSettings() {
azaleaGrowthChance = getDouble("blocks.azalea.growth-chance", azaleaGrowthChance);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 565ae94ff218e18e38a5502c06d0caca407293e3..b5ff4750b669ffd60d7f3c926691fdce11dd52e4 100644
index 8e90ee2ee59395533dc8803ded3f06c694a02e4f..1dd46063aa511febc3621a36e8d7172c3bdb012a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2452,7 +2452,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -2448,7 +2448,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
do {
instant1 = (Instant) this.lastChatTimeStamp.get();
if (timestamp.isBefore(instant1)) {
@@ -18,10 +18,10 @@ index 565ae94ff218e18e38a5502c06d0caca407293e3..b5ff4750b669ffd60d7f3c926691fdce
} while (!this.lastChatTimeStamp.compareAndSet(instant1, timestamp));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 15ed564a579237dd1f5d6ce56ccb473f038a8c13..9e87afb01e569e6d5c2846b931440c4ce395adae 100644
index c731c389ca4e9114512a00cd55933debfbefc9f5..ad7153e27b04fc12a4ff97f1563584471626c6eb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -461,9 +461,11 @@ public class PurpurConfig {
@@ -459,9 +459,11 @@ public class PurpurConfig {
public static boolean useUPnP = false;
public static boolean maxJoinsPerSecond = false;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config for sculk shrieker can_summon state
diff --git a/src/main/java/net/minecraft/world/level/block/SculkShriekerBlock.java b/src/main/java/net/minecraft/world/level/block/SculkShriekerBlock.java
index 437b44fb68bcbe81d1c431689431225b6a17a1a6..06d091b7c4df949c4abda16c4f73c194a71a4669 100644
index 02d01eabb9606ae8c3b76ad9fa4bb9a525e247b1..ce51fec4a874f9466f9966684c535315dbf40b9e 100644
--- a/src/main/java/net/minecraft/world/level/block/SculkShriekerBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SculkShriekerBlock.java
@@ -130,7 +130,7 @@ public class SculkShriekerBlock extends BaseEntityBlock implements SimpleWaterlo
@@ -18,10 +18,10 @@ index 437b44fb68bcbe81d1c431689431225b6a17a1a6..06d091b7c4df949c4abda16c4f73c194
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 61081f7e117777174b064353aa6453cecbad275d..f31c457aa8bbccb4b9a6db9ab73eaeb2094140b7 100644
index a5d07401e670775cd27ebee2daaa04194dd4fdc4..8107a8c01bccbad7e6896f95d4a7bae52f57ce3a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -984,6 +984,11 @@ public class PurpurWorldConfig {
@@ -1005,6 +1005,11 @@ public class PurpurWorldConfig {
fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping);
}

View File

@@ -29,10 +29,10 @@ index 88faea00be60a519f56f975a5311df5e1eb3e6b8..cbb726ac367be81e27d3a86643baf7c4
int i = aenumdirection.length;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f31c457aa8bbccb4b9a6db9ab73eaeb2094140b7..2e1da0979b9672a4361dddf97bd8359a30c4d943 100644
index 8107a8c01bccbad7e6896f95d4a7bae52f57ce3a..1a9b1e0f2ffe47408a83e9de2fd2f258b6dd8595 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -821,6 +821,11 @@ public class PurpurWorldConfig {
@@ -830,6 +830,11 @@ public class PurpurWorldConfig {
composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess);
}

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Add local difficulty api
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 8f0234296397ca2d4a607dcea6093c6c606dc7d2..a5260ff68e91f2594bcc6693663c3da2e477e5dd 100644
index 439857a814212b36e475461a01b320731a10b86d..2456d3710592dfc62b60dd609602306a20bd825a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2284,6 +2284,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().dragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().dragonFight());
@@ -2278,6 +2278,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
}
+ // Purpur start

View File

@@ -7,10 +7,10 @@ Paper patches RNG maniplulation by using a shared (and locked) random source.
This comes with a performance gain, but technical players may prefer the ability to manipulate RNG.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index cf7eb47706b5344fa7619aeda88c9641bda0ad42..fe0b002a8ebf2f8495bab456854483c341e6a14e 100644
index ed73296c9c2e07c3b24067946f996c13aa777cbb..61699b09ab5005dec792b276ccaa62599dae62f7 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -580,7 +580,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -542,7 +542,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
this.bb = Entity.INITIAL_AABB;
this.stuckSpeedMultiplier = Vec3.ZERO;
this.nextStep = 1.0F;
@@ -20,7 +20,7 @@ index cf7eb47706b5344fa7619aeda88c9641bda0ad42..fe0b002a8ebf2f8495bab456854483c3
this.fluidHeight = new Object2DoubleArrayMap(2);
this.fluidOnEyes = new HashSet();
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 2a2b56940cd39ca0f14dc8246b41cf6640caa3bd..31c89a6b8f766e1fd03608723c2d03f7f64e2e9b 100644
index b4d3ee520e8c10755ad0c608b4660d6213fcb5ca..e6910b5ee3828ca2242d3358b9378286bb9de0f8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
@@ -46,7 +46,7 @@ public class Squid extends WaterAnimal {
@@ -33,10 +33,10 @@ index 2a2b56940cd39ca0f14dc8246b41cf6640caa3bd..31c89a6b8f766e1fd03608723c2d03f7
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2e1da0979b9672a4361dddf97bd8359a30c4d943..7769ceb691f5563843d69463f89c3c49b095a3f4 100644
index 1a9b1e0f2ffe47408a83e9de2fd2f258b6dd8595..ffde033727a1587cf679a9626b562a17d6048539 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -206,9 +206,11 @@ public class PurpurWorldConfig {
@@ -210,9 +210,11 @@ public class PurpurWorldConfig {
public int entityLifeSpan = 0;
public float entityLeftHandedChance = 0.05f;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Send client custom name of BE
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
index 64c55f3ebdbc27f7f0cea38247ff7b35fa99e341..e438e7e018f643d82ddf5efbf72779876c516d1a 100644
index 2f19f6ac5de454845f5d13a3ebb93af625b2afc8..3431f1a00ae2918b91a6b7a449e613e6e12ff6d4 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -206,10 +206,24 @@ public abstract class BlockEntity {
@@ -205,10 +205,24 @@ public abstract class BlockEntity {
@Nullable
public Packet<ClientGamePacketListener> getUpdatePacket() {

View File

@@ -85,19 +85,19 @@ index 574ebb3a2fcd0e4e426a8a7ee88d722ed3b9c3f5..842b921799111789b37a34b76644c921
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index c318f0b6d956c19d16b13c1aa99beda704d52027..45d864679816cb39420e079d37220a967e9d71d1 100644
index 0f6f14f3ddf18ef111d37434b8c2659c9a6484b9..57bdbfd436feb2004f8c1a45f4a1658e7167582b 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -111,6 +111,7 @@ import org.bukkit.event.world.StructureGrowEvent;
@@ -113,6 +113,7 @@ import org.bukkit.event.world.StructureGrowEvent;
public final class ItemStack {
+ public boolean isExactRecipeIngredient = false; // PaperPR
public static final Codec<ItemStack> CODEC = RecordCodecBuilder.create((instance) -> {
return instance.group(BuiltInRegistries.ITEM.byNameCodec().fieldOf("id").forGetter((itemstack) -> {
return itemstack.item;
return instance.group(BuiltInRegistries.ITEM.byNameCodec().fieldOf("id").forGetter(ItemStack::getItem), Codec.INT.fieldOf("Count").forGetter(ItemStack::getCount), CompoundTag.CODEC.optionalFieldOf("tag").forGetter((itemstack) -> {
return Optional.ofNullable(itemstack.getTag());
diff --git a/src/main/java/net/minecraft/world/item/crafting/Ingredient.java b/src/main/java/net/minecraft/world/item/crafting/Ingredient.java
index dbc3040bc087a6016a491caf76019663c1cd1b4c..e24034d1ce4bb529de084aab69a531227e0c2f79 100644
index 3ca086418ad037c48775db73d2b9c410acf1e326..f47eab4c31925f51de4a6bc8be730281cb3388fc 100644
--- a/src/main/java/net/minecraft/world/item/crafting/Ingredient.java
+++ b/src/main/java/net/minecraft/world/item/crafting/Ingredient.java
@@ -51,7 +51,11 @@ public final class Ingredient implements Predicate<ItemStack> {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Allow custom ChatDecorators
Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6349ef5221109b7c46a437ca069e802a7895a229..b710474e2a714a6502e0256c12fcfcba7af8e142 100644
index e059da8ea6925797b4aca13e937dc843888c32c6..17c20539170e48187bfc356f5cb905f4ae71409b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2667,6 +2667,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2656,6 +2656,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Chat Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); // Paper
public ChatDecorator getChatDecorator() {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Cache server motd
Paper ported my patch in an odd way. Keeping my patch around to reduce logic on the motd getter
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index b710474e2a714a6502e0256c12fcfcba7af8e142..0decdb4687734ed901929115d176e5128db4d390 100644
index 17c20539170e48187bfc356f5cb905f4ae71409b..bb6de1c489a9bbf34fc9ca5244ccd34ad4b39cc8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -250,7 +250,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -18,7 +18,7 @@ index b710474e2a714a6502e0256c12fcfcba7af8e142..0decdb4687734ed901929115d176e512
private int playerIdleTimeout;
public final long[] tickTimes;
// Paper start
@@ -1903,17 +1903,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1899,17 +1899,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public net.kyori.adventure.text.Component getComponentMotd() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add more logger output for invalid movement kicks
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f3ce7a1b5af187f281e0a3da03494ed323a585f9..11560dc4ab6eb33fcb1ffcfbd49ea663d754fd8a 100644
index 1dd46063aa511febc3621a36e8d7172c3bdb012a..f78d0e6241930909b7b227539c8698eabc270490 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -858,6 +858,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -865,6 +865,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
if (packet.getId() == this.awaitingTeleport) {
if (this.awaitingPositionFromClient == null) {
this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause
@@ -16,10 +16,10 @@ index f3ce7a1b5af187f281e0a3da03494ed323a585f9..11560dc4ab6eb33fcb1ffcfbd49ea663
return;
}
@@ -1438,8 +1439,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -1440,8 +1441,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@Override
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
- if (ServerGamePacketListenerImpl.containsInvalidValues(packet.getX(0.0D), packet.getY(0.0D), packet.getZ(0.0D), packet.getYRot(0.0F), packet.getXRot(0.0F))) {
+ // Purpur start
+ boolean invalidX = Double.isNaN(packet.getX(0.0D));
@@ -32,5 +32,5 @@ index f3ce7a1b5af187f281e0a3da03494ed323a585f9..11560dc4ab6eb33fcb1ffcfbd49ea663
+ ServerGamePacketListenerImpl.LOGGER.warn(String.format("Disconnected on move player packet. Invalid data: x=%b, y=%b, z=%b, yaw=%b, pitch=%b", invalidX, invalidY, invalidZ, invalidYaw, invalidPitch));
+ // Purpur end
} else {
ServerLevel worldserver = this.player.getLevel();
ServerLevel worldserver = this.player.serverLevel();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add Bee API
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java
index e97731c58b86562827fb6b0a32a7a00e7b714cd3..d47dc0c3fe8c2b80d7b7eb828a12af6eb32145e4 100644
index 12ed22c17b50ff9c2050eedc0c9e1f2f1d011e8c..aef5c9b0b0b683cf7d39efe7c4cd0e9aa3a20162 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -804,6 +804,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -752,6 +752,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
if (optional.isPresent()) {
Bee.this.savedFlowerPos = (BlockPos) optional.get();
Bee.this.navigation.moveTo((double) Bee.this.savedFlowerPos.getX() + 0.5D, (double) Bee.this.savedFlowerPos.getY() + 0.5D, (double) Bee.this.savedFlowerPos.getZ() + 0.5D, 1.2000000476837158D);
@@ -16,7 +16,7 @@ index e97731c58b86562827fb6b0a32a7a00e7b714cd3..d47dc0c3fe8c2b80d7b7eb828a12af6e
return true;
} else {
Bee.this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(Bee.this.random, 20, 60);
@@ -860,6 +861,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -808,6 +809,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.pollinating = false;
Bee.this.navigation.stop();
Bee.this.remainingCooldownBeforeLocatingNewFlower = 200;
@@ -24,7 +24,7 @@ index e97731c58b86562827fb6b0a32a7a00e7b714cd3..d47dc0c3fe8c2b80d7b7eb828a12af6e
}
@Override
@@ -906,6 +908,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -854,6 +856,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.setWantedPos();
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 6c6fe8b0a6cb00647aa2cc8ad4dd56c0ce87721c..a3a7bf5dba5014df499eefb430b888743f1d2a4a 100644
index 3ef465b4ff9f3a602f8c289e65e5a9548846cbcd..ce8179d33d5a6a187e16496731798e42488cb87a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1465,6 +1465,42 @@ public final class CraftServer implements Server {
@@ -1458,6 +1458,42 @@ public final class CraftServer implements Server {
public void removeFuel(org.bukkit.Material material) {
net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)));
}
@@ -52,10 +52,10 @@ index 6c6fe8b0a6cb00647aa2cc8ad4dd56c0ce87721c..a3a7bf5dba5014df499eefb430b88874
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index a5260ff68e91f2594bcc6693663c3da2e477e5dd..68df53648c9b76cf1b6abcaa90c5e8938e9e0d05 100644
index 2456d3710592dfc62b60dd609602306a20bd825a..b0a9e40e6054a23a9ebe8019ff40850942d6938e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2288,6 +2288,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -2282,6 +2282,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
public float getLocalDifficultyAt(Location location) {
return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty();
}
@@ -99,10 +99,10 @@ index a5260ff68e91f2594bcc6693663c3da2e477e5dd..68df53648c9b76cf1b6abcaa90c5e893
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 9b2f7d293669f0e9adcb8292e4a27a460321f5a0..2d74a3c6aeaa10abfbd19a424f3d27427a8d85c5 100644
index 48a330e253d5db20dbc834cf0e802a6c114e97a0..f71f9b1c6810bd021ae194386cec3792c8e57c62 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3247,5 +3247,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3210,5 +3210,48 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] mob spawning option to ignore creative players
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index ba4f51e081f4352530998a9a7fbf025216e2f503..132041362b2707946bd386c88bbdf871a317afb7 100644
index 089dd93d4cd4c1f72e63c4944b3b82c1e2ba732d..87e9bde78e4e90d17a02c1ed227c07fbe8c24f24 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -260,7 +260,7 @@ public final class NaturalSpawner {
@@ -18,10 +18,10 @@ index ba4f51e081f4352530998a9a7fbf025216e2f503..132041362b2707946bd386c88bbdf871
if (entityhuman != null) {
double d2 = entityhuman.distanceToSqr(d0, (double) i, d1);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c5b5bbd4856f4c3da4cc79c13d4f547c5a5d50c7..772cfde0e31891e9cdca4c079f33b04bf2a7d81e 100644
index ffde033727a1587cf679a9626b562a17d6048539..e8b61afb7e64cf1fc5cab49bc66f48cb9bbc71fc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -379,6 +379,7 @@ public class PurpurWorldConfig {
@@ -383,6 +383,7 @@ public class PurpurWorldConfig {
public boolean phantomSpawning;
public boolean villagerTraderSpawning;
public boolean villageSiegeSpawning;
@@ -29,7 +29,7 @@ index c5b5bbd4856f4c3da4cc79c13d4f547c5a5d50c7..772cfde0e31891e9cdca4c079f33b04b
private void mobSpawnerSettings() {
// values of "default" or null will default to true only if the world environment is normal (aka overworld)
Predicate<Boolean> predicate = (bool) -> (bool != null && bool) || (bool == null && environment == World.Environment.NORMAL);
@@ -387,6 +388,7 @@ public class PurpurWorldConfig {
@@ -391,6 +392,7 @@ public class PurpurWorldConfig {
phantomSpawning = getBoolean("gameplay-mechanics.mob-spawning.phantoms", predicate);
villagerTraderSpawning = getBoolean("gameplay-mechanics.mob-spawning.wandering-traders", predicate);
villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate);

View File

@@ -5,32 +5,32 @@ Subject: [PATCH] Add skeleton bow accuracy option
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index 32a303f9ac9768daf621e3aa561cd6b31e5f5dff..9c8713ef3aeb2ff203bd0328d15d80c2d78d09e9 100644
index 5ce17aec68ef65436599fde0e8d8d8c31c8a246a..0ea8ccd40729a6ddf09c4757e165460fd6d94dc9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -182,7 +182,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -180,7 +180,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
double d2 = target.getZ() - this.getZ();
double d3 = Math.sqrt(d0 * d0 + d2 * d2);
- entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level.getDifficulty().getId() * 4));
+ entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, this.level.purpurConfig.skeletonBowAccuracyMap.getOrDefault(this.level.getDifficulty().getId(), (float) (14 - this.level.getDifficulty().getId() * 4))); // Purpur
- entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level().getDifficulty().getId() * 4));
+ entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, this.level().purpurConfig.skeletonBowAccuracyMap.getOrDefault(this.level().getDifficulty().getId(), (float) (14 - this.level().getDifficulty().getId() * 4))); // Purpur
// CraftBukkit start
org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper
if (event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 890697f97c5eb91ced0e31069c64139b99a902f1..121f08d682afad6d30e72b32950f69db5dd8b646 100644
index e8b61afb7e64cf1fc5cab49bc66f48cb9bbc71fc..c15c2b51d8818e50355fd7f77a05a89b023e3460 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2427,6 +2427,8 @@ public class PurpurWorldConfig {
@@ -2090,6 +2090,8 @@ public class PurpurWorldConfig {
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
public int skeletonFeedWitherRoses = 0;
+ public String skeletonBowAccuracy = "14 - difficulty * 4";
+ public Map<Integer, Float> skeletonBowAccuracyMap = new HashMap<>();
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2441,6 +2443,18 @@ public class PurpurWorldConfig {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.skeleton.attributes.max-health", skeletonMaxHealth);
@@ -2101,6 +2103,18 @@ public class PurpurWorldConfig {
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);
skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses);
@@ -48,4 +48,4 @@ index 890697f97c5eb91ced0e31069c64139b99a902f1..121f08d682afad6d30e72b32950f69db
+ }
}
public boolean skeletonHorseRidableInWater = true;
public double skeletonHorseMaxHealthMin = 15.0D;

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Allay respect item NBT
diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
index 1c136aa0d6dcad18b5e6e2084d2c166105d54a3a..e95540122ae6a486ce12a5f50fb4d2d073239554 100644
index 339c70f101d026a100a801e66cf514b3329a89d2..cbfe6e47c480890ee98ce86921fb018137abcb0f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
@@ -409,9 +409,31 @@ public class Allay extends PathfinderMob implements InventoryCarrier {
@@ -370,9 +370,31 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@Override
public boolean wantsToPickUp(ItemStack stack) {
- ItemStack itemstack1 = this.getItemInHand(InteractionHand.MAIN_HAND);
-
- return !itemstack1.isEmpty() && this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && this.inventory.canAddItem(stack) && this.allayConsidersItemEqual(itemstack1, stack);
- return !itemstack1.isEmpty() && this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && this.inventory.canAddItem(stack) && this.allayConsidersItemEqual(itemstack1, stack);
+ // Purpur start
+ if (!this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
+ if (!this.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
+ return false;
+ }
+ ItemStack itemStack = this.getItemInHand(InteractionHand.MAIN_HAND);
@@ -29,7 +29,7 @@ index 1c136aa0d6dcad18b5e6e2084d2c166105d54a3a..e95540122ae6a486ce12a5f50fb4d2d0
+ if (!this.inventory.canAddItem(stack)) {
+ return false;
+ }
+ for (String tag : this.level.purpurConfig.allayRespectNBT) {
+ for (String tag : this.level().purpurConfig.allayRespectNBT) {
+ if (stack.hasTag() && itemStack.hasTag()) {
+ Tag tag1 = stack.getTag().get(tag);
+ Tag tag2 = itemStack.getTag().get(tag);
@@ -44,20 +44,19 @@ index 1c136aa0d6dcad18b5e6e2084d2c166105d54a3a..e95540122ae6a486ce12a5f50fb4d2d0
private boolean allayConsidersItemEqual(ItemStack stack, ItemStack stack2) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 121f08d682afad6d30e72b32950f69db5dd8b646..1b5d3d214b7390cb960f5ee180a21a2bc54e8123 100644
index c15c2b51d8818e50355fd7f77a05a89b023e3460..38d30017367320aeeb3c6d7524b2e800ba5a8cf5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1070,10 +1070,13 @@ public class PurpurWorldConfig {
public boolean allayRidable = false;
public boolean allayRidableInWater = true;
public boolean allayControllable = true;
+ public List<String> allayRespectNBT = new ArrayList<>();
private void allaySettings() {
allayRidable = getBoolean("mobs.allay.ridable", allayRidable);
allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater);
allayControllable = getBoolean("mobs.allay.controllable", allayControllable);
+ allayRespectNBT.clear();
+ getList("mobs.allay.respect-nbt", new ArrayList<>()).forEach(key -> allayRespectNBT.add(key.toString()));
@@ -1049,6 +1049,12 @@ public class PurpurWorldConfig {
turtleEggsTramplingFeatherFalling = getBoolean("blocks.turtle_egg.feather-fall-distance-affects-trampling", turtleEggsTramplingFeatherFalling);
}
public boolean axolotlRidable = false;
+ public List<String> allayRespectNBT = new ArrayList<>();
+ private void allaySettings() {
+ allayRespectNBT.clear();
+ getList("mobs.allay.respect-nbt", new ArrayList<>()).forEach(key -> allayRespectNBT.add(key.toString()));
+ }
+
public double axolotlMaxHealth = 14.0D;
public int axolotlBreedingTicks = 6000;
public boolean axolotlTakeDamageFromWater = false;

View File

@@ -5,21 +5,21 @@ Subject: [PATCH] Add death screen API
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java
index 53b75f5737a910ffc5448cd9a85eae57f9c1488f..ea95873dd034779e56a8b924cd27f9375be05daf 100644
index 76a62d872bc2ad12efd9522d8dd445b8d2342525..075a891413d072998e6d468e76d839e1a3bf7da9 100644
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java
@@ -9,6 +9,7 @@ public class ClientboundPlayerCombatKillPacket implements Packet<ClientGamePacke
@@ -7,6 +7,7 @@ import net.minecraft.network.protocol.Packet;
public class ClientboundPlayerCombatKillPacket implements Packet<ClientGamePacketListener> {
private final int playerId;
private final int killerId;
private final Component message;
+ public net.kyori.adventure.text.Component adventure$message; // Purpur
public ClientboundPlayerCombatKillPacket(CombatTracker damageTracker, Component message) {
this(damageTracker.getMob().getId(), damageTracker.getKillerId(), message);
@@ -30,6 +31,12 @@ public class ClientboundPlayerCombatKillPacket implements Packet<ClientGamePacke
public ClientboundPlayerCombatKillPacket(int entityId, Component message) {
this.playerId = entityId;
@@ -21,6 +22,12 @@ public class ClientboundPlayerCombatKillPacket implements Packet<ClientGamePacke
@Override
public void write(FriendlyByteBuf buf) {
buf.writeVarInt(this.playerId);
buf.writeInt(this.killerId);
+ // Purpur start
+ if (this.adventure$message != null) {
+ buf.writeComponent(this.adventure$message);
@@ -30,10 +30,10 @@ index 53b75f5737a910ffc5448cd9a85eae57f9c1488f..ea95873dd034779e56a8b924cd27f937
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 2d74a3c6aeaa10abfbd19a424f3d27427a8d85c5..e363891e8ab872ed24c557e3f94110f36c6fb277 100644
index f71f9b1c6810bd021ae194386cec3792c8e57c62..d511adbeaf9ae22256e8e316237f9d487e04c2bf 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -3290,5 +3290,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3253,5 +3253,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket(ClientboundCustomPayloadPacket.DEBUG_GAME_TEST_CLEAR, new FriendlyByteBuf(io.netty.buffer.Unpooled.buffer())));
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement ram and rambar commands
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 6b05907bfec377e72a8858534d001bda10a1c88a..08bed4f01a27162902aa63bb8d35a9159fdcfc4e 100644
index 5f6cc8b16af6dce3b74f0c2c662b0ecf84ae8d36..022516a4d43cb5205a0b9ede2f5774414e3a47ed 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -228,6 +228,8 @@ public class Commands {
@@ -230,6 +230,8 @@ public class Commands {
org.purpurmc.purpur.command.UptimeCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.TPSBarCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.CompassCommand.register(this.dispatcher); // Purpur
@@ -18,7 +18,7 @@ index 6b05907bfec377e72a8858534d001bda10a1c88a..08bed4f01a27162902aa63bb8d35a915
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index a9158f9572a4c787247721a36465e362ad975c20..852266234cf3d63e3b23a71639e40defca91c1b8 100644
index 2e5d186ac2904e3214e2e037f1eb1d486dc4a4a2..4917e4a4b984b1ba3cdf884218879e82a01e045b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -279,6 +279,7 @@ public class ServerPlayer extends Player {
@@ -29,7 +29,7 @@ index a9158f9572a4c787247721a36465e362ad975c20..852266234cf3d63e3b23a71639e40def
private boolean tpsBar = false; // Purpur
private boolean compassBar = false; // Purpur
@@ -520,6 +521,7 @@ public class ServerPlayer extends Player {
@@ -561,6 +562,7 @@ public class ServerPlayer extends Player {
}
}
@@ -37,7 +37,7 @@ index a9158f9572a4c787247721a36465e362ad975c20..852266234cf3d63e3b23a71639e40def
if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur
if (nbt.contains("Purpur.CompassBar")) { this.compassBar = nbt.getBoolean("Purpur.CompassBar"); } // Purpur
}
@@ -588,6 +590,7 @@ public class ServerPlayer extends Player {
@@ -629,6 +631,7 @@ public class ServerPlayer extends Player {
}
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
@@ -45,7 +45,7 @@ index a9158f9572a4c787247721a36465e362ad975c20..852266234cf3d63e3b23a71639e40def
nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur
nbt.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur
}
@@ -2713,6 +2716,14 @@ public class ServerPlayer extends Player {
@@ -2788,6 +2791,14 @@ public class ServerPlayer extends Player {
}
}
@@ -61,10 +61,10 @@ index a9158f9572a4c787247721a36465e362ad975c20..852266234cf3d63e3b23a71639e40def
return this.tpsBar;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 9e87afb01e569e6d5c2846b931440c4ce395adae..4142820c3053d77d4ae7186fec968d624f893056 100644
index ad7153e27b04fc12a4ff97f1563584471626c6eb..df67cee913c64fa1cac3aff8522bf656eb6ff653 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -182,6 +182,8 @@ public class PurpurConfig {
@@ -181,6 +181,8 @@ public class PurpurConfig {
public static String creditsCommandOutput = "<green>%s has been shown the end credits";
public static String demoCommandOutput = "<green>%s has been shown the demo screen";
public static String pingCommandOutput = "<green>%s's ping is %sms";
@@ -73,7 +73,7 @@ index 9e87afb01e569e6d5c2846b931440c4ce395adae..4142820c3053d77d4ae7186fec968d62
public static String tpsbarCommandOutput = "<green>Tpsbar toggled <onoff> for <target>";
public static String dontRunWithScissors = "<red><italic>Don't run with scissors!";
public static String uptimeCommandOutput = "<green>Server uptime is <uptime>";
@@ -198,6 +200,8 @@ public class PurpurConfig {
@@ -196,6 +198,8 @@ public class PurpurConfig {
creditsCommandOutput = getString("settings.messages.credits-command-output", creditsCommandOutput);
demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput);
pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput);
@@ -82,7 +82,7 @@ index 9e87afb01e569e6d5c2846b931440c4ce395adae..4142820c3053d77d4ae7186fec968d62
tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput);
dontRunWithScissors = getString("settings.messages.dont-run-with-scissors", dontRunWithScissors);
uptimeCommandOutput = getString("settings.messages.uptime-command-output", uptimeCommandOutput);
@@ -245,6 +249,15 @@ public class PurpurConfig {
@@ -243,6 +247,15 @@ public class PurpurConfig {
disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops);
}
@@ -98,7 +98,7 @@ index 9e87afb01e569e6d5c2846b931440c4ce395adae..4142820c3053d77d4ae7186fec968d62
public static String commandTPSBarTitle = "<gray>TPS<yellow>:</yellow> <tps> MSPT<yellow>:</yellow> <mspt> Ping<yellow>:</yellow> <ping>ms";
public static BossBar.Overlay commandTPSBarProgressOverlay = BossBar.Overlay.NOTCHED_20;
public static TPSBarTask.FillMode commandTPSBarProgressFillMode = TPSBarTask.FillMode.MSPT;
@@ -272,6 +285,16 @@ public class PurpurConfig {
@@ -270,6 +283,16 @@ public class PurpurConfig {
public static String uptimeSecond = "%02d second";
public static String uptimeSeconds = "%02d seconds";
private static void commandSettings() {

View File

@@ -36,11 +36,11 @@ index 9938bb90bef84cf784f9a1ceb02a1a45aa8b48a1..1f4b64a5f812376c499c98cb4be62469
this.writeId(BuiltInRegistries.ITEM, item);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2bd58d13d4c48fdddee56e2b417b68fe15072386..beb05039926e1fb7a656dfcd0c503f82db67fc46 100644
index bb6de1c489a9bbf34fc9ca5244ccd34ad4b39cc8..c6fa1df24a1f30e2ddd7f0535d4071e0086ca8c4 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1548,6 +1548,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
//MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur
@@ -1545,6 +1545,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper
this.isIteratingOverLevels = true; // Paper
+ net.minecraft.network.FriendlyByteBuf.hasItemSerializeEvent = org.purpurmc.purpur.event.packet.NetworkItemSerializeEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
@@ -48,10 +48,10 @@ index 2bd58d13d4c48fdddee56e2b417b68fe15072386..beb05039926e1fb7a656dfcd0c503f82
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 11560dc4ab6eb33fcb1ffcfbd49ea663d754fd8a..af8cb1f1f0c128923495f51e4828003133ce766b 100644
index f78d0e6241930909b7b227539c8698eabc270490..117f406f5cf7d421931315763d23f68c7266bfec 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3454,6 +3454,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
@@ -3449,6 +3449,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
}
}
}
@@ -65,10 +65,10 @@ index 11560dc4ab6eb33fcb1ffcfbd49ea663d754fd8a..af8cb1f1f0c128923495f51e48280031
boolean flag1 = packet.getSlotNum() >= 1 && packet.getSlotNum() <= 45;
boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 4142820c3053d77d4ae7186fec968d624f893056..7a02cecaaef511c0db4708a1ce9eb885c1cfe028 100644
index df67cee913c64fa1cac3aff8522bf656eb6ff653..8ffa65bb262bdd391755b9d255ad0e68b32bb31d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -549,4 +549,9 @@ public class PurpurConfig {
@@ -547,4 +547,9 @@ public class PurpurConfig {
}
});
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fix MC-123848
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
index 165382f5da5307d6f6eae971a565ab1ae3046891..25158e04c39146218b21ce5d5c963a24be68b2e2 100644
index 43f9733d4cc180b3103173d86bf2e8742f87de2a..5dcd53d1a8665ed2a63f87e1ab788a64c3e38b71 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
@@ -293,6 +293,13 @@ public class ItemFrame extends HangingEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement squid colors for rainglow fabric mod
diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java
index c2309434b4d48a44587590623ac98dbf997b9578..6f723171fa71d74b351b5cf0cd167bb6f7ca1691 100644
index 0a2e0debc8e38cc32059c26d15cbbb0147622336..edfa9778c4dcabcd4bbf99b969c65d26b560b2f3 100644
--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java
+++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java
@@ -18,6 +18,7 @@ import net.minecraft.world.level.block.Blocks;
@@ -16,7 +16,7 @@ index c2309434b4d48a44587590623ac98dbf997b9578..6f723171fa71d74b351b5cf0cd167bb6
public GlowSquid(EntityType<? extends GlowSquid> type, Level world) {
super(type, world);
@@ -65,6 +66,7 @@ public class GlowSquid extends Squid {
@@ -52,6 +53,7 @@ public class GlowSquid extends Squid {
protected void defineSynchedData() {
super.defineSynchedData();
this.entityData.define(DATA_DARK_TICKS_REMAINING, 0);
@@ -24,7 +24,7 @@ index c2309434b4d48a44587590623ac98dbf997b9578..6f723171fa71d74b351b5cf0cd167bb6
}
@Override
@@ -91,12 +93,14 @@ public class GlowSquid extends Squid {
@@ -78,12 +80,14 @@ public class GlowSquid extends Squid {
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
nbt.putInt("DarkTicksRemaining", this.getDarkTicksRemaining());
@@ -40,25 +40,23 @@ index c2309434b4d48a44587590623ac98dbf997b9578..6f723171fa71d74b351b5cf0cd167bb6
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1b5d3d214b7390cb960f5ee180a21a2bc54e8123..eb35509626914354af3b6a54387b5e9673766697 100644
index 38d30017367320aeeb3c6d7524b2e800ba5a8cf5..9b2dc09bdc18b74b23ec0fa21ade6793f7df26b9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1679,6 +1679,7 @@ public class PurpurWorldConfig {
@@ -1517,11 +1517,13 @@ public class PurpurWorldConfig {
public boolean glowSquidsCanFly = false;
public boolean glowSquidTakeDamageFromWater = false;
public boolean glowSquidAlwaysDropExp = false;
+ public GlowSquidColor.Mode glowSquidColorMode = GlowSquidColor.Mode.RAINBOW;
private void glowSquidSettings() {
glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable);
glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable);
@@ -1686,6 +1687,7 @@ public class PurpurWorldConfig {
glowSquidMaxHealth = getDouble("mobs.glow_squid.attributes.max_health", glowSquidMaxHealth);
glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly);
glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater);
glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp);
+ glowSquidColorMode = GlowSquidColor.Mode.get(getString("mobs.glow_squid.rainglow-mode", glowSquidColorMode.toString()));
}
public boolean goatRidable = false;
public double goatMaxHealth = 10.0D;
diff --git a/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java b/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java
new file mode 100644
index 0000000000000000000000000000000000000000..c90256f4c16ffdb2d8e767e837ea36ac7a6613be

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add an option to fix MC-3304 (projectile looting)
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index 1ea5664e1e7dc73cbd2d1cc38c830a19ba985528..c6fddfa199e0c42e0556ed1ad380885a17208e37 100644
index 57f89ff7ddcd738100f296ae7a21b3240ab374de..3d036c2a62262522d3b87554ee33c83169c4d123 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -72,6 +72,7 @@ public abstract class AbstractArrow extends Projectile {
@@ -48,10 +48,10 @@ index 220513d3fd5645322886522ea4f6b8c55d043b3c..d45a2f49c82d00801578c34e5f5277fc
org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(entityhuman, stack, itemstack1, entityarrow, entityhuman.getUsedItemHand(), f, !flag1);
if (event.isCancelled()) {
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index 0c566b14191c8438389150f0c6e70bcfa3d1f53c..310e03d8cc07f95927d9806fc80a4215283d2ef5 100644
index 1a2ce6fb16e8fed7c90ce99510b25531087a0699..5ddda49ca692b6397a8ce896baf449dc0c6183c1 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -294,6 +294,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
@@ -295,6 +295,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
entityarrow.setPierceLevel((byte) i);
}
@@ -67,7 +67,7 @@ index 0c566b14191c8438389150f0c6e70bcfa3d1f53c..310e03d8cc07f95927d9806fc80a4215
}
diff --git a/src/main/java/net/minecraft/world/item/TridentItem.java b/src/main/java/net/minecraft/world/item/TridentItem.java
index 60512d08a45670a164a9b93191aafa40b2c2287c..d35432087c70ce66b74d1e27df19f462f22b1aa1 100644
index 6d1573161f0d8c7999f84925ba7bbf536ee9583a..c32cbe6065ecb6810f352b8a3598c21e42e60e1d 100644
--- a/src/main/java/net/minecraft/world/item/TridentItem.java
+++ b/src/main/java/net/minecraft/world/item/TridentItem.java
@@ -82,6 +82,14 @@ public class TridentItem extends Item implements Vanishable {
@@ -104,10 +104,10 @@ index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..15d8e9261a89da30529ac347462c5209
if (context.hasParam(LootContextParams.LOOTING_MOD)) {
i = context.getParamOrNull(LootContextParams.LOOTING_MOD);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 7a02cecaaef511c0db4708a1ce9eb885c1cfe028..af875d966081b6e9f0d6a2680cff7f843c8dea05 100644
index 8ffa65bb262bdd391755b9d255ad0e68b32bb31d..e7e72c4f7a1fcfb1b6372bb42c08961d0bf2738d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -554,4 +554,9 @@ public class PurpurConfig {
@@ -552,4 +552,9 @@ public class PurpurConfig {
private static void fixNetworkSerializedCreativeItems() {
fixNetworkSerializedItemsInCreative = getBoolean("settings.fix-network-serialized-items-in-creative", fixNetworkSerializedItemsInCreative);
}

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Configurable block blast resistance
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
index 532a9920bccfc90ee75ac21714812e88d47b9ebb..bee42ce7c1cb0f5ebd4890c02bc9c5dd727f7fd6 100644
index 5ac102afde62c08f36886b466010ccfedabfa05e..942ce713afe27ec75d849877a88721ef6334fafa 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
@@ -80,7 +80,7 @@ public abstract class BlockBehaviour implements FeatureElement {
@@ -81,7 +81,7 @@ public abstract class BlockBehaviour implements FeatureElement {
protected static final Direction[] UPDATE_SHAPE_ORDER = new Direction[]{Direction.WEST, Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.DOWN, Direction.UP};
public final Material material; // Purpur - protected -> public
public final boolean hasCollision;
- protected final float explosionResistance;
+ public float explosionResistance; // Purpur - protected final -> public
@@ -18,7 +18,7 @@ index 532a9920bccfc90ee75ac21714812e88d47b9ebb..bee42ce7c1cb0f5ebd4890c02bc9c5dd
protected final SoundType soundType;
protected final float friction;
diff --git a/src/main/java/net/minecraft/world/level/material/LavaFluid.java b/src/main/java/net/minecraft/world/level/material/LavaFluid.java
index 3a04cb4c646c07abf4338c70c865a4c4cb34b1bc..b05b4d3d97bca159c297f150005b5ab5bf6087e0 100644
index b77cdbd8a7395e8442081c6a2b14695d62c9ef03..f3d4a4196847e26934b6d2ed592f0ddb0e53182b 100644
--- a/src/main/java/net/minecraft/world/level/material/LavaFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/LavaFluid.java
@@ -239,7 +239,7 @@ public abstract class LavaFluid extends FlowingFluid {
@@ -44,10 +44,10 @@ index ec6c63075306f9e5389e83641d2c8a82369ddc6b..0f16deddd8cbb506ef7886f57ae640a4
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index af875d966081b6e9f0d6a2680cff7f843c8dea05..8972bbbaca23f771fb5e10ee4099a420a0ec3ccd 100644
index e7e72c4f7a1fcfb1b6372bb42c08961d0bf2738d..3230dbbe472d3d2a6269cf216e783fab5b8093ee 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -559,4 +559,19 @@ public class PurpurConfig {
@@ -557,4 +557,19 @@ public class PurpurConfig {
private static void fixProjectileLootingTransfer() {
fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable block fall damage modifiers
diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java
index ea448ef3e072f4144e6f506f1f38399ecd571d76..19d31064eb271ee02115a75cde383796c899e7f7 100644
index e8405a57fb88e63b63baaf00645c417633bdc0f2..2b66ddafaaca17f64d1e7502dfa4d7576e3e032f 100644
--- a/src/main/java/net/minecraft/world/level/block/BedBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java
@@ -174,7 +174,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock
@@ -173,7 +173,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock
@Override
public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
@@ -18,10 +18,10 @@ index ea448ef3e072f4144e6f506f1f38399ecd571d76..19d31064eb271ee02115a75cde383796
@Override
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 33d3a3df277e751a3fb0d4421bf9ea2e1173763c..773162c3456945605fb664114508622f7d2fcec8 100644
index 2feca2820d1760defe0ef784f9737ab9e9ec800f..3a935e4a16f1c71579d7021d3ad06d1f9b76e033 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -96,6 +96,10 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -94,6 +94,10 @@ public class Block extends BlockBehaviour implements ItemLike {
public static final int UPDATE_LIMIT = 512;
protected final StateDefinition<Block, BlockState> stateDefinition;
private BlockState defaultBlockState;
@@ -32,7 +32,7 @@ index 33d3a3df277e751a3fb0d4421bf9ea2e1173763c..773162c3456945605fb664114508622f
// Paper start
public final boolean isDestroyable() {
return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits ||
@@ -510,7 +514,7 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -498,7 +502,7 @@ public class Block extends BlockBehaviour implements ItemLike {
}
public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
@@ -54,10 +54,10 @@ index cfbe1dae76db76cf54a4f5d72aca72d5e893859e..74cb10230d459ac9f300a9d59af504d2
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 8972bbbaca23f771fb5e10ee4099a420a0ec3ccd..290a66b51dc6b86b006b577754d1030def288cf7 100644
index 3230dbbe472d3d2a6269cf216e783fab5b8093ee..a8b217e3fe58b6435ef380a356db71ebcc557752 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -574,4 +574,50 @@ public class PurpurConfig {
@@ -572,4 +572,50 @@ public class PurpurConfig {
block.explosionResistance = blastResistance.floatValue();
});
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Language API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a3a7bf5dba5014df499eefb430b888743f1d2a4a..3310828edcabd2c24e3200dcb89d4e8ebd82cf16 100644
index ce8179d33d5a6a187e16496731798e42488cb87a..b250de8151c07ec960de8b6c4aff9d0ea852773b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -324,6 +324,20 @@ public final class CraftServer implements Server {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Milk Keeps Beneficial Effects
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index ac323afc8491749969e53aa3841bc684d79c48d3..b67660cda74a4754d1701e746aca99bde868c150 100644
index 923f48e002f92a761619dbfb125d6154f4a328c5..a293a8b74837386c2e1dea17c21d0a520ba7e062 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1107,6 +1107,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1125,6 +1125,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
for (flag = false; iterator.hasNext(); flag = true) {
// CraftBukkit start
MobEffectInstance effect = (MobEffectInstance) iterator.next();
@@ -17,20 +17,20 @@ index ac323afc8491749969e53aa3841bc684d79c48d3..b67660cda74a4754d1701e746aca99bd
if (event.isCancelled()) {
continue;
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
index fef9fd3e50bba3d0fffa3d61b60f3bb8cad081e0..a6a4d5203cb5f35306f8225e56681bc25e06beed 100644
index 1c81826a5bb71298cbcb9b3a5715d56bc8eec8be..72dbaee9858d9bb04b2bceb25b10b51ec61ead24 100644
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -113,7 +113,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return this.canDrinkPotion && this.level.isNight() && !entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
@@ -93,7 +93,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
return this.canDrinkPotion && this.level().isNight() && !entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
}));
this.goalSelector.addGoal(0, new UseItemGoal<>(this, new ItemStack(Items.MILK_BUCKET), SoundEvents.WANDERING_TRADER_REAPPEARED, (entityvillagertrader) -> {
- return canDrinkMilk && this.level.isDay() && entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
+ return level.purpurConfig.milkClearsBeneficialEffects && canDrinkMilk && this.level.isDay() && entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API // Purpur
- return this.canDrinkMilk && this.level().isDay() && entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
+ return level().purpurConfig.milkClearsBeneficialEffects && this.canDrinkMilk && this.level().isDay() && entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API // Purpur
}));
this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this));
this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 98545b9c06f4b5f1979633ff963bb5eb5e5f8a9c..afeab1031c329f5cfd23066f4d28827bc84c72ae 100644
index 9b2dc09bdc18b74b23ec0fa21ade6793f7df26b9..8d2786689cca301f8162163540a6dfd8e8a09101 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -130,6 +130,7 @@ public class PurpurWorldConfig {
@@ -41,7 +41,7 @@ index 98545b9c06f4b5f1979633ff963bb5eb5e5f8a9c..afeab1031c329f5cfd23066f4d28827b
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = true;
public boolean persistentTileEntityDisplayNames = false;
@@ -156,6 +157,7 @@ public class PurpurWorldConfig {
@@ -158,6 +159,7 @@ public class PurpurWorldConfig {
fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing);
imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] MC-121706 - Fix mobs not looking up and down when strafing
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RangedBowAttackGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RangedBowAttackGoal.java
index 6558b0d4bea99948fdc2b51751f3cfdc239d4b67..d85dabebbbbe213e791b8a3be3c6df05b959e40c 100644
index 87fb10096fc9dade33c663234b1cecc34d3d77bb..874c7b29a261b1b5ad6e86ca219ff935870aecb0 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/RangedBowAttackGoal.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/RangedBowAttackGoal.java
@@ -111,9 +111,9 @@ public class RangedBowAttackGoal<T extends Monster & RangedAttackMob> extends Go
@@ -119,9 +119,9 @@ public class RangedBowAttackGoal<T extends Monster & RangedAttackMob> extends Go
}
this.mob.getMoveControl().strafe(this.strafingBackwards ? -0.5F : 0.5F, this.strafingClockwise ? 0.5F : -0.5F);
this.mob.lookAt(livingEntity, 30.0F, 30.0F);
- } else {
+ } //else { // Purpur - fix MC-121706

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add log suppression for LibraryLoader
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 290a66b51dc6b86b006b577754d1030def288cf7..c3878aed434bdf490cbaf45064fa5a6c5814476f 100644
index a8b217e3fe58b6435ef380a356db71ebcc557752..3bdba6932c1acac79c4772569b8fa27104bcf35b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -470,11 +470,14 @@ public class PurpurConfig {
@@ -468,11 +468,14 @@ public class PurpurConfig {
public static boolean loggerSuppressIgnoredAdvancementWarnings = false;
public static boolean loggerSuppressUnrecognizedRecipeErrors = false;
public static boolean loggerSuppressSetBlockFarChunk = false;

View File

@@ -5,25 +5,25 @@ Subject: [PATCH] Allow Transparent Blocks In Enchanting Box
diff --git a/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java b/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java
index 37a888e5db65b927094b43775ae9d4098244f809..c4a91d7f1320027ee6a2b364303c01ebbacde584 100644
index 286f34eef22a85be3fe9747dc3c3f9a7d51f437c..ff2b97e4feff3eefe50d2715437a68a8b16281fc 100644
--- a/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EnchantmentTableBlock.java
@@ -42,6 +42,10 @@ public class EnchantmentTableBlock extends BaseEntityBlock {
@@ -43,6 +43,10 @@ public class EnchantmentTableBlock extends BaseEntityBlock {
}
public static boolean isValidBookShelf(Level world, BlockPos tablePos, BlockPos bookshelfOffset) {
public static boolean isValidBookShelf(Level world, BlockPos tablePos, BlockPos providerOffset) {
+ // Purpur Start
+ if(org.purpurmc.purpur.PurpurConfig.allowTransparentBlocksInEnchantmentBox){
+ return world.getBlockState(tablePos.offset(bookshelfOffset)).is(Blocks.BOOKSHELF) && !world.getBlockState(tablePos.offset(bookshelfOffset.getX() / 2, bookshelfOffset.getY(), bookshelfOffset.getZ() / 2)).isSuffocating(world, bookshelfOffset);
+ return world.getBlockState(tablePos.offset(providerOffset)).is(BlockTags.ENCHANTMENT_POWER_PROVIDER) && !world.getBlockState(tablePos.offset(providerOffset.getX() / 2, providerOffset.getY(), providerOffset.getZ() / 2)).isSuffocating(world, providerOffset);
+ } // Purpur end
return world.getBlockState(tablePos.offset(bookshelfOffset)).is(Blocks.BOOKSHELF) && world.isEmptyBlock(tablePos.offset(bookshelfOffset.getX() / 2, bookshelfOffset.getY(), bookshelfOffset.getZ() / 2));
return world.getBlockState(tablePos.offset(providerOffset)).is(BlockTags.ENCHANTMENT_POWER_PROVIDER) && world.getBlockState(tablePos.offset(providerOffset.getX() / 2, providerOffset.getY(), providerOffset.getZ() / 2)).is(BlockTags.ENCHANTMENT_POWER_TRANSMITTER);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index c3878aed434bdf490cbaf45064fa5a6c5814476f..81409df1af15b68971b1efd203b9ad8d87ca7b6e 100644
index 3bdba6932c1acac79c4772569b8fa27104bcf35b..d8e347b45ae89fbea403e4754c42b48776fcdfa0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -415,6 +415,7 @@ public class PurpurConfig {
@@ -413,6 +413,7 @@ public class PurpurConfig {
public static boolean allowInfinityMending = false;
public static boolean allowCrossbowInfinity = false;
public static boolean allowShearsLooting = false;
@@ -31,7 +31,7 @@ index c3878aed434bdf490cbaf45064fa5a6c5814476f..81409df1af15b68971b1efd203b9ad8d
public static boolean allowUnsafeEnchants = false;
public static boolean allowInapplicableEnchants = true;
public static boolean allowIncompatibleEnchants = true;
@@ -438,6 +439,7 @@ public class PurpurConfig {
@@ -436,6 +437,7 @@ public class PurpurConfig {
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity);
allowShearsLooting = getBoolean("settings.enchantment.allow-looting-on-shears", allowShearsLooting);

View File

@@ -24,22 +24,22 @@ index e241ae250f4f04a17ef2c583d00b065a4ca56a4c..02b567e4e808e1a809d285ef39e1abc5
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7e89940e9add24fcd13287dc1afe1089260bd718..6943202332bf20392afc63617584ce2a07faa0dd 100644
index 8d2786689cca301f8162163540a6dfd8e8a09101..4efefbdb94cfd153f82be186fd9992960ba371a3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1335,6 +1335,7 @@ public class PurpurWorldConfig {
@@ -1259,6 +1259,7 @@ public class PurpurWorldConfig {
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
public double creeperHeadVisibilityPercent = 0.5D;
+ public boolean creeperEncircleTarget = false;
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1353,6 +1354,7 @@ public class PurpurWorldConfig {
if (PurpurConfig.version < 10) {
double oldValue = getDouble("mobs.creeper.attributes.max-health", creeperMaxHealth);
@@ -1274,6 +1275,7 @@ public class PurpurWorldConfig {
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent);
+ creeperEncircleTarget = getBoolean("mobs.creeper.encircle-target", creeperEncircleTarget);
}
public boolean dolphinRidable = false;
public double dolphinMaxHealth = 10.0D;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 889db414e3442f51f77be097806e52b4941362d5..3e2e2965270090cb2cf12b6c62cc13d3743e0604 100644
index 61699b09ab5005dec792b276ccaa62599dae62f7..123d67729f0219677e5f1e82db2dccdfe65b7adb 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -401,6 +401,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -404,6 +404,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
private UUID originWorld;
public boolean freezeLocked = false; // Paper - Freeze Tick Lock API
public boolean collidingWithWorldBorder; // Paper
@@ -16,7 +16,7 @@ index 889db414e3442f51f77be097806e52b4941362d5..3e2e2965270090cb2cf12b6c62cc13d3
public void setOrigin(@javax.annotation.Nonnull Location location) {
this.origin = location.toVector();
@@ -1678,7 +1679,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1741,7 +1742,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public boolean fireImmune() {
@@ -25,7 +25,7 @@ index 889db414e3442f51f77be097806e52b4941362d5..3e2e2965270090cb2cf12b6c62cc13d3
}
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -2340,6 +2341,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2411,6 +2412,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
nbt.putBoolean("Paper.FreezeLock", true);
}
// Paper end
@@ -37,7 +37,7 @@ index 889db414e3442f51f77be097806e52b4941362d5..3e2e2965270090cb2cf12b6c62cc13d3
return nbt;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2508,6 +2514,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2579,6 +2585,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
}
// Paper end
@@ -50,14 +50,13 @@ index 889db414e3442f51f77be097806e52b4941362d5..3e2e2965270090cb2cf12b6c62cc13d3
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index bdb6485b7b3544e1b264a44ae919277221ce11ba..97ea9612343e4288decd8daa9327a7e781877a8e 100644
index 270d38696f95e259dd036c5db2883e406e81d3fa..973192ef61cd817611581c36d0d0aa5bcb2503c0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1473,5 +1473,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isRidableInWater() {
return !getHandle().dismountsUnderwater();
@@ -209,6 +209,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity = entity;
}
+
+ @Override
+ public boolean isImmuneToFire() {
+ return getHandle().fireImmune();
@@ -67,8 +66,10 @@ index bdb6485b7b3544e1b264a44ae919277221ce11ba..97ea9612343e4288decd8daa9327a7e7
+ public void setImmuneToFire(Boolean fireImmune) {
+ getHandle().immuneToFire = fireImmune;
+ }
// Purpur end
}
+
@Override
public boolean isInDaylight() {
return getHandle().isSunBurnTick();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index 09001578b88658c44d0661d340a0ee0f1ded6911..ea15690da167ec5e653da6f5afb55b33c45d1622 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java

View File

@@ -5,22 +5,30 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3e2e2965270090cb2cf12b6c62cc13d3743e0604..e71eca3ddbbeb3168dd73433b6d6ffe9f6755f77 100644
index 123d67729f0219677e5f1e82db2dccdfe65b7adb..dd9b10e0b9da68cf4b71613770f8ca428f25ce73 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -900,6 +900,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -7,6 +7,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.common.collect.UnmodifiableIterator;
import com.mojang.logging.LogUtils;
+import io.papermc.paper.util.MCUtil;
import it.unimi.dsi.fastutil.objects.Object2DoubleArrayMap;
import it.unimi.dsi.fastutil.objects.Object2DoubleMap;
import java.util.Arrays;
@@ -858,6 +859,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end
+ 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();
this.onBelowWorld();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6943202332bf20392afc63617584ce2a07faa0dd..3bccb20fb131878c3bbbefa833a8b64a5dc599d6 100644
index 4efefbdb94cfd153f82be186fd9992960ba371a3..eae7d46957e06c80f21ac8cfc4ffa8db2bff2064 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -421,6 +421,7 @@ public class PurpurWorldConfig {
@@ -425,6 +425,7 @@ public class PurpurWorldConfig {
public String playerDeathExpDropEquation = "expLevel * 7";
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
@@ -28,7 +36,7 @@ index 6943202332bf20392afc63617584ce2a07faa0dd..3bccb20fb131878c3bbbefa833a8b64a
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
public boolean creativeOnePunch = false;
@@ -452,6 +453,7 @@ public class PurpurWorldConfig {
@@ -456,6 +457,7 @@ public class PurpurWorldConfig {
playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation);
playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax);
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Added got ram event
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 8129ad2ca6e0b4c6ca586dc221dcce1e883def9b..f5c0fc9f30bdf7935200b875ada0ff1011fdb034 100644
index c17692ff7fe82b6f3c1f1cc282f8c75f1b70664c..799390ae242935a7c4119dddd87d540badc21cc0 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
@@ -422,6 +422,7 @@ public class Goat extends Animal {
@@ -402,6 +402,7 @@ public class Goat extends Animal {
// Paper start - Goat ram API
public void ram(net.minecraft.world.entity.LivingEntity entity) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Log skipped entity's position
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 314a2a31079fcb7619ff9ebef8e6cf161f5c7c9c..3fc26a8976f4bfa28c2c6a862aac997d5f721f51 100644
index b144543131bb756294e02e05f83002fe9abc8d96..932a9d634bbf208d41ddcf06d3395e4cd33a28c3 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -612,6 +612,12 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -610,6 +610,12 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
entity.load(nbt);
}, () -> {
EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id"));

View File

@@ -5,22 +5,22 @@ Subject: [PATCH] End Crystal Cramming
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 a4fc0e9cb52bb5937effe5cd09f8bbefcf8dd531..e3fe5f18c77e36479eaeb7edfd2a3eb919c342d6 100644
index ada7eba2beca5b0897fa2eb3567a639573f4e18d..4591fd93d94a4e68c7e23674d434ba019ad85607 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
@@ -83,6 +83,7 @@ public class EndCrystal extends Entity {
@@ -93,6 +93,7 @@ public class EndCrystal extends Entity {
}
}
// Paper end
+ if (this.level.purpurConfig.endCrystalCramming > 0 && this.level.getEntitiesOfClass(EndCrystal.class, getBoundingBox()).size() > this.level.purpurConfig.endCrystalCramming) this.hurt(this.damageSources().cramming(), 6.0F); // Purpur
}
// Purpur start
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3bccb20fb131878c3bbbefa833a8b64a5dc599d6..74e094982005e4f6044e063b1e168a96c7e7d976 100644
index eae7d46957e06c80f21ac8cfc4ffa8db2bff2064..ad1489bc7745f01eedfc3f439f86f125ffc1c30c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -864,6 +864,7 @@ public class PurpurWorldConfig {
@@ -873,6 +873,7 @@ public class PurpurWorldConfig {
public double basedEndCrystalExplosionPower = 6.0D;
public boolean basedEndCrystalExplosionFire = false;
public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
@@ -28,7 +28,7 @@ index 3bccb20fb131878c3bbbefa833a8b64a5dc599d6..74e094982005e4f6044e063b1e168a96
private void endCrystalSettings() {
if (PurpurConfig.version < 31) {
if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) {
@@ -891,6 +892,7 @@ public class PurpurWorldConfig {
@@ -900,6 +901,7 @@ public class PurpurWorldConfig {
log(Level.SEVERE, "Unknown value for `blocks.end-crystal.base.explosion-effect`! Using default of `BLOCK`");
basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Option to allow beacon effects when covered by tinted glass
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
index c787019b5cbadec81dd33ef4021708b9b423485a..8f82b0ce87afc8890c5b3386d5f6e22c48974b16 100644
index cc03c02f290ee8d58a2fea54b1f977f49a2cec6e..49a2308832b24dc1eb839af786dbec9f046bdab6 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
@@ -165,6 +165,7 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider, Name
@@ -36,10 +36,10 @@ index c787019b5cbadec81dd33ef4021708b9b423485a..8f82b0ce87afc8890c5b3386d5f6e22c
BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 74e094982005e4f6044e063b1e168a96c7e7d976..820fe69d6eaa74c1d903770e56e7b436928a7fb4 100644
index ad1489bc7745f01eedfc3f439f86f125ffc1c30c..e41de3240daa6080f8ec463489d2eb51f9370fa2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -758,11 +758,13 @@ public class PurpurWorldConfig {
@@ -767,11 +767,13 @@ public class PurpurWorldConfig {
public int beaconLevelTwo = 30;
public int beaconLevelThree = 40;
public int beaconLevelFour = 50;

View File

@@ -36,10 +36,10 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 81409df1af15b68971b1efd203b9ad8d87ca7b6e..be8b44daa0141151c973917a774aa07721647ed1 100644
index d8e347b45ae89fbea403e4754c42b48776fcdfa0..5527d7708ba57ef8a3c9f472dfc0496551eb0e20 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -565,6 +565,16 @@ public class PurpurConfig {
@@ -563,6 +563,16 @@ public class PurpurConfig {
fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer);
}

View File

@@ -4,20 +4,8 @@ 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 790160cfcb113e046379c2fe5af32667faf3be8c..b6ac41633e91f6ee2755d1f05aac4c8046a4aa8a 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
@@ -108,6 +108,7 @@ public class EnderDragon extends Mob implements Enemy {
public EnderDragon(EntityType<? extends EnderDragon> 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.subEntities = new EnderDragonPart[]{this.head, this.neck, this.body, this.tail1, this.tail2, this.tail3, this.wing1, this.wing2};
this.setHealth(this.getMaxHealth());
this.noPhysics = true;
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 4392336d28aa3cc7a767a2e638e2227c16a597f4..4929149dde7630a2249a86f4ed0bf00ed3e75c84 100644
index 8f97c9df726ac20cfce7bdddd5dd4f8c5aa76c35..93e7e2fe1f4184719736e698563f493b1d31e8c0 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -86,7 +86,7 @@ public class Explosion {
@@ -39,10 +27,10 @@ index 4392336d28aa3cc7a767a2e638e2227c16a597f4..4929149dde7630a2249a86f4ed0bf00e
}
// CraftBukkit end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bcefc3d5a0bab517d0ee06fd81dd6b040120cc6e..e8f0ec7eb707776e8746eae07e0fb1ac50cf7398 100644
index e41de3240daa6080f8ec463489d2eb51f9370fa2..cf10d332625c77068a1793e6e5eedfe8c93e3a2a 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 {
@@ -219,6 +219,11 @@ public class PurpurWorldConfig {
entitySharedRandom = getBoolean("settings.entity.shared-random", entitySharedRandom);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] bonemealable sugarcane, cactus, and netherwart
diff --git a/src/main/java/net/minecraft/world/level/block/CactusBlock.java b/src/main/java/net/minecraft/world/level/block/CactusBlock.java
index 2fffe4452d8f3fa5b9365dff1cfe5b5dab6bf2f8..ae2ac1c24c1e502a1968a3008273096281d5f1ca 100644
index c2ca3432a47124d02e1aaf8ffb621f9a2c7d7a62..0d5f87d24231f6d2b8639825bcd62dd2f8791c8e 100644
--- a/src/main/java/net/minecraft/world/level/block/CactusBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CactusBlock.java
@@ -22,7 +22,7 @@ import net.minecraft.world.phys.shapes.CollisionContext;
@@ -17,7 +17,7 @@ index 2fffe4452d8f3fa5b9365dff1cfe5b5dab6bf2f8..ae2ac1c24c1e502a1968a30082730962
public static final IntegerProperty AGE = BlockStateProperties.AGE_15;
public static final int MAX_AGE = 15;
@@ -131,4 +131,34 @@ public class CactusBlock extends Block {
@@ -129,4 +129,34 @@ public class CactusBlock extends Block {
public boolean isPathfindable(BlockState state, BlockGetter world, BlockPos pos, PathComputationType type) {
return false;
}
@@ -89,7 +89,7 @@ index 0e4026e9d39735b840f12e59f84469b9acc2fc77..bf4485b4cad324d5aace657ebf284c4d
// Purpur end
}
diff --git a/src/main/java/net/minecraft/world/level/block/SugarCaneBlock.java b/src/main/java/net/minecraft/world/level/block/SugarCaneBlock.java
index 6b400a4759c8c8612a3b5c96ca0d87ef9dc71435..992de1ab2c00a2545a857f1b5533926bc895f996 100644
index c3f500580d257e1397f2eb7c47b063a6fe6bb405..0d5c6bdfd4aeda472804b493315bf21ac3067e9d 100644
--- a/src/main/java/net/minecraft/world/level/block/SugarCaneBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SugarCaneBlock.java
@@ -19,7 +19,7 @@ import net.minecraft.world.level.material.FluidState;
@@ -137,10 +137,10 @@ index 6b400a4759c8c8612a3b5c96ca0d87ef9dc71435..992de1ab2c00a2545a857f1b5533926b
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4018817ad32fa06befd4fd90f1f06d0231a78bbe..0db8a1a51c857a3930d0b20028964fb355d8e5b4 100644
index cf10d332625c77068a1793e6e5eedfe8c93e3a2a..ac50955db036a87738acda18f8bab36e1060ccfd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -817,8 +817,20 @@ public class PurpurWorldConfig {
@@ -826,8 +826,20 @@ public class PurpurWorldConfig {
}
public boolean cactusBreaksFromSolidNeighbors = true;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add PreExplodeEvents
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 4929149dde7630a2249a86f4ed0bf00ed3e75c84..4beaedc5ec3562df62a7a9e6b2f40728bd933044 100644
index 93e7e2fe1f4184719736e698563f493b1d31e8c0..845c94a398fddc35731a36a792f4a95435bd1fb8 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -141,6 +141,23 @@ public class Explosion {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Make GUI Great Again
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 582467e3419c23446b20d3076fbfce22115250a8..6ecc75621867390738e804e06ac284524664473d 100644
index 9eeda0276b4a6f444e7fd2afee7a2c62ad58e0cd..af77803ab75fd7ace62fc2781b4de7287ff0974b 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -99,6 +99,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add mending multiplier
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
index df8d8f85f8db396b7db9fa6e46aa55c934105394..9a1dbb058a468c267606df336027806884fee645 100644
index 4746dcb444f0c1b0801cd1805b7fcd3612f5ad85..2930932b431c57974bae7c28a4450a03c5f29b6d 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -346,13 +346,15 @@ public class ExperienceOrb extends Entity {
@@ -357,13 +357,15 @@ public class ExperienceOrb extends Entity {
}
}
@@ -27,7 +27,7 @@ index df8d8f85f8db396b7db9fa6e46aa55c934105394..9a1dbb058a468c267606df3360278068
public int getValue() {
return this.value;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 157c5ce26015cabd5a007cf7444c8255db1a0b0f..31622937846c14dab4177a1f08c15985957c98bb 100644
index ac50955db036a87738acda18f8bab36e1060ccfd..5e5b5384f619082d00c91e5de1e93f416cc621ba 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -121,6 +121,7 @@ public class PurpurWorldConfig {
@@ -38,7 +38,7 @@ index 157c5ce26015cabd5a007cf7444c8255db1a0b0f..31622937846c14dab4177a1f08c15985
public boolean alwaysTameInCreative = false;
public boolean boatEjectPlayersOnLand = false;
public boolean boatsDoFallDamage = false;
@@ -148,6 +149,7 @@ public class PurpurWorldConfig {
@@ -150,6 +151,7 @@ public class PurpurWorldConfig {
public int mobLastHurtByPlayerTime = 100;
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);

View File

@@ -1,4 +1,6 @@
* make sure that all mobs are in entity attributes and ridables (some from previous updates weren't added to attributes)
* check sulker spawn from bullet options matches original design
* configurable food atributes check `key.location().toString()` still works
* fix all instances of `level.blahblah`
* fix all instances of `level.blahblah`
* merge pufferfish fixes into one
* test allow transparent blocks in enchanting box