250 patches \o/

This commit is contained in:
granny
2024-06-14 16:11:17 -07:00
parent c716c80312
commit 699969ff1c
50 changed files with 514 additions and 508 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Shulker change color with dye
diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
index 796f0a3d8dc8faf202e912fe44afb898d286a895..39b980eeb863fda008259a4b52e39393903b4e9c 100644 index fde6bae8a5d9eba7ec87c73047a6e3f91629828e..0e9a4e473b1f1887804507cfadfdeeed645fa3d1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -124,6 +124,19 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye @@ -124,6 +124,19 @@ public class Shulker extends AbstractGolem implements VariantHolder<Optional<Dye
@@ -29,10 +29,10 @@ index 796f0a3d8dc8faf202e912fe44afb898d286a895..39b980eeb863fda008259a4b52e39393
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3d8064515223bae87f499d2496bc1faf74e77639..594c8834f4c23866862deec2d97ff3a5d35037b0 100644 index 27c618b482d379277a88222c3e4a0c330fde5cfe..718820118e590034a68a10bda7d680a24f2d83b7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2259,6 +2259,7 @@ public class PurpurWorldConfig { @@ -2240,6 +2240,7 @@ public class PurpurWorldConfig {
public double shulkerSpawnFromBulletNearbyRange = 8.0D; public double shulkerSpawnFromBulletNearbyRange = 8.0D;
public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0";
public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerSpawnFromBulletRandomColor = false;
@@ -40,7 +40,7 @@ index 3d8064515223bae87f499d2496bc1faf74e77639..594c8834f4c23866862deec2d97ff3a5
private void shulkerSettings() { private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -2275,6 +2276,7 @@ public class PurpurWorldConfig { @@ -2256,6 +2257,7 @@ public class PurpurWorldConfig {
shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange); shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange);
shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation);
shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor);

View File

@@ -243,10 +243,10 @@ index 9d93130f23addb18b97d7f5ec013faef17a74529..29d2fb87a65778926aea2cfc7a5b486c
+ // Purpur end - OfflinePlayer API + // Purpur end - OfflinePlayer API
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 59b55669d4e9592f6205a0b9f49f8db3b3e5fd92..20543386332d782327229e570c18425dcb98fba4 100644 index c97c8421303ac3191191dc0ceaca00ffd0e3e1d6..f4c1b3184afa8803a6dcdc63fa79f8d724ccefab 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2742,6 +2742,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -2758,6 +2758,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().getAbilities().walkingSpeed * 2f; return this.getHandle().getAbilities().walkingSpeed * 2f;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Added the ability to add combustible items
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java diff --git a/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java
index 1af7e1548f0648890a1ef2fc0ff4e4c3a56c947c..decea1697c075e7549ccc7501c8e59357d198a60 100644 index 6474b6063992d2c643c21187663de499f37b32d6..c374962128a37307093218a9ec46386cc860c376 100644
--- a/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java --- a/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java +++ b/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java
@@ -147,7 +147,13 @@ public abstract class AbstractFurnaceMenu extends RecipeBookMenu<Container> { @@ -147,7 +147,13 @@ public abstract class AbstractFurnaceMenu extends RecipeBookMenu<SingleRecipeInp
} else if (slot != 1 && slot != 0) { } else if (slot != 1 && slot != 0) {
if (this.canSmelt(itemstack1)) { if (this.canSmelt(itemstack1)) {
if (!this.moveItemStackTo(itemstack1, 0, 1, false)) { if (!this.moveItemStackTo(itemstack1, 0, 1, false)) {
@@ -24,7 +24,7 @@ index 1af7e1548f0648890a1ef2fc0ff4e4c3a56c947c..decea1697c075e7549ccc7501c8e5935
} else if (this.isFuel(itemstack1)) { } else if (this.isFuel(itemstack1)) {
if (!this.moveItemStackTo(itemstack1, 1, 2, false)) { if (!this.moveItemStackTo(itemstack1, 1, 2, false)) {
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
index 08ff372334f32b9bfac2e7b7a405e43ecf0df959..d566924cc3f13475769d4c733ea8a77970dde527 100644 index 699bdc1f01a95ecdfe899493c8d81ec31cc9fa4b..d12469a1bbd37026012bfd6bce30d7a2593779da 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -213,6 +213,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit @@ -213,6 +213,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
@@ -51,10 +51,10 @@ index 08ff372334f32b9bfac2e7b7a405e43ecf0df959..d566924cc3f13475769d4c733ea8a779
private int maxStack = MAX_STACK; private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>(); public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index cbe57d7b3282a76a427a64507a10a5aea767ff1c..8cdc91d8306a76514abd76c450044ffed5418787 100644 index 1fd6461bce10673f618f20ec10511cfe30e3eb87..8632ef169eab32caca3a6d89011c37e81345b7d0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1594,6 +1594,19 @@ public final class CraftServer implements Server { @@ -1598,6 +1598,19 @@ public final class CraftServer implements Server {
return true; return true;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option for if rain and thunder should stop on sleep
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 83ec2e31d81d6209953252a3780552c3cf110c68..42db3e64b120b753e98a0fd7e3f56c7d28256fd2 100644 index d54a242fbfce347f652d03f8eeac2f990168b809..3f23cd5d1fc8fc011b0857d127005aa8d45d39ea 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1391,6 +1391,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1015,6 +1015,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@VisibleForTesting @VisibleForTesting
public void resetWeatherCycle() { public void resetWeatherCycle() {
// CraftBukkit start // CraftBukkit start
@@ -16,7 +16,7 @@ index 83ec2e31d81d6209953252a3780552c3cf110c68..42db3e64b120b753e98a0fd7e3f56c7d
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// If we stop due to everyone sleeping we should reset the weather duration to some other random value. // If we stop due to everyone sleeping we should reset the weather duration to some other random value.
// Not that everyone ever manages to get the whole server to sleep at the same time.... // Not that everyone ever manages to get the whole server to sleep at the same time....
@@ -1398,6 +1399,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1022,6 +1023,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setRainTime(0); this.serverLevelData.setRainTime(0);
} }
// CraftBukkit end // CraftBukkit end
@@ -25,10 +25,10 @@ index 83ec2e31d81d6209953252a3780552c3cf110c68..42db3e64b120b753e98a0fd7e3f56c7d
// CraftBukkit start // CraftBukkit start
// If we stop due to everyone sleeping we should reset the weather duration to some other random value. // If we stop due to everyone sleeping we should reset the weather duration to some other random value.
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aa037b2fb2957be96db3d200294c41e43f6d820f..ef65be19cc55c3c473338f02c9687e74b490b358 100644 index 718820118e590034a68a10bda7d680a24f2d83b7..29930a89ec305901e6520ccea63940e4d3a9da49 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -139,6 +139,8 @@ public class PurpurWorldConfig { @@ -137,6 +137,8 @@ public class PurpurWorldConfig {
public int raidCooldownSeconds = 0; public int raidCooldownSeconds = 0;
public int animalBreedingCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0;
public boolean mobsIgnoreRails = false; public boolean mobsIgnoreRails = false;
@@ -37,7 +37,7 @@ index aa037b2fb2957be96db3d200294c41e43f6d820f..ef65be19cc55c3c473338f02c9687e74
private void miscGameplayMechanicsSettings() { private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
@@ -161,6 +163,8 @@ public class PurpurWorldConfig { @@ -157,6 +159,8 @@ public class PurpurWorldConfig {
raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds);
animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds);
mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails);

View File

@@ -30,10 +30,10 @@ index fad69dfc20574ab23634b14252b50929cca75b21..7082486f6b760bed2a61938f493d5124
} }
diff --git a/src/main/java/net/minecraft/world/level/block/Blocks.java b/src/main/java/net/minecraft/world/level/block/Blocks.java diff --git a/src/main/java/net/minecraft/world/level/block/Blocks.java b/src/main/java/net/minecraft/world/level/block/Blocks.java
index 260906f493416d98ab574a7262fce5e9b7e40c64..ce639e4a2d87202a10ef4fc73274c4b2c4e95720 100644 index 223259e7a09ada681b6181c898f6857888594f85..7d58a95f7ae8983b466b275f4f82597d38762af0 100644
--- a/src/main/java/net/minecraft/world/level/block/Blocks.java --- a/src/main/java/net/minecraft/world/level/block/Blocks.java
+++ b/src/main/java/net/minecraft/world/level/block/Blocks.java +++ b/src/main/java/net/minecraft/world/level/block/Blocks.java
@@ -7389,6 +7389,7 @@ public class Blocks { @@ -7361,6 +7361,7 @@ public class Blocks {
BlockBehaviour.Properties.of() BlockBehaviour.Properties.of()
.mapColor(MapColor.PLANT) .mapColor(MapColor.PLANT)
.forceSolidOff() .forceSolidOff()
@@ -41,7 +41,7 @@ index 260906f493416d98ab574a7262fce5e9b7e40c64..ce639e4a2d87202a10ef4fc73274c4b2
.instabreak() .instabreak()
.sound(SoundType.AZALEA) .sound(SoundType.AZALEA)
.noOcclusion() .noOcclusion()
@@ -7401,6 +7402,7 @@ public class Blocks { @@ -7373,6 +7374,7 @@ public class Blocks {
BlockBehaviour.Properties.of() BlockBehaviour.Properties.of()
.mapColor(MapColor.PLANT) .mapColor(MapColor.PLANT)
.forceSolidOff() .forceSolidOff()
@@ -50,10 +50,10 @@ index 260906f493416d98ab574a7262fce5e9b7e40c64..ce639e4a2d87202a10ef4fc73274c4b2
.sound(SoundType.FLOWERING_AZALEA) .sound(SoundType.FLOWERING_AZALEA)
.noOcclusion() .noOcclusion()
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ef65be19cc55c3c473338f02c9687e74b490b358..49837f5ebccfb0d6fbfefe379f52433b44c5aa79 100644 index 29930a89ec305901e6520ccea63940e4d3a9da49..ccf1ba95e0dc595276d2b69d7ead7249966b92da 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -806,6 +806,11 @@ public class PurpurWorldConfig { @@ -787,6 +787,11 @@ public class PurpurWorldConfig {
anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage);
} }
@@ -65,7 +65,7 @@ index ef65be19cc55c3c473338f02c9687e74b490b358..49837f5ebccfb0d6fbfefe379f52433b
public int beaconLevelOne = 20; public int beaconLevelOne = 20;
public int beaconLevelTwo = 30; public int beaconLevelTwo = 30;
public int beaconLevelThree = 40; public int beaconLevelThree = 40;
@@ -943,6 +948,11 @@ public class PurpurWorldConfig { @@ -924,6 +929,11 @@ public class PurpurWorldConfig {
farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Shift right click to use exp for mending
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index a810eaa7dc319f5ea69b239190ae91838bfad4ec..6d194797d8fe2cd6e5652d596f4bc66ffc3b6375 100644 index 69c4289164fa0934f05cc8d80ffa1576bb5e6359..f4bdca2e5acfe4c0f846f90d5964c33439abec0c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -513,6 +513,7 @@ public class ServerPlayerGameMode { @@ -516,6 +516,7 @@ public class ServerPlayerGameMode {
public InteractionHand interactHand; public InteractionHand interactHand;
public ItemStack interactItemStack; public ItemStack interactItemStack;
public InteractionResult useItemOn(ServerPlayer player, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) { public InteractionResult useItemOn(ServerPlayer player, Level world, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
@@ -16,7 +16,7 @@ index a810eaa7dc319f5ea69b239190ae91838bfad4ec..6d194797d8fe2cd6e5652d596f4bc66f
BlockPos blockposition = hitResult.getBlockPos(); BlockPos blockposition = hitResult.getBlockPos();
BlockState iblockdata = world.getBlockState(blockposition); BlockState iblockdata = world.getBlockState(blockposition);
boolean cancelledBlock = false; boolean cancelledBlock = false;
@@ -622,4 +623,18 @@ public class ServerPlayerGameMode { @@ -619,4 +620,18 @@ public class ServerPlayerGameMode {
public void setLevel(ServerLevel world) { public void setLevel(ServerLevel world) {
this.level = world; this.level = world;
} }
@@ -36,10 +36,10 @@ index a810eaa7dc319f5ea69b239190ae91838bfad4ec..6d194797d8fe2cd6e5652d596f4bc66f
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index cc3728902da9e10df2bb0e3edbb765bffd51d808..222436febf0b6ea93b57b8a4c0a98998a9430873 100644 index df23496844d4b41e79efe23c99a5449ca40a4ccd..6ba7813b48fe0db81cb895937837bd463f458d62 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2060,6 +2060,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2004,6 +2004,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
boolean cancelled; boolean cancelled;
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {
@@ -48,21 +48,21 @@ index cc3728902da9e10df2bb0e3edbb765bffd51d808..222436febf0b6ea93b57b8a4c0a98998
cancelled = event.useItemInHand() == Event.Result.DENY; cancelled = event.useItemInHand() == Event.Result.DENY;
} else { } else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 49837f5ebccfb0d6fbfefe379f52433b44c5aa79..fb785f51d7774d31ed50f71f8048301fc2561ed0 100644 index ccf1ba95e0dc595276d2b69d7ead7249966b92da..e224eb3e438e7099d37519ccf3640c351df83ba7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -411,6 +411,7 @@ public class PurpurWorldConfig { @@ -394,6 +394,7 @@ public class PurpurWorldConfig {
public int playerBurpDelay = 10;
public boolean playerBurpWhenFull = false; public boolean playerBurpWhenFull = false;
public boolean playerRidableInWater = false; public boolean playerRidableInWater = false;
public boolean playerRemoveBindingWithWeakness = false;
+ public int shiftRightClickRepairsMendingPoints = 0; + public int shiftRightClickRepairsMendingPoints = 0;
private void playerSettings() { private void playerSettings() {
if (PurpurConfig.version < 19) { if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -435,6 +436,7 @@ public class PurpurWorldConfig { @@ -416,6 +417,7 @@ public class PurpurWorldConfig {
playerBurpDelay = getInt("gameplay-mechanics.player.burp-delay", playerBurpDelay);
playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull);
playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater);
playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness);
+ shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); + shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints);
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dolphins naturally aggressive to players chance
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
index 38112239035b0c66c429c0762199867e70e0a67a..e539eefb6e6d3172611d1f9185a1138001481885 100644 index 439fa9a5070889a4dee48786509940c4d56b6806..f2e1954a1e80862ec3818af448cf4096265adb20 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java --- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
@@ -81,6 +81,7 @@ public class Dolphin extends WaterAnimal { @@ -81,6 +81,7 @@ public class Dolphin extends WaterAnimal {
@@ -48,10 +48,10 @@ index 38112239035b0c66c429c0762199867e70e0a67a..e539eefb6e6d3172611d1f9185a11380
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 28b497ad67d73a34c1eb09a5a3709d72823f9b5c..49a95c186ae1d2c8cf4474c9009304d3ee575494 100644 index e224eb3e438e7099d37519ccf3640c351df83ba7..99501a23ac62215baa452354c77c6c4631458595 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1357,6 +1357,7 @@ public class PurpurWorldConfig { @@ -1338,6 +1338,7 @@ public class PurpurWorldConfig {
public double dolphinMaxHealth = 10.0D; public double dolphinMaxHealth = 10.0D;
public boolean dolphinDisableTreasureSearching = false; public boolean dolphinDisableTreasureSearching = false;
public boolean dolphinTakeDamageFromWater = false; public boolean dolphinTakeDamageFromWater = false;
@@ -59,7 +59,7 @@ index 28b497ad67d73a34c1eb09a5a3709d72823f9b5c..49a95c186ae1d2c8cf4474c9009304d3
private void dolphinSettings() { private void dolphinSettings() {
dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable);
dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable);
@@ -1371,6 +1372,7 @@ public class PurpurWorldConfig { @@ -1352,6 +1353,7 @@ public class PurpurWorldConfig {
dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth);
dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching);
dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater);

View File

@@ -61,10 +61,10 @@ index c519883f4ed3772378b5563401b8c557dc315ace..78f00014c034949b6559ca948b1b78fa
@Override @Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 49a95c186ae1d2c8cf4474c9009304d3ee575494..83e477e180e20bf04ebd926b12aba37792d0e9bd 100644 index 99501a23ac62215baa452354c77c6c4631458595..df9aac76b92b41a0c8f5d87f86e9fbffc3e46d50 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1306,7 +1306,14 @@ public class PurpurWorldConfig { @@ -1287,7 +1287,14 @@ public class PurpurWorldConfig {
public int cowFeedMushrooms = 0; public int cowFeedMushrooms = 0;
public int cowBreedingTicks = 6000; public int cowBreedingTicks = 6000;
public boolean cowTakeDamageFromWater = false; public boolean cowTakeDamageFromWater = false;
@@ -79,7 +79,7 @@ index 49a95c186ae1d2c8cf4474c9009304d3ee575494..83e477e180e20bf04ebd926b12aba377
cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
cowControllable = getBoolean("mobs.cow.controllable", cowControllable); cowControllable = getBoolean("mobs.cow.controllable", cowControllable);
@@ -1319,6 +1326,8 @@ public class PurpurWorldConfig { @@ -1300,6 +1307,8 @@ public class PurpurWorldConfig {
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks);
cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option for beds to explode on villager sleep
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java 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 a7c85c9efd13145cc061a3a0076b44a7af9812b9..1bace0d549ea4a4b45ac4cd1409524989ecac4ca 100644 index d9e8d7d7ba3775131b871a619d997a29dc959594..c40070cf6654ebd7efb83c108efd29a5670ac234 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1101,6 +1101,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1081,6 +1081,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override @Override
public void startSleeping(BlockPos pos) { public void startSleeping(BlockPos pos) {
@@ -22,10 +22,10 @@ index a7c85c9efd13145cc061a3a0076b44a7af9812b9..1bace0d549ea4a4b45ac4cd140952498
this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level().getGameTime()); // CraftBukkit - decompile error this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level().getGameTime()); // CraftBukkit - decompile error
this.brain.eraseMemory(MemoryModuleType.WALK_TARGET); this.brain.eraseMemory(MemoryModuleType.WALK_TARGET);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0edff6f99dbea98f0d80f2a48d52d86874430ff5..613dcb1b68169c724dbf63a6327dab5b50dd4a8d 100644 index df9aac76b92b41a0c8f5d87f86e9fbffc3e46d50..b9f054715d7a84f7938e83bc16bb5d6f684a6083 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -825,6 +825,7 @@ public class PurpurWorldConfig { @@ -806,6 +806,7 @@ public class PurpurWorldConfig {
} }
public boolean bedExplode = true; public boolean bedExplode = true;
@@ -33,7 +33,7 @@ index 0edff6f99dbea98f0d80f2a48d52d86874430ff5..613dcb1b68169c724dbf63a6327dab5b
public double bedExplosionPower = 5.0D; public double bedExplosionPower = 5.0D;
public boolean bedExplosionFire = true; public boolean bedExplosionFire = true;
public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
@@ -835,6 +836,7 @@ public class PurpurWorldConfig { @@ -816,6 +817,7 @@ public class PurpurWorldConfig {
} }
} }
bedExplode = getBoolean("blocks.bed.explode", bedExplode); bedExplode = getBoolean("blocks.bed.explode", bedExplode);

View File

@@ -26,10 +26,10 @@ index a7847b6ca5b203fd693337928f31a9043be163d7..a50d58240c58a0fea4ae8fc246898708
LocalDate localdate = LocalDate.now(); LocalDate localdate = LocalDate.now();
int i = localdate.get(ChronoField.DAY_OF_MONTH); int i = localdate.get(ChronoField.DAY_OF_MONTH);
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java 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 919767affe2ede755cf83398436fbf1581ad508f..8515e6360c1630385884a60f652f65fdefeaf540 100644 index f56580bdae043fa4e5e195481ae3d344fc725621..63cbec52bc4637a0b787cbc22041188691527def 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -135,11 +135,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo @@ -136,11 +136,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
this.reassessWeaponGoal(); this.reassessWeaponGoal();
this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper - Add world settings for mobs picking up loot this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper - Add world settings for mobs picking up loot
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) { if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
@@ -43,10 +43,10 @@ index 919767affe2ede755cf83398436fbf1581ad508f..8515e6360c1630385884a60f652f65fd
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 53f7659aed2378b36f1923a0208c7f86048eb85b..d5a5e51e23328deac09d6990539d8207b1567912 100644 index c8a664447f19e437eb7c615563add92715be9650..fc6914d459b1985a2cba0f963a7d79ebaa0aed58 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -575,11 +575,7 @@ public class Zombie extends Monster { @@ -584,11 +584,7 @@ public class Zombie extends Monster {
} }
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) { if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
@@ -60,10 +60,10 @@ index 53f7659aed2378b36f1923a0208c7f86048eb85b..d5a5e51e23328deac09d6990539d8207
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 867820c14f2f22ee6dc2c744bf9de109d4d9daff..64276ffc7fb0cb27928442b0b4dc2f6db4ff46b8 100644 index b9f054715d7a84f7938e83bc16bb5d6f684a6083..0f9b5dbff992006ce8bc6cdd2c07668f1a4fa1f6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1699,6 +1699,13 @@ public class PurpurWorldConfig { @@ -1680,6 +1680,13 @@ public class PurpurWorldConfig {
guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater);
} }

View File

@@ -5,28 +5,28 @@ Subject: [PATCH] Config for grindstones
diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
index db9444dda248260372d96ce239a590e88a4c1142..5824636332eb35ae6bee9cc0661ee95901bb8c4b 100644 index 1678f6c8b2c7db761783e53043169bf12bc2cb29..5d47ffc3fd31930c7dd2f23bc0e6b7da513d1595 100644
--- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
@@ -130,7 +130,7 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -131,7 +131,7 @@ public class GrindstoneMenu extends AbstractContainerMenu {
Enchantment enchantment = (Enchantment) ((Holder) entry.getKey()).value(); Holder<Enchantment> holder = (Holder) entry.getKey();
int k = entry.getIntValue(); int k = entry.getIntValue();
- if (!enchantment.isCurse()) { - if (!holder.is(EnchantmentTags.CURSE)) {
+ if (!org.purpurmc.purpur.PurpurConfig.grindstoneIgnoredEnchants.contains(enchantment)) { // Purpur + if (!org.purpurmc.purpur.PurpurConfig.grindstoneIgnoredEnchants.contains(holder.value())) { // Purpur
j += enchantment.getMinCost(k); j += ((Enchantment) holder.value()).getMinCost(k);
} }
} }
@@ -229,7 +229,7 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -230,7 +230,7 @@ public class GrindstoneMenu extends AbstractContainerMenu {
Entry<Holder<Enchantment>> entry = (Entry) iterator.next(); Entry<Holder<Enchantment>> entry = (Entry) iterator.next();
Enchantment enchantment = (Enchantment) ((Holder) entry.getKey()).value(); Holder<Enchantment> holder = (Holder) entry.getKey();
- if (!enchantment.isCurse() || itemenchantments_a.getLevel(enchantment) == 0) { - if (!holder.is(EnchantmentTags.CURSE) || itemenchantments_a.getLevel(holder) == 0) {
+ if (!org.purpurmc.purpur.PurpurConfig.grindstoneIgnoredEnchants.contains(enchantment) || itemenchantments_a.getLevel(enchantment) == 0) { // Purpur + if (!org.purpurmc.purpur.PurpurConfig.grindstoneIgnoredEnchants.contains(holder.value()) || itemenchantments_a.getLevel(holder) == 0) { // Purpur
itemenchantments_a.upgrade(enchantment, entry.getIntValue()); itemenchantments_a.upgrade(holder, entry.getIntValue());
} }
} }
@@ -237,10 +237,70 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -238,10 +238,70 @@ public class GrindstoneMenu extends AbstractContainerMenu {
}); });
} }
@@ -93,12 +93,12 @@ index db9444dda248260372d96ce239a590e88a4c1142..5824636332eb35ae6bee9cc0661ee959
private ItemStack removeNonCursesFrom(ItemStack item) { private ItemStack removeNonCursesFrom(ItemStack item) {
ItemEnchantments itemenchantments = EnchantmentHelper.updateEnchantments(item, (itemenchantments_a) -> { ItemEnchantments itemenchantments = EnchantmentHelper.updateEnchantments(item, (itemenchantments_a) -> {
itemenchantments_a.removeIf((holder) -> { itemenchantments_a.removeIf((holder) -> {
- return !((Enchantment) holder.value()).isCurse(); - return !holder.is(EnchantmentTags.CURSE);
+ return !org.purpurmc.purpur.PurpurConfig.grindstoneIgnoredEnchants.contains(holder.value()); + return !org.purpurmc.purpur.PurpurConfig.grindstoneIgnoredEnchants.contains(holder.value()); // Purpur
}); });
}); });
@@ -255,6 +315,23 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -256,6 +316,23 @@ public class GrindstoneMenu extends AbstractContainerMenu {
} }
item.set(DataComponents.REPAIR_COST, i); item.set(DataComponents.REPAIR_COST, i);
@@ -123,7 +123,7 @@ index db9444dda248260372d96ce239a590e88a4c1142..5824636332eb35ae6bee9cc0661ee959
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index b56afa30c04350b5e9ca4ea2d33f9e7c58559380..7f0a9a239791cfb1d721d24f907b89ae2dd4c64a 100644 index c1e7dc324237eea16e88a1fc636d5bcdf49a2b0c..95fd67671ad690052f7d697ef11e327969af5ef8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -309,6 +309,9 @@ public class PurpurConfig { @@ -309,6 +309,9 @@ public class PurpurConfig {
@@ -155,4 +155,4 @@ index b56afa30c04350b5e9ca4ea2d33f9e7c58559380..7f0a9a239791cfb1d721d24f907b89ae
+ grindstoneRemoveDisplay = getBoolean("settings.blocks.grindstone.remove-name-and-lore", grindstoneRemoveDisplay); + grindstoneRemoveDisplay = getBoolean("settings.blocks.grindstone.remove-name-and-lore", grindstoneRemoveDisplay);
} }
public static boolean allowInfinityMending = false; public static boolean allowUnsafeEnchants = false;

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] UPnP Port Forwarding
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 813b3a6c6de4f05e885ab864e8429818d8103acb..a8efb833d9efbc3367ddda1623ee1a0742cf3ea4 100644 index fa6bf262da81837c7ff7b115a0a7b4a7f266037a..843d86bbb615d6257c143a3822a2af214af1a737 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -314,6 +314,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -321,6 +321,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static long currentTickLong = 0L; // Paper - track current tick as a long public static long currentTickLong = 0L; // Paper - track current tick as a long
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
public boolean lagging = false; // Purpur public boolean lagging = false; // Purpur
+ protected boolean upnp = false; // Purpur + protected boolean upnp = false; // Purpur
public volatile Thread shutdownThread; // Paper public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
public volatile boolean abnormalExit = false; // Paper AtomicReference<S> atomicreference = new AtomicReference();
@@ -975,6 +976,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -954,6 +955,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server"); MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
MinecraftTimings.stopServer(); // Paper MinecraftTimings.stopServer(); // Paper
@@ -32,10 +32,10 @@ index 813b3a6c6de4f05e885ab864e8429818d8103acb..a8efb833d9efbc3367ddda1623ee1a07
if (this.server != null) { if (this.server != null) {
this.server.disablePlugins(); this.server.disablePlugins();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 04accfaeba1beb564db7205c81d8481dfc679f62..7d94acd1bfd99dcc8f8e64fd974b60a6500c9b54 100644 index 70b0d8f18df7380d54a9c28e0d9060964e338993..1331b58b60142513708c8188f04c6818d75d6160 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -289,6 +289,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -293,6 +293,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (true) throw new IllegalStateException("Failed to bind to port", ioexception); // Paper - Propagate failed to bind to port error if (true) throw new IllegalStateException("Failed to bind to port", ioexception); // Paper - Propagate failed to bind to port error
return false; return false;
} }
@@ -67,10 +67,10 @@ index 04accfaeba1beb564db7205c81d8481dfc679f62..7d94acd1bfd99dcc8f8e64fd974b60a6
// CraftBukkit start // CraftBukkit start
// this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage)); // Spigot - moved up // this.setPlayerList(new DedicatedPlayerList(this, this.registries(), this.playerDataStorage)); // Spigot - moved up
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index b771714f3c4dfb6b67641c88d01750a464de71de..e3d4d54a9afa521bb471bde4d17da55813ab3e3f 100644 index 95fd67671ad690052f7d697ef11e327969af5ef8..d1e825e11727a6923ffd9a524dadde3ed9436821 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -419,4 +419,9 @@ public class PurpurConfig { @@ -410,4 +410,9 @@ public class PurpurConfig {
private static void tpsCatchup() { private static void tpsCatchup() {
tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup); tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Campfire option for lit when placed
diff --git a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java diff --git a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java
index d6fffb0953494e8667cc456137cac0f5deebfbb6..f7a2244b998aebe354d38eec7aa22fd94ce404c9 100644 index 7f6058f4def83867971121751acd51c398583651..5a49daf7b6bf9e0ec3d50494287a620d41f8d85d 100644
--- a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java --- a/src/main/java/net/minecraft/world/level/block/CampfireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CampfireBlock.java
@@ -133,7 +133,7 @@ public class CampfireBlock extends BaseEntityBlock implements SimpleWaterloggedB @@ -132,7 +132,7 @@ public class CampfireBlock extends BaseEntityBlock implements SimpleWaterloggedB
BlockPos blockposition = ctx.getClickedPos(); BlockPos blockposition = ctx.getClickedPos();
boolean flag = world.getFluidState(blockposition).getType() == Fluids.WATER; boolean flag = world.getFluidState(blockposition).getType() == Fluids.WATER;
@@ -18,10 +18,10 @@ index d6fffb0953494e8667cc456137cac0f5deebfbb6..f7a2244b998aebe354d38eec7aa22fd9
@Override @Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1b7ebd3fe3cefd1ca26957835a93e103641ddb7a..88d300ebbfa907712ddd77c2ca7dd91e04d22f21 100644 index 0f9b5dbff992006ce8bc6cdd2c07668f1a4fa1f6..c19eef807105479a98a549c197054b8d31923428 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -868,6 +868,11 @@ public class PurpurWorldConfig { @@ -849,6 +849,11 @@ public class PurpurWorldConfig {
cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors);
} }

View File

@@ -46,10 +46,10 @@ index f59a2903bfb8ae591a638ea5bb387caaa93ce664..1b9d0e28e518c501b4b93ae385ddd64a
protected void onHit(HitResult hitResult) { protected void onHit(HitResult hitResult) {
super.onHit(hitResult); super.onHit(hitResult);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 88d300ebbfa907712ddd77c2ca7dd91e04d22f21..d005e045f5fc2a9442fb070ebf984f34785ecc9e 100644 index c19eef807105479a98a549c197054b8d31923428..fef6e398874977f8502aa3f7c0a2db57def2796d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -231,6 +231,9 @@ public class PurpurWorldConfig { @@ -216,6 +216,9 @@ public class PurpurWorldConfig {
public int glowBerriesEatGlowDuration = 0; public int glowBerriesEatGlowDuration = 0;
public boolean shulkerBoxItemDropContentsWhenDestroyed = true; public boolean shulkerBoxItemDropContentsWhenDestroyed = true;
public boolean compassItemShowsBossBar = false; public boolean compassItemShowsBossBar = false;
@@ -59,7 +59,7 @@ index 88d300ebbfa907712ddd77c2ca7dd91e04d22f21..d005e045f5fc2a9442fb070ebf984f34
private void itemSettings() { private void itemSettings() {
itemImmuneToCactus.clear(); itemImmuneToCactus.clear();
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
@@ -279,6 +282,9 @@ public class PurpurWorldConfig { @@ -264,6 +267,9 @@ public class PurpurWorldConfig {
glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration);
shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed);
compassItemShowsBossBar = getBoolean("gameplay-mechanics.item.compass.holding-shows-bossbar", compassItemShowsBossBar); compassItemShowsBossBar = getBoolean("gameplay-mechanics.item.compass.holding-shows-bossbar", compassItemShowsBossBar);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to disable zombie villagers cure
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index d909138942212ee090ff513b1817414c93457425..fe43c744cccdc07d5e449ce3ede85f4c7d898018 100644 index 9bb75b49ea2d0bd8aafbe537b65f86eb04f6cfe2..612907fe87e46b5b13ed80635f203fa99948bf74 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -219,7 +219,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -222,7 +222,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
ItemStack itemstack = player.getItemInHand(hand); ItemStack itemstack = player.getItemInHand(hand);
if (itemstack.is(Items.GOLDEN_APPLE)) { if (itemstack.is(Items.GOLDEN_APPLE)) {
@@ -18,10 +18,10 @@ index d909138942212ee090ff513b1817414c93457425..fe43c744cccdc07d5e449ce3ede85f4c
if (!this.level().isClientSide) { if (!this.level().isClientSide) {
this.startConverting(player.getUUID(), this.random.nextInt(level().purpurConfig.zombieVillagerCuringTimeMax - level().purpurConfig.zombieVillagerCuringTimeMin + 1) + level().purpurConfig.zombieVillagerCuringTimeMin); // Purpur this.startConverting(player.getUUID(), this.random.nextInt(level().purpurConfig.zombieVillagerCuringTimeMax - level().purpurConfig.zombieVillagerCuringTimeMin + 1) + level().purpurConfig.zombieVillagerCuringTimeMin); // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 89a02d8e24fb8519eea6d25d4f91cef197b2b3cb..2d514ebbde1f97276cbb33bed640ec6adfa4cb5a 100644 index fef6e398874977f8502aa3f7c0a2db57def2796d..0b14c7d2aaa4dcc42a4c2207ce323e6d29475288 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2918,6 +2918,7 @@ public class PurpurWorldConfig { @@ -2895,6 +2895,7 @@ public class PurpurWorldConfig {
public boolean zombieVillagerTakeDamageFromWater = false; public boolean zombieVillagerTakeDamageFromWater = false;
public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMin = 3600;
public int zombieVillagerCuringTimeMax = 6000; public int zombieVillagerCuringTimeMax = 6000;
@@ -29,7 +29,7 @@ index 89a02d8e24fb8519eea6d25d4f91cef197b2b3cb..2d514ebbde1f97276cbb33bed640ec6a
private void zombieVillagerSettings() { private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -2935,6 +2936,7 @@ public class PurpurWorldConfig { @@ -2912,6 +2913,7 @@ public class PurpurWorldConfig {
zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater);
zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin);
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);

View File

@@ -29,10 +29,10 @@ index 2649188930653610b8aaaeb18797c80879cd572a..7572c289758001c7417a192f0e6e994f
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java 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 6f7e90d406b088fee0eb254f8042bd404d8f36fa..7ffe51eedc9d086424cf450026bdc260249864c4 100644 index 1ef3b68d71c33ffb248a4b88fcfdc98a0360c4aa..73f2103b77795740690032084ecddc9c2a5b119e 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java --- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -312,7 +312,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -311,7 +311,7 @@ public class Block extends BlockBehaviour implements ItemLike {
public static void dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity) { public static void dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity) {
if (world instanceof ServerLevel) { if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity).forEach((itemstack) -> { Block.getDrops(state, (ServerLevel) world, pos, blockEntity).forEach((itemstack) -> {
@@ -41,7 +41,7 @@ index 6f7e90d406b088fee0eb254f8042bd404d8f36fa..7ffe51eedc9d086424cf450026bdc260
}); });
state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true);
} }
@@ -331,7 +331,7 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -330,7 +330,7 @@ public class Block extends BlockBehaviour implements ItemLike {
event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping
event.callEvent(); event.callEvent();
for (org.bukkit.inventory.ItemStack drop : event.getDrops()) { for (org.bukkit.inventory.ItemStack drop : event.getDrops()) {
@@ -50,7 +50,7 @@ index 6f7e90d406b088fee0eb254f8042bd404d8f36fa..7ffe51eedc9d086424cf450026bdc260
} }
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping
block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping
@@ -348,13 +348,32 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -347,13 +347,32 @@ public class Block extends BlockBehaviour implements ItemLike {
// Paper end - Properly handle xp dropping // Paper end - Properly handle xp dropping
if (world instanceof ServerLevel) { if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> { Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> {
@@ -85,10 +85,10 @@ index 6f7e90d406b088fee0eb254f8042bd404d8f36fa..7ffe51eedc9d086424cf450026bdc260
double d0 = (double) EntityType.ITEM.getHeight() / 2.0D; double d0 = (double) EntityType.ITEM.getHeight() / 2.0D;
double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D); double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D);
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 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 6349f2e0a5ba30d250f5ffe43771f325c0999a76..8dc1436fe78759cee5247cc28e8a18999e738a1b 100644 index cd3b952a228c09077c2e74183a34ddb32811280b..3b2650c761d6c7790b26a4781a94b121246bec86 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -87,6 +87,12 @@ public abstract class BlockEntity { @@ -86,6 +86,12 @@ public abstract class BlockEntity {
if (persistentDataTag instanceof CompoundTag) { if (persistentDataTag instanceof CompoundTag) {
this.persistentDataContainer.putAll((CompoundTag) persistentDataTag); this.persistentDataContainer.putAll((CompoundTag) persistentDataTag);
} }
@@ -101,7 +101,7 @@ index 6349f2e0a5ba30d250f5ffe43771f325c0999a76..8dc1436fe78759cee5247cc28e8a1899
} }
// CraftBukkit end // CraftBukkit end
@@ -103,6 +109,15 @@ public abstract class BlockEntity { @@ -102,6 +108,15 @@ public abstract class BlockEntity {
this.loadAdditional(nbt, registryLookup); this.loadAdditional(nbt, registryLookup);
} }
@@ -117,7 +117,7 @@ index 6349f2e0a5ba30d250f5ffe43771f325c0999a76..8dc1436fe78759cee5247cc28e8a1899
protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) {} protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) {}
public final CompoundTag saveWithFullMetadata(HolderLookup.Provider registryLookup) { public final CompoundTag saveWithFullMetadata(HolderLookup.Provider registryLookup) {
@@ -407,4 +422,16 @@ public abstract class BlockEntity { @@ -405,4 +420,16 @@ public abstract class BlockEntity {
<T> T getOrDefault(DataComponentType<? extends T> type, T fallback); <T> T getOrDefault(DataComponentType<? extends T> type, T fallback);
} }
@@ -135,10 +135,10 @@ index 6349f2e0a5ba30d250f5ffe43771f325c0999a76..8dc1436fe78759cee5247cc28e8a1899
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8d4c3c4a06d40841e8446485364393e36e686fdd..abe3614f2286db8945bc6c4eadd01ec8a7f93555 100644 index 0b14c7d2aaa4dcc42a4c2207ce323e6d29475288..7fc42ce536d08e870addbea61d8ce933ef4f9fc2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -130,6 +130,8 @@ public class PurpurWorldConfig { @@ -128,6 +128,8 @@ public class PurpurWorldConfig {
public boolean milkCuresBadOmen = true; public boolean milkCuresBadOmen = true;
public boolean noteBlockIgnoreAbove = false; public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = true; public boolean persistentDroppableEntityDisplayNames = true;
@@ -147,8 +147,8 @@ index 8d4c3c4a06d40841e8446485364393e36e686fdd..abe3614f2286db8945bc6c4eadd01ec8
public boolean projectilesBypassMobGriefing = false; public boolean projectilesBypassMobGriefing = false;
public boolean tickFluids = true; public boolean tickFluids = true;
public double mobsBlindnessMultiplier = 1; public double mobsBlindnessMultiplier = 1;
@@ -153,6 +155,14 @@ public class PurpurWorldConfig { @@ -149,6 +151,14 @@ public class PurpurWorldConfig {
imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove);
+ if (PurpurConfig.version < 35) { + if (PurpurConfig.version < 35) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 03a1eceaed065b7f33d830414136ed3c07c2034c..a5566e52d839191add236a6ff7245d1b7617fc37 100644 index 3dff1bb3a847cf121155b815cd9b6491b50029c5..30e642f51bbaae3a96c714a99dda43ca60cc374c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1684,6 +1684,7 @@ public class ServerPlayer extends Player { @@ -1671,6 +1671,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
@Override @Override
public void openTextEdit(SignBlockEntity sign, boolean front) { public void openTextEdit(SignBlockEntity sign, boolean front) {
@@ -84,10 +84,10 @@ index a28be7a332659be655f419d969e0c64e659b6c21..8cd812a25b1cc05ea14675658bf9c150
public ClientboundBlockEntityDataPacket getUpdatePacket() { public ClientboundBlockEntityDataPacket getUpdatePacket() {
return ClientboundBlockEntityDataPacket.create(this); return ClientboundBlockEntityDataPacket.create(this);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1474de310551a68d2c14980f6076381c66a46f85..7c46618ae3934646a2badb94872ad12ad7b020d8 100644 index 7fc42ce536d08e870addbea61d8ce933ef4f9fc2..2c7ff15022e75fc14f9087282b17a6abc0e3690c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1041,6 +1041,11 @@ public class PurpurWorldConfig { @@ -1022,6 +1022,11 @@ public class PurpurWorldConfig {
} }
} }

View File

@@ -135,7 +135,7 @@ index 3dec5a082606ee35a8c8d7f746480262d6a189c5..b2f6ccae9576c176263e51a232e17a08
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index f79d0e3907dd89ff0abf8220392bb4e23cf9003e..9ded52a0022e33a6b69191b5fa758d6cc7eb076f 100644 index d1e825e11727a6923ffd9a524dadde3ed9436821..a44abb0b8d9a1a8222e6a198ab9c190558ec54fd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -312,6 +312,10 @@ public class PurpurConfig { @@ -312,6 +312,10 @@ public class PurpurConfig {
@@ -179,4 +179,4 @@ index f79d0e3907dd89ff0abf8220392bb4e23cf9003e..9ded52a0022e33a6b69191b5fa758d6c
+ } + }
} }
public static boolean allowInfinityMending = false; public static boolean allowUnsafeEnchants = false;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Grindstone API
diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
index 5824636332eb35ae6bee9cc0661ee95901bb8c4b..1d181de9c8fd45b4d9f0230f80d5752ff5c1a432 100644 index 5d47ffc3fd31930c7dd2f23bc0e6b7da513d1595..cf373c763749161d0371bd243b8d77bb750a7d38 100644
--- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java --- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java +++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
@@ -95,9 +95,11 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -96,9 +96,11 @@ public class GrindstoneMenu extends AbstractContainerMenu {
@Override @Override
public void onTake(net.minecraft.world.entity.player.Player player, ItemStack stack) { public void onTake(net.minecraft.world.entity.player.Player player, ItemStack stack) {
@@ -21,7 +21,7 @@ index 5824636332eb35ae6bee9cc0661ee95901bb8c4b..1d181de9c8fd45b4d9f0230f80d5752f
} }
world.levelEvent(1042, blockposition, 0); world.levelEvent(1042, blockposition, 0);
@@ -393,7 +395,9 @@ public class GrindstoneMenu extends AbstractContainerMenu { @@ -394,7 +396,9 @@ public class GrindstoneMenu extends AbstractContainerMenu {
return ItemStack.EMPTY; return ItemStack.EMPTY;
} }

View File

@@ -74,10 +74,10 @@ index acbd60a2f162fe0e254e36d0e8e7face3fc8a7b3..da1c7999ca64199387054de46489d3ff
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fd8c8c6e563662926002fb1c72aaea0ba2999cdb..b492b7f6c8c959fa379bd75d5d89e99065421e93 100644 index 85923289e2e66f4d33e77089f06f5b3985a83d6e..954165c4d12f9cae85fa47e480cd0aa242539bce 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -548,6 +548,8 @@ public class PurpurWorldConfig { @@ -529,6 +529,8 @@ public class PurpurWorldConfig {
public Map<Block, Weatherable> axeWeatherables = new HashMap<>(); public Map<Block, Weatherable> axeWeatherables = new HashMap<>();
public Map<Block, Tillable> hoeTillables = new HashMap<>(); public Map<Block, Tillable> hoeTillables = new HashMap<>();
public Map<Block, Flattenable> shovelFlattenables = new HashMap<>(); public Map<Block, Flattenable> shovelFlattenables = new HashMap<>();
@@ -86,7 +86,7 @@ index fd8c8c6e563662926002fb1c72aaea0ba2999cdb..b492b7f6c8c959fa379bd75d5d89e990
private void toolSettings() { private void toolSettings() {
axeStrippables.clear(); axeStrippables.clear();
axeWaxables.clear(); axeWaxables.clear();
@@ -815,6 +817,8 @@ public class PurpurWorldConfig { @@ -796,6 +798,8 @@ public class PurpurWorldConfig {
}); });
shovelFlattenables.put(block, new Flattenable(into, drops)); shovelFlattenables.put(block, new Flattenable(into, drops));
}); });

View File

@@ -18,10 +18,10 @@ index 0c732cfbd9ce50198a3f85ae8ef2263d7ae0bc1a..2f0e8aeb9c45853fca12ddd78a7d5181
@Override @Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b492b7f6c8c959fa379bd75d5d89e99065421e93..9ed53d42189f7f7562ed96b4af39a02db2cb2ff5 100644 index 954165c4d12f9cae85fa47e480cd0aa242539bce..fac30513243d39ca36a96fb01c98958d6f059688 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1075,11 +1075,13 @@ public class PurpurWorldConfig { @@ -1056,11 +1056,13 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromItems = false; public boolean turtleEggsBreakFromItems = false;
public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBreakFromMinecarts = false;
public boolean turtleEggsBypassMobGriefing = false; public boolean turtleEggsBypassMobGriefing = false;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Mob head visibility percent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index c1e275fb53c4c173d80ae27087048f0f3902c2ad..4744b0dd3f5e9e5f2d92bd8604610bc133977931 100644 index b08851827656f644a560b084aed10087665153db..d543a75d27d343edca9930c9a4599cbd4a9de045 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1071,9 +1071,20 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1046,9 +1046,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD); ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
EntityType<?> entitytypes = entity.getType(); EntityType<?> entitytypes = entity.getType();
@@ -32,10 +32,10 @@ index c1e275fb53c4c173d80ae27087048f0f3902c2ad..4744b0dd3f5e9e5f2d92bd8604610bc1
// Purpur start // Purpur start
if (entity instanceof LivingEntity entityliving) { if (entity instanceof LivingEntity entityliving) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1aec4b5b30b 100644 index fac30513243d39ca36a96fb01c98958d6f059688..238323047a08b4553129714ba34df44b6a8b27b2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1393,6 +1393,7 @@ public class PurpurWorldConfig { @@ -1374,6 +1374,7 @@ public class PurpurWorldConfig {
public boolean creeperExplodeWhenKilled = false; public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false; public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false; public boolean creeperAlwaysDropExp = false;
@@ -43,7 +43,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
private void creeperSettings() { private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1410,6 +1411,7 @@ public class PurpurWorldConfig { @@ -1391,6 +1392,7 @@ public class PurpurWorldConfig {
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
@@ -51,7 +51,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
} }
public boolean dolphinRidable = false; public boolean dolphinRidable = false;
@@ -2196,6 +2198,7 @@ public class PurpurWorldConfig { @@ -2177,6 +2179,7 @@ public class PurpurWorldConfig {
public boolean piglinTakeDamageFromWater = false; public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000; public int piglinPortalSpawnModifier = 2000;
public boolean piglinAlwaysDropExp = false; public boolean piglinAlwaysDropExp = false;
@@ -59,7 +59,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
private void piglinSettings() { private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -2210,6 +2213,7 @@ public class PurpurWorldConfig { @@ -2191,6 +2194,7 @@ public class PurpurWorldConfig {
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
@@ -67,7 +67,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
} }
public boolean piglinBruteRidable = false; public boolean piglinBruteRidable = false;
@@ -2469,6 +2473,7 @@ public class PurpurWorldConfig { @@ -2450,6 +2454,7 @@ public class PurpurWorldConfig {
public double skeletonMaxHealth = 20.0D; public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false; public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false; public boolean skeletonAlwaysDropExp = false;
@@ -75,7 +75,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
private void skeletonSettings() { private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2481,6 +2486,7 @@ public class PurpurWorldConfig { @@ -2462,6 +2467,7 @@ public class PurpurWorldConfig {
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
@@ -83,7 +83,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
} }
public boolean skeletonHorseRidable = false; public boolean skeletonHorseRidable = false;
@@ -3015,6 +3021,7 @@ public class PurpurWorldConfig { @@ -2992,6 +2998,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false; public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false; public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false; public boolean zombieAlwaysDropExp = false;
@@ -91,7 +91,7 @@ index 2bd0a18e58a0b953adaa7d875bf0ae21b472c20a..2e4c53de39c7a439245017bf5cb4c1ae
private void zombieSettings() { private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -3033,6 +3040,7 @@ public class PurpurWorldConfig { @@ -3010,6 +3017,7 @@ public class PurpurWorldConfig {
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);

View File

@@ -17,10 +17,10 @@ index 0bd191acb9596d3aa21c337230d26f09d26f6888..20211f40aeeade9217ece087688974bd
return false; return false;
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 9ded52a0022e33a6b69191b5fa758d6cc7eb076f..cd27c2a3343133d688592791bec2a031410ff93f 100644 index a44abb0b8d9a1a8222e6a198ab9c190558ec54fd..1baa623b0e2040556b53e25cac7b99f2a101ed42 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -452,4 +452,11 @@ public class PurpurConfig { @@ -443,4 +443,11 @@ public class PurpurConfig {
private static void networkSettings() { private static void networkSettings() {
useUPnP = getBoolean("settings.network.upnp-port-forwarding", useUPnP); useUPnP = getBoolean("settings.network.upnp-port-forwarding", useUPnP);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Shears can have looting enchantment
diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
index a024c697a65bbab27408da1d6a75e531d9719b47..e4fab82b369f2c2ea0d8c8acd814d06140d551fc 100644 index 44b79a7c2f8b95a484d1999fa2167ce588f7985b..68632372c8704058f35f12e0ae6cdd98ebd55937 100644
--- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java --- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
+++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
@@ -105,7 +105,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior { @@ -104,7 +104,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
if (ishearable.readyForShearing()) { if (ishearable.readyForShearing()) {
// CraftBukkit start // CraftBukkit start
// Paper start - Add drops to shear events // Paper start - Add drops to shear events
@@ -61,10 +61,10 @@ index 06fac8dae42451f912c2db14d792461cee3dba83..a7c95199234231db14faa4a07953bcde
} }
return dropEntities; return dropEntities;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
index 9e617b3f1ec4eac5f83bdf19a3563cdc81b008d8..6b1244d3957e7f62c96ffd34692b8916337839fd 100644 index a3d0991dcf570a009c5404ddbd7118895dc18c9d..9730fa382fd6b0bced858e0e4c26a1b51a0e0bd0 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -297,7 +297,7 @@ public class Sheep extends Animal implements Shearable { @@ -295,7 +295,7 @@ public class Sheep extends Animal implements Shearable {
if (!this.level().isClientSide && this.readyForShearing()) { if (!this.level().isClientSide && this.readyForShearing()) {
// CraftBukkit start // CraftBukkit start
// Paper start - custom shear drops // Paper start - custom shear drops
@@ -73,7 +73,7 @@ index 9e617b3f1ec4eac5f83bdf19a3563cdc81b008d8..6b1244d3957e7f62c96ffd34692b8916
org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops); org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
if (event != null) { if (event != null) {
if (event.isCancelled()) { if (event.isCancelled()) {
@@ -322,12 +322,13 @@ public class Sheep extends Animal implements Shearable { @@ -320,12 +320,13 @@ public class Sheep extends Animal implements Shearable {
@Override @Override
public void shear(SoundSource shearedSoundCategory) { public void shear(SoundSource shearedSoundCategory) {
// Paper start - custom shear drops // Paper start - custom shear drops
@@ -126,7 +126,7 @@ index 69cdccca01fe7d10e6d958e16d91efe08f699505..3b74931ae4e3a869d8db38c119e57b44
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Bogged.java b/src/main/java/net/minecraft/world/entity/monster/Bogged.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Bogged.java b/src/main/java/net/minecraft/world/entity/monster/Bogged.java
index ebec95ca146591f170d9e31bbc774e88806269a2..fed6e686c29ad0117731a80294e6725f41d8bf77 100644 index 8f08b45b7e6279e2f57e3921ebe879082a5fd261..a39ea8cf75adbf84388b74222b3417a4c45acef5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Bogged.java --- a/src/main/java/net/minecraft/world/entity/monster/Bogged.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Bogged.java +++ b/src/main/java/net/minecraft/world/entity/monster/Bogged.java
@@ -181,7 +181,7 @@ public class Bogged extends AbstractSkeleton implements Shearable { @@ -181,7 +181,7 @@ public class Bogged extends AbstractSkeleton implements Shearable {
@@ -139,21 +139,21 @@ index ebec95ca146591f170d9e31bbc774e88806269a2..fed6e686c29ad0117731a80294e6725f
this.generateShearedMushrooms(drops::add); this.generateShearedMushrooms(drops::add);
return drops; return drops;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 15d6e06c21643eb57386e3f0c0e89fcb7ac77c4b..9f128a6a76ee2297e8efdf9371d74fc7998328ce 100644 index 1baa623b0e2040556b53e25cac7b99f2a101ed42..0dead6b5e2ec8f46767a86640c78374bfa2fdaa5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -391,6 +391,7 @@ public class PurpurConfig { @@ -389,6 +389,7 @@ public class PurpurConfig {
}
}
public static boolean allowInfinityMending = false;
public static boolean allowCrossbowInfinity = true;
+ public static boolean allowShearsLooting = false; + public static boolean allowShearsLooting = false;
public static boolean allowUnsafeEnchants = false; public static boolean allowUnsafeEnchants = false;
public static boolean allowInapplicableEnchants = true; public static boolean allowInapplicableEnchants = true;
public static boolean allowIncompatibleEnchants = true; public static boolean allowIncompatibleEnchants = true;
@@ -413,6 +414,7 @@ public class PurpurConfig { @@ -404,6 +405,7 @@ public class PurpurConfig {
set("settings.enchantment.anvil.allow-higher-enchants-levels", true);
set("settings.enchantment.allow-unsafe-enchants", null);
} }
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); + allowShearsLooting = getBoolean("settings.enchantment.allow-looting-on-shears", allowShearsLooting);
allowUnsafeEnchants = getBoolean("settings.enchantment.anvil.allow-unsafe-enchants", allowUnsafeEnchants); allowUnsafeEnchants = getBoolean("settings.enchantment.anvil.allow-unsafe-enchants", allowUnsafeEnchants);
allowInapplicableEnchants = getBoolean("settings.enchantment.anvil.allow-inapplicable-enchants", allowInapplicableEnchants); allowInapplicableEnchants = getBoolean("settings.enchantment.anvil.allow-inapplicable-enchants", allowInapplicableEnchants);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop bees from dying after stinging
diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java 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 926c30db9b28a30fe5d6c8d20f3972dec0d7b4d0..221c0051c7a0e20c1b7a464df26eb63c4e997eee 100644 index ca56f5781c1c02e40179a4dd359c5d167d3160dc..0dfdecff129a6b34833eb3fb7d7d967b131531ff 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -435,6 +435,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -446,6 +446,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.hurt(this.damageSources().drown(), 1.0F); this.hurt(this.damageSources().drown(), 1.0F);
} }
@@ -17,10 +17,10 @@ index 926c30db9b28a30fe5d6c8d20f3972dec0d7b4d0..221c0051c7a0e20c1b7a464df26eb63c
++this.timeSinceSting; ++this.timeSinceSting;
if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) { if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2e4c53de39c7a439245017bf5cb4c1aec4b5b30b..c1da3aa2ccf8a90bfbbc02ca3b289d99d803be9a 100644 index 238323047a08b4553129714ba34df44b6a8b27b2..940eccf00d46d24be22554ae3113e294a4085575 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1183,6 +1183,7 @@ public class PurpurWorldConfig { @@ -1164,6 +1164,7 @@ public class PurpurWorldConfig {
public boolean beeCanWorkAtNight = false; public boolean beeCanWorkAtNight = false;
public boolean beeCanWorkInRain = false; public boolean beeCanWorkInRain = false;
public boolean beeAlwaysDropExp = false; public boolean beeAlwaysDropExp = false;
@@ -28,7 +28,7 @@ index 2e4c53de39c7a439245017bf5cb4c1aec4b5b30b..c1da3aa2ccf8a90bfbbc02ca3b289d99
private void beeSettings() { private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -1199,6 +1200,7 @@ public class PurpurWorldConfig { @@ -1180,6 +1181,7 @@ public class PurpurWorldConfig {
beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index a8efb833d9efbc3367ddda1623ee1a0742cf3ea4..5b0c0ddd60d133d52b0405ad86cabc1c94ea998c 100644 index 843d86bbb615d6257c143a3822a2af214af1a737..49020c26d2bf6d30fadc3352925a76b91c490561 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1067,6 +1067,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1060,6 +1060,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} }
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) { public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur
@@ -17,10 +17,10 @@ index a8efb833d9efbc3367ddda1623ee1a0742cf3ea4..5b0c0ddd60d133d52b0405ad86cabc1c
this.hasLoggedStop = true; // Paper - Debugging this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 7d94acd1bfd99dcc8f8e64fd974b60a6500c9b54..7adf0af86449d2bd4805d9d8823db6bd1c6fef9e 100644 index 1331b58b60142513708c8188f04c6818d75d6160..7a579cdb6bb9dced485f86d1bfe8ab432db51ab1 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -387,6 +387,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -391,6 +391,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
} }
org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur
@@ -29,10 +29,10 @@ index 7d94acd1bfd99dcc8f8e64fd974b60a6500c9b54..7adf0af86449d2bd4805d9d8823db6bd
} }
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 9f128a6a76ee2297e8efdf9371d74fc7998328ce..6884aed8d03ee4da14baeaa5d6eaea54ff53afe5 100644 index 0dead6b5e2ec8f46767a86640c78374bfa2fdaa5..cb5831c4ec2231d22da495c0e827b4b1694c16da 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -434,6 +434,11 @@ public class PurpurConfig { @@ -425,6 +425,11 @@ public class PurpurConfig {
allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd); allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd);
} }

View File

@@ -35,10 +35,10 @@ index 12a0c69f8fec30fad64cbb00af2ca1bbf0ea5153..d0ec0722496ed931b48c4e7076fddbb1
org.bukkit.event.Cancellable cancellable; org.bukkit.event.Cancellable cancellable;
if (entity instanceof Player) { if (entity instanceof Player) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c57bf82ab2ef1827b76f57ed8aff9aee08706fb3..ed600eacc335f9468db65e0ebde622451ab7a6a8 100644 index 940eccf00d46d24be22554ae3113e294a4085575..201a7d2493bf015eee0cbada679e855f8900257f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -968,6 +968,7 @@ public class PurpurWorldConfig { @@ -949,6 +949,7 @@ public class PurpurWorldConfig {
public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingDisabled = false;
public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingOnlyPlayers = false;
public boolean farmlandTramplingFeatherFalling = false; public boolean farmlandTramplingFeatherFalling = false;
@@ -46,7 +46,7 @@ index c57bf82ab2ef1827b76f57ed8aff9aee08706fb3..ed600eacc335f9468db65e0ebde62245
private void farmlandSettings() { private void farmlandSettings() {
farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing);
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
@@ -975,6 +976,7 @@ public class PurpurWorldConfig { @@ -956,6 +957,7 @@ public class PurpurWorldConfig {
farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled); farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled);
farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers); farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers);
farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling);

View File

@@ -9,23 +9,23 @@ players still only pick up one orb every tick. However, setting this
to any negative number will pick up all orbs instantly. to any negative number will pick up all orbs instantly.
diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
index 45fda4c03c6fe586d26638f0a2a1d26db807e52c..7130d483ccdce26526e715bd7e68d2e896e6215f 100644 index 6598a737db11fb0c7e7a95b9bbfaabd75895cbdd..ad69ef7fb8e68027c6f41618ee2585659b7dae16 100644
--- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
+++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java
@@ -326,7 +326,7 @@ public class ExperienceOrb extends Entity { @@ -330,7 +330,7 @@ public class ExperienceOrb extends Entity {
public void playerTouch(Player player) { public void playerTouch(Player player) {
if (!this.level().isClientSide) { if (player instanceof ServerPlayer entityplayer) {
if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - PlayerPickupExperienceEvent if (player.takeXpDelay == 0 && new com.destroystokyo.paper.event.player.PlayerPickupExperienceEvent(entityplayer.getBukkitEntity(), (org.bukkit.entity.ExperienceOrb) this.getBukkitEntity()).callEvent()) { // Paper - PlayerPickupExperienceEvent
- player.takeXpDelay = CraftEventFactory.callPlayerXpCooldownEvent(player, 2, PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2; - player.takeXpDelay = CraftEventFactory.callPlayerXpCooldownEvent(player, 2, PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2;
+ player.takeXpDelay = CraftEventFactory.callPlayerXpCooldownEvent(player, this.level().purpurConfig.playerExpPickupDelay, PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2; // Purpur + player.takeXpDelay = CraftEventFactory.callPlayerXpCooldownEvent(player, this.level().purpurConfig.playerExpPickupDelay, PlayerExpCooldownChangeEvent.ChangeReason.PICKUP_ORB).getNewCooldown(); // CraftBukkit - entityhuman.takeXpDelay = 2; // Purpur
player.take(this, 1); player.take(this, 1);
int i = this.repairPlayerItems(player, this.value); int i = this.repairPlayerItems(entityplayer, this.value);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 9d8a9dfb2f9f5a34f19073643ea05bde851aa2e3..28ced14143e1c6bd4e8490a98619165357e644dc 100644 index 5a9abf3cb9448f922c7d87a48fa50337e35c2c34..2a4083103e3b1370ca1d4c90112c216bde918ce4 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java --- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -632,7 +632,7 @@ public abstract class Player extends LivingEntity { @@ -635,7 +635,7 @@ public abstract class Player extends LivingEntity {
while (iterator.hasNext()) { while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next(); Entity entity = (Entity) iterator.next();
@@ -35,20 +35,20 @@ index 9d8a9dfb2f9f5a34f19073643ea05bde851aa2e3..28ced14143e1c6bd4e8490a986191653
} else if (!entity.isRemoved()) { } else if (!entity.isRemoved()) {
this.touch(entity); this.touch(entity);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e6aa67479c8c0459408056c54bed3ea950c80693..903b36d986a52db8fa8e0ea638a348b7536677a5 100644 index 201a7d2493bf015eee0cbada679e855f8900257f..7df658e724e9cbb5ae635e794ba598e78163eae5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -428,6 +428,7 @@ public class PurpurWorldConfig { @@ -411,6 +411,7 @@ public class PurpurWorldConfig {
public boolean playerBurpWhenFull = false;
public boolean playerRidableInWater = false; public boolean playerRidableInWater = false;
public boolean playerRemoveBindingWithWeakness = false;
public int shiftRightClickRepairsMendingPoints = 0; public int shiftRightClickRepairsMendingPoints = 0;
+ public int playerExpPickupDelay = 2; + public int playerExpPickupDelay = 2;
private void playerSettings() { private void playerSettings() {
if (PurpurConfig.version < 19) { if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -453,6 +454,7 @@ public class PurpurWorldConfig { @@ -434,6 +435,7 @@ public class PurpurWorldConfig {
playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull);
playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater);
playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness);
shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints);
+ playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay); + playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow void trading
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 42db3e64b120b753e98a0fd7e3f56c7d28256fd2..ae2b9732b2795ea7faec96af4c27ccb04f772307 100644 index 3f23cd5d1fc8fc011b0857d127005aa8d45d39ea..3ad3221cd6e049964dd19b562d0bfb6b312cf921 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2855,7 +2855,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2344,7 +2344,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start // Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start - Fix merchant inventory not closing on entity removal // Paper start - Fix merchant inventory not closing on entity removal
@@ -18,19 +18,19 @@ index 42db3e64b120b753e98a0fd7e3f56c7d28256fd2..ae2b9732b2795ea7faec96af4c27ccb0
} }
// Paper end - Fix merchant inventory not closing on entity removal // Paper end - Fix merchant inventory not closing on entity removal
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ae3e4547a7bd00432d51ead5bdef5703499c297f..38f417bde3e05124a9ebc23c2c5ea2f4d9d7cefe 100644 index 7df658e724e9cbb5ae635e794ba598e78163eae5..32daa92d03d1ab8caef45454c6627d0b22870625 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -429,6 +429,7 @@ public class PurpurWorldConfig { @@ -412,6 +412,7 @@ public class PurpurWorldConfig {
public boolean playerRemoveBindingWithWeakness = false; public boolean playerRidableInWater = false;
public int shiftRightClickRepairsMendingPoints = 0; public int shiftRightClickRepairsMendingPoints = 0;
public int playerExpPickupDelay = 2; public int playerExpPickupDelay = 2;
+ public boolean playerVoidTrading = false; + public boolean playerVoidTrading = false;
private void playerSettings() { private void playerSettings() {
if (PurpurConfig.version < 19) { if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -455,6 +456,7 @@ public class PurpurWorldConfig { @@ -436,6 +437,7 @@ public class PurpurWorldConfig {
playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater);
shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints);
playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay); playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay);
+ playerVoidTrading = getBoolean("gameplay-mechanics.player.allow-void-trading", playerVoidTrading); + playerVoidTrading = getBoolean("gameplay-mechanics.player.allow-void-trading", playerVoidTrading);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable phantom size
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 0d81540d048cd4a08962bd24d3bdd49db708f83f..26077bd6eeedbdae84613188cb0f336abb3563d2 100644 index 98b4eecf1685dcf43880b983493597bd22de4877..260c5d22ee10582974a5006cfeefa0670ecd1d3a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -265,7 +265,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -265,7 +265,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -22,10 +22,10 @@ index 0d81540d048cd4a08962bd24d3bdd49db708f83f..26077bd6eeedbdae84613188cb0f336a
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d67c94b024ec3769f011b68ce353fc0adb3564a0..c751331118e37df2bab7d8e05e4a3dc9ee95dee4 100644 index 32daa92d03d1ab8caef45454c6627d0b22870625..9507b6f8975777375d9260bca7a23f9916b5ec5f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2136,6 +2136,8 @@ public class PurpurWorldConfig { @@ -2117,6 +2117,8 @@ public class PurpurWorldConfig {
public boolean phantomFlamesOnSwoop = false; public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false; public boolean phantomTakeDamageFromWater = false;
public boolean phantomAlwaysDropExp = false; public boolean phantomAlwaysDropExp = false;
@@ -34,7 +34,7 @@ index d67c94b024ec3769f011b68ce353fc0adb3564a0..c751331118e37df2bab7d8e05e4a3dc9
private void phantomSettings() { private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -2172,6 +2174,13 @@ public class PurpurWorldConfig { @@ -2153,6 +2155,13 @@ public class PurpurWorldConfig {
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp); phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Max joins per second
When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index f40420a6841f03983b0837e177ea2ae7c3a37ca1..3b66ecc4f110d0f2dc0ef6c560801296d7e0be64 100644 index 55848fa832d0f4d2d03f99df51e10c5fdfcd2ded..19bf89613e79a7cce3b6c003326619a6445c1bef 100644
--- a/src/main/java/net/minecraft/network/Connection.java --- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java
@@ -609,11 +609,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> { @@ -534,11 +534,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
private static int joinAttemptsThisTick; // Paper - Buffer joins to world private static int joinAttemptsThisTick; // Paper - Buffer joins to world
private static int currTick; // Paper - Buffer joins to world private static int currTick; // Paper - Buffer joins to world
@@ -31,10 +31,10 @@ index f40420a6841f03983b0837e177ea2ae7c3a37ca1..3b66ecc4f110d0f2dc0ef6c560801296
} }
// Paper end - Buffer joins to world // Paper end - Buffer joins to world
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 6884aed8d03ee4da14baeaa5d6eaea54ff53afe5..d0e13dce484c9680128061efaef74555c57ca742 100644 index cb5831c4ec2231d22da495c0e827b4b1694c16da..b0d7d0a72ff28a973a61a1a2d317402cdfe2e024 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -456,8 +456,10 @@ public class PurpurConfig { @@ -447,8 +447,10 @@ public class PurpurConfig {
} }
public static boolean useUPnP = false; public static boolean useUPnP = false;

View File

@@ -9,10 +9,10 @@ This patch adds a config option to allow the minimum demand to instead
be configurable. be configurable.
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java 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 17a247455dd853ae98e2f82f64a99bccc4d27438..4fa66af33ede3949f4e0236c806e3373f9dea730 100644 index d78e6b3dd97973589c1d1c666164960d28c26ec8..567bb9e6c9ac9092469742b7d4e1ed73d8bd5519 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -545,7 +545,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -525,7 +525,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
while (iterator.hasNext()) { while (iterator.hasNext()) {
MerchantOffer merchantrecipe = (MerchantOffer) iterator.next(); MerchantOffer merchantrecipe = (MerchantOffer) iterator.next();
@@ -40,10 +40,10 @@ index 0efc8d997b34302c3e0a5d7ec73a11a940dbeefe..af157881d440b34cfe79fbc9b03cc9ef
public ItemStack assemble() { public ItemStack assemble() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c751331118e37df2bab7d8e05e4a3dc9ee95dee4..0af1661cd5e8b803430a4adcdeb2275ab4876776 100644 index 9507b6f8975777375d9260bca7a23f9916b5ec5f..20c17408972b37cc5504661b8ff43a0f971fd45f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2817,6 +2817,7 @@ public class PurpurWorldConfig { @@ -2797,6 +2797,7 @@ public class PurpurWorldConfig {
public boolean villagerTakeDamageFromWater = false; public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true; public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false; public boolean villagerAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index c751331118e37df2bab7d8e05e4a3dc9ee95dee4..0af1661cd5e8b803430a4adcdeb2275a
private void villagerSettings() { private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2837,6 +2838,7 @@ public class PurpurWorldConfig { @@ -2816,6 +2817,7 @@ public class PurpurWorldConfig {
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java 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 4fa66af33ede3949f4e0236c806e3373f9dea730..dd74825c04543ae8c0bb1ab5eef6c8a152b621fd 100644 index 567bb9e6c9ac9092469742b7d4e1ed73d8bd5519..96e9ba6da536c06a2bdb3522d1e0a5f1ea516707 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -142,6 +142,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -17,7 +17,7 @@ index 4fa66af33ede3949f4e0236c806e3373f9dea730..dd74825c04543ae8c0bb1ab5eef6c8a1
public Villager(EntityType<? extends Villager> entityType, Level world) { public Villager(EntityType<? extends Villager> entityType, Level world) {
this(entityType, world, VillagerType.PLAINS); this(entityType, world, VillagerType.PLAINS);
@@ -199,6 +201,48 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -194,6 +196,48 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return this.level().purpurConfig.villagerAlwaysDropExp; return this.level().purpurConfig.villagerAlwaysDropExp;
} }
@@ -66,27 +66,32 @@ index 4fa66af33ede3949f4e0236c806e3373f9dea730..dd74825c04543ae8c0bb1ab5eef6c8a1
@Override @Override
public Brain<Villager> getBrain() { public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
@@ -295,10 +339,19 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -275,9 +319,23 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
// Paper start
this.customServerAiStep(false); @Override
} protected void customServerAiStep() {
- protected void customServerAiStep(final boolean inactive) { + // Paper start
+ this.customServerAiStep(false);
+ }
+ protected void customServerAiStep(boolean inactive) { // Purpur - not final + protected void customServerAiStep(boolean inactive) { // Purpur - not final
// Paper end + // Paper end
this.level().getProfiler().push("villagerBrain"); this.level().getProfiler().push("villagerBrain");
- this.getBrain().tick((ServerLevel) this.level(), this);
- /*// Purpur start // Purpur - TODO: Pufferfish
+ // Purpur start + // Purpur start
+ if (this.level().purpurConfig.villagerLobotomizeEnabled) { + if (this.level().purpurConfig.villagerLobotomizeEnabled) {
+ // treat as inactive if lobotomized + // treat as inactive if lobotomized
+ inactive = inactive || checkLobotomized(); + // inactive = inactive || checkLobotomized(); // Purpur - TODO: 1-21: check later
+ } else { + } else {
+ this.isLobotomized = false; + this.isLobotomized = false;
+ } + }
+ // Purpur end + // Purpur end
if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper + /*if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper
+ else if (this.isLobotomized && shouldRestock()) restock(); // Purpur + else if (this.isLobotomized && shouldRestock()) restock(); // Purpur*/ // Purpur - TODO: 1-21: check later
/*// Purpur start // Purpur - TODO: Pufferfish + /*// Purpur start // Purpur - TODO: Pufferfish
if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level(), this); // Paper this.getBrain().tick((ServerLevel) this.level(), this); // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c615fc56d 100644 index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c615fc56d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
@@ -104,10 +109,10 @@ index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0af1661cd5e8b803430a4adcdeb2275ab4876776..eb68b8ca8921be15839fae902df4f73cbf754c8a 100644 index 20c17408972b37cc5504661b8ff43a0f971fd45f..cc1a55ed607cac6d47ab92dbd93c06c791c8e9ce 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2818,6 +2818,9 @@ public class PurpurWorldConfig { @@ -2798,6 +2798,9 @@ public class PurpurWorldConfig {
public boolean villagerAllowTrading = true; public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false; public boolean villagerAlwaysDropExp = false;
public int villagerMinimumDemand = 0; public int villagerMinimumDemand = 0;
@@ -117,7 +122,7 @@ index 0af1661cd5e8b803430a4adcdeb2275ab4876776..eb68b8ca8921be15839fae902df4f73c
private void villagerSettings() { private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2839,6 +2842,18 @@ public class PurpurWorldConfig { @@ -2818,6 +2821,18 @@ public class PurpurWorldConfig {
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);
villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand);

View File

@@ -17,10 +17,10 @@ index 18dad0825616c4167a0a7555689ee64910a87e09..6945992491027d43eca4f1ca697ad45c
&& this.lookTime > 0 && this.lookTime > 0
&& entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent(); && entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index eb68b8ca8921be15839fae902df4f73cbf754c8a..7594779136bc9ba3c7ed159bd47f4eac674367c4 100644 index cc1a55ed607cac6d47ab92dbd93c06c791c8e9ce..df93ee542044d824b6a747a08c3002b6eea30830 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2821,6 +2821,7 @@ public class PurpurWorldConfig { @@ -2801,6 +2801,7 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false; public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100; public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false; public boolean villagerLobotomizeWaitUntilTradeLocked = false;
@@ -28,7 +28,7 @@ index eb68b8ca8921be15839fae902df4f73cbf754c8a..7594779136bc9ba3c7ed159bd47f4eac
private void villagerSettings() { private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2854,6 +2855,7 @@ public class PurpurWorldConfig { @@ -2833,6 +2834,7 @@ public class PurpurWorldConfig {
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);

View File

@@ -5,10 +5,10 @@ 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 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 6f22705072fecbe91196e4966fca2eeec060f120..ed2ae44f7cef5aed17d10cc8a7df0a2276f9f16b 100644 index c9cabb061ebc9172647304431cc3fb2593dd47ba..565408c03849fb3011fb708478a99ec6ffd081ef 100644
--- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java --- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java +++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
@@ -72,6 +72,6 @@ public abstract class WaterAnimal extends PathfinderMob { @@ -71,6 +71,6 @@ public abstract class WaterAnimal extends PathfinderMob {
i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i); i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i);
j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j); j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j);
// Paper end - Make water animal spawn height configurable // Paper end - Make water animal spawn height configurable
@@ -17,10 +17,10 @@ index 6f22705072fecbe91196e4966fca2eeec060f120..ed2ae44f7cef5aed17d10cc8a7df0a22
} }
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index aec0e4eec5095c12c7f52e5f955a6a04d05c9819..05307f584d96b95e9b81239316a256310422c039 100644 index df93ee542044d824b6a747a08c3002b6eea30830..33dda8cc9738cde199e98cbaf643d65eabe016be 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1062,8 +1062,10 @@ public class PurpurWorldConfig { @@ -1043,8 +1043,10 @@ public class PurpurWorldConfig {
} }
public boolean spawnerDeactivateByRedstone = false; public boolean spawnerDeactivateByRedstone = false;

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 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 4744b0dd3f5e9e5f2d92bd8604610bc133977931..36102a9bafde35d30a5cf78999a1999daa05b7e1 100644 index d543a75d27d343edca9930c9a4599cbd4a9de045..b3320e206e07a7b895fe28bcc4cc501c104bedd5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1573,13 +1573,13 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1550,13 +1550,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (entity1 instanceof net.minecraft.world.entity.player.Player) { if (entity1 instanceof net.minecraft.world.entity.player.Player) {
net.minecraft.world.entity.player.Player entityhuman = (net.minecraft.world.entity.player.Player) entity1; net.minecraft.world.entity.player.Player entityhuman = (net.minecraft.world.entity.player.Player) entity1;
@@ -25,10 +25,10 @@ index 4744b0dd3f5e9e5f2d92bd8604610bc133977931..36102a9bafde35d30a5cf78999a1999d
if (entityliving2 instanceof net.minecraft.world.entity.player.Player) { 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 diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index b95d355ede8689af1f7f5a0424b5274e38839756..3ed19f30f1cab9df3b1bfdf0b0caf7882a77c5f7 100644 index 88be8ebe619f2e42bdffab534da4f269b802cf41..ed594f9446646e30de3d4e8afa22f67222da8d87 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -512,7 +512,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -513,7 +513,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
net.minecraft.server.level.ServerPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle(); net.minecraft.server.level.ServerPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle();
getHandle().lastHurtByPlayer = entityPlayer; getHandle().lastHurtByPlayer = entityPlayer;
getHandle().lastHurtByMob = entityPlayer; getHandle().lastHurtByMob = entityPlayer;
@@ -38,10 +38,10 @@ index b95d355ede8689af1f7f5a0424b5274e38839756..3ed19f30f1cab9df3b1bfdf0b0caf788
// Paper end // Paper end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bb4763d6200cdb99a37ce3af58362ae434e3aea9..d7fdefb27ae9361b631d29c61e82aff913814e92 100644 index 33dda8cc9738cde199e98cbaf643d65eabe016be..f11014cfd9383cba0aeeb38df7d49731c2fc2456 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -143,6 +143,7 @@ public class PurpurWorldConfig { @@ -141,6 +141,7 @@ public class PurpurWorldConfig {
public boolean mobsIgnoreRails = false; public boolean mobsIgnoreRails = false;
public boolean rainStopsAfterSleep = true; public boolean rainStopsAfterSleep = true;
public boolean thunderStopsAfterSleep = true; public boolean thunderStopsAfterSleep = true;
@@ -49,7 +49,7 @@ index bb4763d6200cdb99a37ce3af58362ae434e3aea9..d7fdefb27ae9361b631d29c61e82aff9
private void miscGameplayMechanicsSettings() { private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
@@ -175,6 +176,7 @@ public class PurpurWorldConfig { @@ -171,6 +172,7 @@ public class PurpurWorldConfig {
mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails);
rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep); rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep);
thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep); thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep);

View File

@@ -63,10 +63,10 @@ index 923357251ad950ec4f893e8771fcfa99de8a60c5..78a341ac80806f86f2ca0bd895fb091a
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) { protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
if (world.isClientSide) { if (world.isClientSide) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 389aac3c02c16bbfe3f266e66e53f6107b27e4dd..fbb2ecbf00395175d7660c5a9fe4987db9ce13b1 100644 index f11014cfd9383cba0aeeb38df7d49731c2fc2456..697aa18d5b02935c0d479a0609aac094831dec7c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -829,9 +829,13 @@ public class PurpurWorldConfig { @@ -810,9 +810,13 @@ public class PurpurWorldConfig {
public boolean anvilAllowColors = false; public boolean anvilAllowColors = false;
public boolean anvilColorsUseMiniMessage; public boolean anvilColorsUseMiniMessage;

View File

@@ -24,10 +24,10 @@ index 2f0e8aeb9c45853fca12ddd78a7d51813a600e67..08ba90f760abb9fb62311dddd7b5bdbd
return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
// Purpur end // Purpur end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fbb2ecbf00395175d7660c5a9fe4987db9ce13b1..ebce13b3a25f26c22bbe8a25d38b76027b630401 100644 index 697aa18d5b02935c0d479a0609aac094831dec7c..dae16114d51e21455442ef590d331ca25ec6329f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1090,12 +1090,14 @@ public class PurpurWorldConfig { @@ -1071,12 +1071,14 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBreakFromMinecarts = false;
public boolean turtleEggsBypassMobGriefing = false; public boolean turtleEggsBypassMobGriefing = false;
public int turtleEggsRandomTickCrackChance = 500; public int turtleEggsRandomTickCrackChance = 500;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add toggle for enchant level clamping
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index 5443013060b62e3bfcc51cddca96d1c0bc59fe72..8925440dbc35dbc4a7d59f13511d7afeda803260 100644 index c33f85b570f159ab465b5a10a8044a81f2797f43..824afdc486a50952bf5e32b06509f7952da9bba5 100644
--- a/src/main/java/net/minecraft/server/Main.java --- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java
@@ -119,6 +119,11 @@ public class Main { @@ -119,6 +119,11 @@ public class Main {
@@ -21,19 +21,19 @@ index 5443013060b62e3bfcc51cddca96d1c0bc59fe72..8925440dbc35dbc4a7d59f13511d7afe
Bootstrap.bootStrap(); Bootstrap.bootStrap();
Bootstrap.validate(); Bootstrap.validate();
diff --git a/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java b/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java diff --git a/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java b/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java
index af18de11dd55938b6091f5ab183bd3fe4e8df152..2c741860afa1fa4d5798c68b84ec3fe13157ff09 100644 index 8ac485d82c2d2b32f4d54e02c18c2cb2c3df4fa4..9ebe6a5f31ceacd33d9c111966ad941b535b4e67 100644
--- a/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java --- a/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java
+++ b/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java +++ b/src/main/java/net/minecraft/world/item/enchantment/ItemEnchantments.java
@@ -37,7 +37,7 @@ public class ItemEnchantments implements TooltipProvider { @@ -35,7 +35,7 @@ public class ItemEnchantments implements TooltipProvider {
private static final java.util.Comparator<Holder<Enchantment>> ENCHANTMENT_ORDER = java.util.Comparator.comparing(Holder::getRegisteredName);
public static final ItemEnchantments EMPTY = new ItemEnchantments(new Object2IntAVLTreeMap<>(ENCHANTMENT_ORDER), true); public static final ItemEnchantments EMPTY = new ItemEnchantments(new Object2IntAVLTreeMap<>(ENCHANTMENT_ORDER), true);
// Paper end // Paper end
public static final int MAX_LEVEL = 255;
- private static final Codec<Integer> LEVEL_CODEC = Codec.intRange(0, 255); - private static final Codec<Integer> LEVEL_CODEC = Codec.intRange(0, 255);
+ private static final Codec<Integer> LEVEL_CODEC = Codec.intRange(0, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels ? 255 : 32767)); // Purpur + private static final Codec<Integer> LEVEL_CODEC = Codec.intRange(0, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels ? 255 : 32767)); // Purpur
private static final Codec<Object2IntAVLTreeMap<Holder<Enchantment>>> LEVELS_CODEC = Codec.unboundedMap( // Paper private static final Codec<Object2IntAVLTreeMap<Holder<Enchantment>>> LEVELS_CODEC = Codec.unboundedMap(
BuiltInRegistries.ENCHANTMENT.holderByNameCodec(), LEVEL_CODEC Enchantment.CODEC, LEVEL_CODEC
) )// Paper start - sort enchantments
@@ -72,7 +72,7 @@ public class ItemEnchantments implements TooltipProvider { @@ -69,7 +69,7 @@ public class ItemEnchantments implements TooltipProvider {
for (Entry<Holder<Enchantment>> entry : enchantments.object2IntEntrySet()) { for (Entry<Holder<Enchantment>> entry : enchantments.object2IntEntrySet()) {
int i = entry.getIntValue(); int i = entry.getIntValue();
@@ -42,35 +42,35 @@ index af18de11dd55938b6091f5ab183bd3fe4e8df152..2c741860afa1fa4d5798c68b84ec3fe1
throw new IllegalArgumentException("Enchantment " + entry.getKey() + " has invalid level " + i); throw new IllegalArgumentException("Enchantment " + entry.getKey() + " has invalid level " + i);
} }
} }
@@ -169,13 +169,13 @@ public class ItemEnchantments implements TooltipProvider { @@ -166,13 +166,13 @@ public class ItemEnchantments implements TooltipProvider {
if (level <= 0) { if (level <= 0) {
this.enchantments.removeInt(enchantment.builtInRegistryHolder()); this.enchantments.removeInt(enchantment);
} else { } else {
- this.enchantments.put(enchantment.builtInRegistryHolder(), Math.min(level, 255)); - this.enchantments.put(enchantment, Math.min(level, 255));
+ this.enchantments.put(enchantment.builtInRegistryHolder(), Math.min(level, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels ? 255 : 32767))); + this.enchantments.put(enchantment, Math.min(level, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels ? 255 : 32767))); // Purpur
} }
} }
public void upgrade(Enchantment enchantment, int level) { public void upgrade(Holder<Enchantment> enchantment, int level) {
if (level > 0) { if (level > 0) {
- this.enchantments.merge(enchantment.builtInRegistryHolder(), Math.min(level, 255), Integer::max); - this.enchantments.merge(enchantment, Math.min(level, 255), Integer::max);
+ this.enchantments.merge(enchantment.builtInRegistryHolder(), Math.min(level, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels ? 255 : 32767)), Integer::max); + this.enchantments.merge(enchantment, Math.min(level, (org.purpurmc.purpur.PurpurConfig.clampEnchantLevels ? 255 : 32767)), Integer::max); // Purpur
} }
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 5879af630bc3711a17d51f455585ccd31f7a6d88..7462474f7eff9f50644d0b7ceac341f237c93df0 100644 index b0d7d0a72ff28a973a61a1a2d317402cdfe2e024..08b10246b4cb7374a230bea470d737670dae5edd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -398,6 +398,7 @@ public class PurpurConfig { @@ -396,6 +396,7 @@ public class PurpurConfig {
public static boolean allowHigherEnchantsLevels = true; public static boolean allowHigherEnchantsLevels = true;
public static boolean allowUnsafeEnchantCommand = false; public static boolean allowUnsafeEnchantCommand = false;
public static boolean replaceIncompatibleEnchants = false; public static boolean replaceIncompatibleEnchants = false;
+ public static boolean clampEnchantLevels = true; + public static boolean clampEnchantLevels = true;
private static void enchantmentSettings() { private static void enchantmentSettings() {
if (version < 5) { if (version < 30) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); boolean oldValue = getBoolean("settings.enchantment.allow-unsafe-enchants", false);
@@ -421,6 +422,7 @@ public class PurpurConfig { @@ -412,6 +413,7 @@ public class PurpurConfig {
allowHigherEnchantsLevels = getBoolean("settings.enchantment.anvil.allow-higher-enchants-levels", allowHigherEnchantsLevels); 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 allowUnsafeEnchantCommand = getBoolean("settings.enchantment.allow-unsafe-enchant-command", allowUnsafeEnchants); // allowUnsafeEnchants as default for backwards compatability
replaceIncompatibleEnchants = getBoolean("settings.enchantment.anvil.replace-incompatible-enchants", replaceIncompatibleEnchants); replaceIncompatibleEnchants = getBoolean("settings.enchantment.anvil.replace-incompatible-enchants", replaceIncompatibleEnchants);

View File

@@ -5,18 +5,18 @@ Subject: [PATCH] Skip junit tests for purpur commands
diff --git a/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java b/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java diff --git a/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java b/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java
index 2f3ff50bf3f70b6b404d02d5ffcc079162a63bc1..4e57fdf21d4b7789cd7c3d3a18ddc6227bc77792 100644 index ca71c688b37ce2c8b712a4f9216cf872c8edf78e..83f2c04d083eced64bc67661eed0ddfdddc497cc 100644
--- a/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java --- a/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java
+++ b/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java +++ b/src/test/java/io/papermc/paper/permissions/MinecraftCommandPermissionsTest.java
@@ -48,6 +48,7 @@ public class MinecraftCommandPermissionsTest extends AbstractTestingBase { @@ -45,6 +45,7 @@ public class MinecraftCommandPermissionsTest extends AbstractTestingBase {
if ("bukkit.command.paper.pgive".equals(vanillaPerm)) { // skip our custom give command Set<String> foundPerms = new HashSet<>();
continue; for (CommandNode<CommandSourceStack> child : root.getChildren()) {
} final String vanillaPerm = VanillaCommandWrapper.getPermission(child);
+ if (TO_SKIP.contains(vanillaPerm)) continue; // Purpur + if (TO_SKIP.contains(vanillaPerm)) continue; // Purpur
if (!perms.contains(vanillaPerm)) { if (!perms.contains(vanillaPerm)) {
missing.add("Missing permission for " + child.getName() + " (" + vanillaPerm + ") command"); missing.add("Missing permission for " + child.getName() + " (" + vanillaPerm + ") command");
} else { } else {
@@ -60,6 +61,25 @@ public class MinecraftCommandPermissionsTest extends AbstractTestingBase { @@ -57,6 +58,25 @@ public class MinecraftCommandPermissionsTest extends AbstractTestingBase {
} }
private static final List<String> TO_SKIP = List.of( private static final List<String> TO_SKIP = List.of(

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 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 dd74825c04543ae8c0bb1ab5eef6c8a152b621fd..dcf580d852ede8ea01f5d91944a224ec6eca73e4 100644 index 96e9ba6da536c06a2bdb3522d1e0a5f1ea516707..3384b439e72b15303af2cdb01571178e7af18fda 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -1095,6 +1095,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1080,6 +1080,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
} }
public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) { public void spawnGolemIfNeeded(ServerLevel world, long time, int requiredCount) {
@@ -18,10 +18,10 @@ index dd74825c04543ae8c0bb1ab5eef6c8a152b621fd..dcf580d852ede8ea01f5d91944a224ec
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
List<Villager> list = world.getEntitiesOfClass(Villager.class, axisalignedbb); 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 diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1f4a19bc5c2c0e39eb4190b159aa95c147ab61bb..5eda0c83dde230af7b90aa7e630bf988f2a25b02 100644 index dae16114d51e21455442ef590d331ca25ec6329f..5a44626d821dcc6565fc7d2260eb2ca6c0c8067c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2832,6 +2832,8 @@ public class PurpurWorldConfig { @@ -2812,6 +2812,8 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheckInterval = 100; public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false; public boolean villagerLobotomizeWaitUntilTradeLocked = false;
public boolean villagerDisplayTradeItem = true; public boolean villagerDisplayTradeItem = true;
@@ -30,7 +30,7 @@ index 1f4a19bc5c2c0e39eb4190b159aa95c147ab61bb..5eda0c83dde230af7b90aa7e630bf988
private void villagerSettings() { private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2866,6 +2868,8 @@ public class PurpurWorldConfig { @@ -2845,6 +2847,8 @@ public class PurpurWorldConfig {
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);

View File

@@ -18,7 +18,7 @@ index a375d40ec6365ba8704ba3ece22dd5b2de9857b5..357a79d72a2de02a019595e457fe432b
// Purpur end // Purpur end
return damageSource.getLocalizedDeathMessage(this.mob); return damageSource.getLocalizedDeathMessage(this.mob);
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
index bf7a9858bc32c9c365b1c6cebc9e6fd4bc878934..e0d13102f18c78915ff64dab78ca157954c44ae0 100644 index aa65f4bf60172a2629daf6e15f7f48d29b250ee0..d95d122601dd47a27e8d82a13b071919c360fe68 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
@@ -30,6 +30,7 @@ public class DamageSource { @@ -30,6 +30,7 @@ public class DamageSource {
@@ -54,10 +54,10 @@ index bf7a9858bc32c9c365b1c6cebc9e6fd4bc878934..e0d13102f18c78915ff64dab78ca1579
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
index 159e6327c8e96da25c8dcbb8276422cc2580cd76..b1fb94380b7d6bd2a3be31a4e8fe95367e948fe2 100644 index da790aac3bd8981f351b7e241015ff42bd0da73b..d143bba490bfb677361ab82c44f0f31a4a2a43d6 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java --- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
@@ -45,12 +45,14 @@ public class DamageSources { @@ -46,12 +46,14 @@ public class DamageSources {
private final DamageSource melting; private final DamageSource melting;
private final DamageSource poison; private final DamageSource poison;
private final DamageSource scissors; // Purpur private final DamageSource scissors; // Purpur
@@ -71,8 +71,8 @@ index 159e6327c8e96da25c8dcbb8276422cc2580cd76..b1fb94380b7d6bd2a3be31a4e8fe9536
+ this.stonecutter = this.source(DamageTypes.MAGIC).stonecutter(); // Purpur + this.stonecutter = this.source(DamageTypes.MAGIC).stonecutter(); // Purpur
// CraftBukkit end // CraftBukkit end
this.inFire = this.source(DamageTypes.IN_FIRE); this.inFire = this.source(DamageTypes.IN_FIRE);
this.lightningBolt = this.source(DamageTypes.LIGHTNING_BOLT); this.campfire = this.source(DamageTypes.CAMPFIRE);
@@ -103,6 +105,9 @@ public class DamageSources { @@ -105,6 +107,9 @@ public class DamageSources {
public DamageSource scissors() { public DamageSource scissors() {
return this.scissors; return this.scissors;
} }
@@ -115,10 +115,10 @@ index 31ae0f466ae522d767907ec5066b26695f327b96..f26383cf896785333dbd6f86348d5a5f
} else if (blockState.is(Blocks.HONEY_BLOCK)) { } else if (blockState.is(Blocks.HONEY_BLOCK)) {
return PathType.STICKY_HONEY; return PathType.STICKY_HONEY;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index b4fba33f2e2d15d35ac3e884026572a696082160..e650b85464ac886b4adb1a8924026d34f805aba6 100644 index 9e5d4e8a70aec8619db68d75ef3447cf39e239b9..f6dfc393cc444a794dca891bf5a73c461d6ae4bc 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1132,7 +1132,7 @@ public class CraftEventFactory { @@ -1133,7 +1133,7 @@ public class CraftEventFactory {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled); return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
} else if (source.getDirectBlock() != null) { } else if (source.getDirectBlock() != null) {
DamageCause cause; DamageCause cause;
@@ -128,7 +128,7 @@ index b4fba33f2e2d15d35ac3e884026572a696082160..e650b85464ac886b4adb1a8924026d34
} else if (source.is(DamageTypes.HOT_FLOOR)) { } else if (source.is(DamageTypes.HOT_FLOOR)) {
cause = DamageCause.HOT_FLOOR; cause = DamageCause.HOT_FLOOR;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 24af99bcc9d64001bbe447e8ece1f0d803727923..88304f65be13a9427acddc5e7d92465545143109 100644 index 08b10246b4cb7374a230bea470d737670dae5edd..8aa2354bee8de0193863628c2d928699949dbc10 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -209,8 +209,10 @@ public class PurpurConfig { @@ -209,8 +209,10 @@ public class PurpurConfig {
@@ -143,10 +143,10 @@ index 24af99bcc9d64001bbe447e8ece1f0d803727923..88304f65be13a9427acddc5e7d924655
public static boolean advancementOnlyBroadcastToAffectedPlayer = false; 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 diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 31497cad3276cc2e9bd5a0e745619eb04fecf25a..37f638b7f1fe63a2b8e44b40a4ef6f6f419684fc 100644 index 5a44626d821dcc6565fc7d2260eb2ca6c0c8067c..b32a0729304e17b8f2c71a7b8945c77698f5ae7d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1085,6 +1085,11 @@ public class PurpurWorldConfig { @@ -1066,6 +1066,11 @@ public class PurpurWorldConfig {
spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud); spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud);
} }

View File

@@ -5,23 +5,24 @@ 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 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 77bbdc15472d656fd40e841a70e34d3d31580819..55ae530fac54236ea5614f8e92c30febc744f179 100644 index 02d59789c09f58045fea302ea6f2ee3856114de3..547330eee0cf46fdd3755dc16b38f2d3c2bbff38 100644
--- a/src/main/java/net/minecraft/world/level/block/MagmaBlock.java --- a/src/main/java/net/minecraft/world/level/block/MagmaBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/MagmaBlock.java +++ b/src/main/java/net/minecraft/world/level/block/MagmaBlock.java
@@ -29,7 +29,7 @@ public class MagmaBlock extends Block { @@ -28,7 +28,8 @@ public class MagmaBlock extends Block {
@Override @Override
public void stepOn(Level world, BlockPos pos, BlockState state, Entity entity) { public void stepOn(Level world, BlockPos pos, BlockState state, Entity entity) {
- if (!entity.isSteppingCarefully() && entity instanceof LivingEntity && !EnchantmentHelper.hasFrostWalker((LivingEntity) entity)) { - if (!entity.isSteppingCarefully() && entity instanceof LivingEntity) {
+ if ((!entity.isSteppingCarefully() || world.purpurConfig.magmaBlockDamageWhenSneaking) && entity instanceof LivingEntity && (world.purpurConfig.magmaBlockDamageWithFrostWalker || !EnchantmentHelper.hasFrostWalker((LivingEntity) entity))) { // Purpur + // && (world.purpurConfig.magmaBlockDamageWithFrostWalker || !EnchantmentHelper.hasFrostWalker((LivingEntity) entity))) { // Purpur // Purpur - TODO: 1-21: check later
+ if ((!entity.isSteppingCarefully() || world.purpurConfig.magmaBlockDamageWhenSneaking) && entity instanceof LivingEntity) { // Purpur // Purpur - TODO: 1-21: check later
entity.hurt(world.damageSources().hotFloor().directBlock(world, pos), 1.0F); // CraftBukkit entity.hurt(world.damageSources().hotFloor().directBlock(world, pos), 1.0F); // CraftBukkit
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 37f638b7f1fe63a2b8e44b40a4ef6f6f419684fc..8e95fce5be2c9ba2893b2ccc60a2fd6ea2927a62 100644 index b32a0729304e17b8f2c71a7b8945c77698f5ae7d..7bf622044a28fa311bf5280ebb9496cc2c2edc18 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1026,6 +1026,13 @@ public class PurpurWorldConfig { @@ -1007,6 +1007,13 @@ public class PurpurWorldConfig {
pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit);
} }

View File

@@ -22,10 +22,10 @@ index 93e8e5107ac047c1f2579b4fe6b0a202edb695f6..f82d275aac7bf3949d3dcc412c7e39e1
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8e95fce5be2c9ba2893b2ccc60a2fd6ea2927a62..59cabf7be670c05af5c5a24080fb65e318f5a843 100644 index 7bf622044a28fa311bf5280ebb9496cc2c2edc18..0fe2b9ca4f8a558233a8284b3cbfa80be5e6df7f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1007,9 +1007,11 @@ public class PurpurWorldConfig { @@ -988,9 +988,11 @@ public class PurpurWorldConfig {
public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnPackedIce = true;
public boolean mobsSpawnOnBlueIce = true; public boolean mobsSpawnOnBlueIce = true;

View File

@@ -5,10 +5,10 @@ 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 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 1aae461eed332fe31c1449c47d0928f655c740da..9eb6ed001bfc578311300977dda6f3f156d07190 100644 index 3f81faffc1a54ab1148c410ef80964d9876e4b77..dfa8bd613c7575338c6bb76234b7cb4ac391a4cd 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/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; @@ -15,6 +15,16 @@ import net.minecraft.world.item.Items;
import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@@ -25,7 +25,7 @@ index 1aae461eed332fe31c1449c47d0928f655c740da..9eb6ed001bfc578311300977dda6f3f1
public class Skeleton extends AbstractSkeleton { public class Skeleton extends AbstractSkeleton {
private static final int TOTAL_CONVERSION_TIME = 300; private static final int TOTAL_CONVERSION_TIME = 300;
@@ -174,4 +184,67 @@ public class Skeleton extends AbstractSkeleton { @@ -175,4 +185,67 @@ public class Skeleton extends AbstractSkeleton {
} }
} }
@@ -94,10 +94,10 @@ index 1aae461eed332fe31c1449c47d0928f655c740da..9eb6ed001bfc578311300977dda6f3f1
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 659d2f3981d901ff8b7daa135aa7e449314a669e..1cdda64daf34c72a65bc382d0d2bb17f92e86bed 100644 index 0fe2b9ca4f8a558233a8284b3cbfa80be5e6df7f..74fb65e2df979c3583c74d6b4db510b9a2ee483b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2515,6 +2515,7 @@ public class PurpurWorldConfig { @@ -2496,6 +2496,7 @@ public class PurpurWorldConfig {
public boolean skeletonTakeDamageFromWater = false; public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false; public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D; public double skeletonHeadVisibilityPercent = 0.5D;
@@ -105,7 +105,7 @@ index 659d2f3981d901ff8b7daa135aa7e449314a669e..1cdda64daf34c72a65bc382d0d2bb17f
private void skeletonSettings() { private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2528,6 +2529,7 @@ public class PurpurWorldConfig { @@ -2509,6 +2510,7 @@ public class PurpurWorldConfig {
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);

View File

@@ -5,10 +5,10 @@ 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 diff --git a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
index 480d093105073edfd3acdd7b079b4ca5aa5fdc6d..6d28f1097caa3e37c2917eb401018ebf48c13a39 100644 index 07223046761cb2186d75de8edc03a91d2e8e8b2f..4e5d497b966a04d42b988d26039cbbcc3da7121c 100644
--- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java --- a/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java +++ b/src/main/java/net/minecraft/world/inventory/EnchantmentMenu.java
@@ -39,6 +39,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent; @@ -45,6 +45,12 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
// CraftBukkit end // CraftBukkit end
@@ -20,8 +20,8 @@ index 480d093105073edfd3acdd7b079b4ca5aa5fdc6d..6d28f1097caa3e37c2917eb401018ebf
+ +
public class EnchantmentMenu extends AbstractContainerMenu { public class EnchantmentMenu extends AbstractContainerMenu {
static final ResourceLocation EMPTY_SLOT_LAPIS_LAZULI = new ResourceLocation("item/empty_slot_lapis_lazuli"); static final ResourceLocation EMPTY_SLOT_LAPIS_LAZULI = ResourceLocation.withDefaultNamespace("item/empty_slot_lapis_lazuli");
@@ -73,6 +79,22 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -79,6 +85,22 @@ public class EnchantmentMenu extends AbstractContainerMenu {
return context.getLocation(); return context.getLocation();
} }
// CraftBukkit end // CraftBukkit end
@@ -44,7 +44,7 @@ index 480d093105073edfd3acdd7b079b4ca5aa5fdc6d..6d28f1097caa3e37c2917eb401018ebf
}; };
this.random = RandomSource.create(); this.random = RandomSource.create();
this.enchantmentSeed = DataSlot.standalone(); this.enchantmentSeed = DataSlot.standalone();
@@ -98,6 +120,17 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -104,6 +126,17 @@ public class EnchantmentMenu extends AbstractContainerMenu {
} }
}); });
@@ -62,7 +62,7 @@ index 480d093105073edfd3acdd7b079b4ca5aa5fdc6d..6d28f1097caa3e37c2917eb401018ebf
int j; int j;
for (j = 0; j < 3; ++j) { for (j = 0; j < 3; ++j) {
@@ -333,6 +366,7 @@ public class EnchantmentMenu extends AbstractContainerMenu { @@ -344,6 +377,7 @@ public class EnchantmentMenu extends AbstractContainerMenu {
public void removed(net.minecraft.world.entity.player.Player player) { public void removed(net.minecraft.world.entity.player.Player player) {
super.removed(player); super.removed(player);
this.access.execute((world, blockposition) -> { this.access.execute((world, blockposition) -> {
@@ -137,10 +137,10 @@ index d47bc2f54c4722a0b8c419b99ee57eb3cb25d750..fdeabdcc781b605d6f3ee18528fd380f
+ // Purpur + // Purpur
} }
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1cdda64daf34c72a65bc382d0d2bb17f92e86bed..43197f65e98c155e40de1e600ab5db747877f0b2 100644 index 74fb65e2df979c3583c74d6b4db510b9a2ee483b..0cf7abfc6d37dcf127cdb28fe81bcd299eda67e1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1552,6 +1552,11 @@ public class PurpurWorldConfig { @@ -1533,6 +1533,11 @@ public class PurpurWorldConfig {
elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp);
} }

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 diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 222436febf0b6ea93b57b8a4c0a98998a9430873..e54be01cb1629616c2952ea99c6f28f09a592773 100644 index 6ba7813b48fe0db81cb895937837bd463f458d62..c1f345fed7c5f95a87e3cc74e8ec200fcc49e777 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1722,7 +1722,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1662,7 +1662,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
do { do {
if (!iterator.hasNext()) { if (!iterator.hasNext()) {
@@ -18,10 +18,10 @@ index 222436febf0b6ea93b57b8a4c0a98998a9430873..e54be01cb1629616c2952ea99c6f28f0
voxelshape1 = (VoxelShape) iterator.next(); voxelshape1 = (VoxelShape) iterator.next();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index cb8f67f0ad3531b110613c0ffb3c0cc23da23529..620f1207fc773f8602b748128557f1c73f0319fb 100644 index 8aa2354bee8de0193863628c2d928699949dbc10..bbb7afbfb84b0d8e45f6e0de61f4f3e8c9315431 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -461,9 +461,11 @@ public class PurpurConfig { @@ -452,9 +452,11 @@ public class PurpurConfig {
public static boolean useUPnP = false; public static boolean useUPnP = false;
public static boolean maxJoinsPerSecond = false; public static boolean maxJoinsPerSecond = false;

View File

@@ -18,10 +18,10 @@ index b6b367492ebe2af3e63381bef935c6077f6ddb27..09f34c30d9a03751ed826b26375ac5ae
@Override @Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 38f161e102c5202c79108ad150ff42af1a75658c..6dc3d5a420005a859560ebb85009183b446a0531 100644 index 0cf7abfc6d37dcf127cdb28fe81bcd299eda67e1..6441a55bda07bacd23918a7cb74cacbfe45688ae 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1066,6 +1066,11 @@ public class PurpurWorldConfig { @@ -1047,6 +1047,11 @@ public class PurpurWorldConfig {
} }
} }