This commit is contained in:
Ben Kerllenevich
2022-06-08 11:50:34 -04:00
parent 3890a6c579
commit 17c72b537c
105 changed files with 941 additions and 967 deletions

View File

@@ -1,7 +1,7 @@
group = org.purpurmc.purpur
version = 1.19-R0.1-SNAPSHOT
paperCommit = a6bc17b8bb2e74d9e3bf91edbcd10ca0bbe76a47
paperCommit = 7a165c9c5dfc68678a03a4676a18914a10cd01f6
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -27,7 +27,7 @@ index 08d597db1a5345a343777a01427655e6bf2c926b..33df0ca406dc8321b76b393f317bbd1c
} else {
user.startUsingItem(hand);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 99f99096c773ddc14f4abe5a17ebe4c88d298c8d..de8d17bc900190b20e56e9002b936ec0ca16bd26 100644
index 93d95018b67a31270c2d8b14d156c3c3c2fe9801..fca524c9ca25a08d5230fb62f658588a0149c7dd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -139,6 +139,17 @@ public class PurpurWorldConfig {

View File

@@ -18,10 +18,10 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time % 192000; // Paper - fix guardian beam
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d54e88162fbfe03de3f607d7fb10c9ed0bf311c4..9d156683ee46eb168048b90dd1819ae3dd87e408 100644
index 47f1fb6851834183a28ef97ccbf6c53746e528a2..1a3f709c8aa455f1ce7e63751074044b85b14d19 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1570,7 +1570,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1526,7 +1526,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = world.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : world.players()) {
@@ -31,19 +31,19 @@ index d54e88162fbfe03de3f607d7fb10c9ed0bf311c4..9d156683ee46eb168048b90dd1819ae3
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 40d5196cbb3567d642925cd7f0d2924884c46347..09800a0c113e1e70ad773e55bd370e7b3c36d463 100644
index 93ac8c5c9594f95a2b9a399f0a4f3f0377ef8753..b1a3615d3b9d27ca7c7d7a84d213ef16a984e3a8 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -202,6 +202,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
private final StructureFeatureManager structureFeatureManager;
@@ -209,6 +209,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
private final StructureManager structureManager;
private final StructureCheck structureCheck;
private final boolean tickTime;
+ private double preciseTime; // Purpur
+ private boolean forceTime; // Purpur
// Paper start - execute chunk tasks mid tick
public long lastMidTickExecuteFailure;
// Paper end - execute chunk tasks mid tick
@@ -566,6 +568,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
public long lastMidTickExecuteFailure; // Paper - execute chunk tasks mid tick
// CraftBukkit start
@@ -580,6 +582,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
@@ -88,7 +88,7 @@ index 40d5196cbb3567d642925cd7f0d2924884c46347..09800a0c113e1e70ad773e55bd370e7b
public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) {
Iterator iterator = this.customSpawners.iterator();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 95667821b8f01ae31c62f0811aed67453b60df4b..f6961d623c5718638c75e2a8775ffcbed65e9bdc 100644
index fca524c9ca25a08d5230fb62f658588a0149c7dd..074864c2181340d2744cbbb9d4066e37f36870c5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -121,6 +121,13 @@ public class PurpurWorldConfig {

View File

@@ -17,10 +17,10 @@ index 3aece8245060dd1ba269c08d226c84247a6f0a83..5cebd7c16b82eea9dbf39c51c671bacb
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 437d2a45f66c2f0f6304365fbc238c24c1571a9f..245239c45cac3340db4e3ab908df91cfec607e3d 100644
index 1cd8358c3d9f96073224846143516097aeb8fd23..e80a13cd7178e056e5fdf770de7f5c03342dc52d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -244,6 +244,16 @@ public class PurpurConfig {
@@ -239,6 +239,16 @@ public class PurpurConfig {
cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Furnace uses lava from underneath
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 888e1f2bc6ea4ddbbcc5466f177233f25b290459..99c207457ec9d1a1b7d9e7becfcc8aae383e93ae 100644
index 4977f3fad3bfc12fd4c5f9fbe8beea2895247c57..800c80398acb007ae71b06d1a887aa159e866eda 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -42,6 +42,7 @@ import net.minecraft.world.level.Level;
@@ -43,6 +43,7 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.AbstractFurnaceBlock;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
@@ -16,9 +16,9 @@ index 888e1f2bc6ea4ddbbcc5466f177233f25b290459..99c207457ec9d1a1b7d9e7becfcc8aae
import net.minecraft.world.phys.Vec3;
// CraftBukkit start
import org.bukkit.craftbukkit.block.CraftBlock;
@@ -324,6 +325,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
ItemStack itemstack = (ItemStack) blockEntity.items.get(1);
@@ -332,6 +333,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
boolean flag2 = !((ItemStack) blockEntity.items.get(0)).isEmpty();
boolean flag3 = !itemstack.isEmpty();
+ // Purpur start
+ boolean usedLavaFromUnderneath = false;
@@ -36,10 +36,10 @@ index 888e1f2bc6ea4ddbbcc5466f177233f25b290459..99c207457ec9d1a1b7d9e7becfcc8aae
+ }
+ // Purpur end
+
if (!blockEntity.isLit() && (itemstack.isEmpty() || ((ItemStack) blockEntity.items.get(0)).isEmpty())) {
if (!blockEntity.isLit() && (!flag3 || !flag2)) {
if (!blockEntity.isLit() && blockEntity.cookingProgress > 0) {
blockEntity.cookingProgress = Mth.clamp(blockEntity.cookingProgress - 2, (int) 0, blockEntity.cookingTotalTime);
@@ -399,6 +416,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
@@ -414,6 +431,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
setChanged(world, pos, state);
}
@@ -48,7 +48,7 @@ index 888e1f2bc6ea4ddbbcc5466f177233f25b290459..99c207457ec9d1a1b7d9e7becfcc8aae
private static boolean canBurn(@Nullable Recipe<?> recipe, NonNullList<ItemStack> slots, int count) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f6961d623c5718638c75e2a8775ffcbed65e9bdc..5e19075f9244ba96f2420273139c520b1c11f613 100644
index 074864c2181340d2744cbbb9d4066e37f36870c5..2f93fec6b2e5f9a924b5e49abd7275e76c354e44 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -401,6 +401,17 @@ public class PurpurWorldConfig {

View File

@@ -7,10 +7,10 @@ This prevents keeping arrows alive indefinitely (such as when the block
the arrow is stuck in gets removed, like a piston head going up/down)
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index c5cbcf8d6b26bbb7712d3a72f8313f600dfc7c11..50b531cdaa26af8e06007552fc18cabddbd5f0de 100644
index 1d75abd1659b37deedff794dcf9ff83028d2b738..46cf2734e9a3eec934f3ad810b30d8de80843b0c 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -321,7 +321,7 @@ public abstract class AbstractArrow extends Projectile {
@@ -322,7 +322,7 @@ public abstract class AbstractArrow extends Projectile {
Vec3 vec3d = this.getDeltaMovement();
this.setDeltaMovement(vec3d.multiply((double) (this.random.nextFloat() * 0.2F), (double) (this.random.nextFloat() * 0.2F), (double) (this.random.nextFloat() * 0.2F)));

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Ability to re-add farmland mechanics from Alpha
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
index f9c363a9148d30b1ecc8f744a7eaa131a9fd1428..c61e8887e697806378686b3b1ffca2b154d1a074 100644
index 4208833252a5b5c74d294dc3435869d71d774e37..a3ff99c461dd862733816d9d1204cf8b347663fe 100644
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
@@ -112,6 +112,14 @@ public class FarmBlock extends Block {
@@ -24,7 +24,7 @@ index f9c363a9148d30b1ecc8f744a7eaa131a9fd1428..c61e8887e697806378686b3b1ffca2b1
return;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5e19075f9244ba96f2420273139c520b1c11f613..4616d5d99e08a9be8ccbee3c67046dc3226b1d7b 100644
index 2f93fec6b2e5f9a924b5e49abd7275e76c354e44..164f9271aab50d23a3bf03877fb5285da3c3a069 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -397,8 +397,10 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add adjustable breeding cooldown to config
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
index 3f57ad6cbf29ebe1ac3781368c4f57efc9640aa4..fe00672e0231fd1e9fdb91c86d3e76bf505ee15f 100644
index 6216513805add7c8f52e1ed6c77e2d26786b3ab5..34e82b97c5b294f0a6423581220403a10264da8b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
@@ -151,7 +151,7 @@ public abstract class Animal extends AgeableMob {
@@ -150,7 +150,7 @@ public abstract class Animal extends AgeableMob {
if (this.isFood(itemstack)) {
int i = this.getAge();
@@ -16,8 +16,8 @@ index 3f57ad6cbf29ebe1ac3781368c4f57efc9640aa4..fe00672e0231fd1e9fdb91c86d3e76bf
+ if (!this.level.isClientSide && i == 0 && this.canFallInLove() && (this.level.purpurConfig.animalBreedingCooldownSeconds <= 0 || !this.level.hasBreedingCooldown(player.getUUID(), this.getClass()))) { // Purpur
this.usePlayerItem(player, hand, itemstack);
this.setInLove(player);
this.gameEvent(GameEvent.MOB_INTERACT, this.eyeBlockPosition());
@@ -240,6 +240,14 @@ public abstract class Animal extends AgeableMob {
return InteractionResult.SUCCESS;
@@ -237,6 +237,14 @@ public abstract class Animal extends AgeableMob {
if (entityplayer == null && other.getLoveCause() != null) {
entityplayer = other.getLoveCause();
}
@@ -33,10 +33,10 @@ index 3f57ad6cbf29ebe1ac3781368c4f57efc9640aa4..fe00672e0231fd1e9fdb91c86d3e76bf
entityageable.setBaby(true);
entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index f0d382fdafdf97a0f5cced19f9a6bfa9e817c889..40e01ed99a129a6a14f9c5cc29f046bd23d198cb 100644
index 0990d2f68e2fec89295f127fef48c7e6f7cd24c0..07ae3e667ca22b6c0434c103c61016e3e67e3d65 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -183,6 +183,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -189,6 +189,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
// Paper end - fix and optimise world upgrading
@@ -86,7 +86,7 @@ index f0d382fdafdf97a0f5cced19f9a6bfa9e817c889..40e01ed99a129a6a14f9c5cc29f046bd
public CraftWorld getWorld() {
return this.world;
}
@@ -276,6 +319,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -273,6 +316,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper
this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
@@ -95,7 +95,7 @@ index f0d382fdafdf97a0f5cced19f9a6bfa9e817c889..40e01ed99a129a6a14f9c5cc29f046bd
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4616d5d99e08a9be8ccbee3c67046dc3226b1d7b..54ae2e855d2572a788d852d17a998311691687a0 100644
index 164f9271aab50d23a3bf03877fb5285da3c3a069..7c203f8b0120d07263c0a96422a69173daebd89e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -109,6 +109,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make entity breeding times configurable
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
index d51ab5e4dc93b805bf51f752542f53b2a97fdb20..dcc5d55a3274de1b2b22eab2ab7bf2c0ca013249 100644
index b3adff55870c673d753f05dee4540bef0d142c7b..bf30980cf41db70e70a0ca4e51d32c331d8a56e7 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java
@@ -119,8 +119,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
@@ -123,8 +123,10 @@ public class VillagerMakeLove extends Behavior<Villager> {
return Optional.empty();
}
// CraftBukkit end
@@ -22,10 +22,10 @@ index d51ab5e4dc93b805bf51f752542f53b2a97fdb20..dcc5d55a3274de1b2b22eab2ab7bf2c0
world.broadcastEntityEvent(entityvillager2, (byte) 12);
return Optional.of(entityvillager2);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java
index fe00672e0231fd1e9fdb91c86d3e76bf505ee15f..5771737891b17956a4964a112099f4313e2e55d4 100644
index 34e82b97c5b294f0a6423581220403a10264da8b..a0c3a27a90e0788b573f0776c25cfc6e0fba5458 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Animal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Animal.java
@@ -40,6 +40,7 @@ public abstract class Animal extends AgeableMob {
@@ -39,6 +39,7 @@ public abstract class Animal extends AgeableMob {
@Nullable
public UUID loveCause;
public ItemStack breedItem; // CraftBukkit - Add breedItem variable
@@ -33,7 +33,7 @@ index fe00672e0231fd1e9fdb91c86d3e76bf505ee15f..5771737891b17956a4964a112099f431
protected Animal(EntityType<? extends Animal> type, Level world) {
super(type, world);
@@ -264,8 +265,10 @@ public abstract class Animal extends AgeableMob {
@@ -261,8 +262,10 @@ public abstract class Animal extends AgeableMob {
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer, this, other, entityageable);
}
@@ -47,10 +47,10 @@ index fe00672e0231fd1e9fdb91c86d3e76bf505ee15f..5771737891b17956a4964a112099f431
other.resetLove();
world.addFreshEntityWithPassengers(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
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 9245baa69aefee786c442e3b46a323a9c7f22eea..3b272c0e3710885fa0a4ef9b39bfa8874a972e0d 100644
index 21bd1f6f24715351d46573964438bcb7304575f5..374a026de1fec53ba3433e528d03ad103fa25f86 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -218,6 +218,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -219,6 +219,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.beeMaxHealth);
}
@@ -63,10 +63,10 @@ index 9245baa69aefee786c442e3b46a323a9c7f22eea..3b272c0e3710885fa0a4ef9b39bfa887
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 81b63da3bca3e3942ed037fad15ad8f883fc0c82..b3df26d3e957f93987d48878a3f320db5e9b229e 100644
index 90ef6c8d5371b62d043320d493d624ae18737f07..c6812166ee708100850561a0573be81af76ecfa5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -152,6 +152,11 @@ public class Cat extends TamableAnimal {
@@ -123,6 +123,11 @@ public class Cat extends TamableAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.catMaxHealth);
}
@@ -79,10 +79,10 @@ index 81b63da3bca3e3942ed037fad15ad8f883fc0c82..b3df26d3e957f93987d48878a3f320db
public ResourceLocation getResourceLocation() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
index ad1b52f93e45e1d42c7b31aefe879a692d782ffc..839cb9ff15132f3461317c5ead7c486a0b6fe5e0 100644
index 96dceb9943c4320e0edfba47cc211d60aa92323b..fe266b94d08b8977451f75ec87c19497ac0ab975 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java
@@ -75,6 +75,11 @@ public class Chicken extends Animal {
@@ -76,6 +76,11 @@ public class Chicken extends Animal {
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(2.0D);
}
}
@@ -111,7 +111,7 @@ index 732c560383da3b8a270139758f29734d73b775be..b063a74327e51b3cd27427426b92ef68
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 4b42d8047f70d23eed09b6210b447ae2a272af0a..8a73267128c7e165651b97cd46f65f9cd373a1ea 100644
index f03bd9a9129f0d45d36ef56a726d513a8cc088e5..aa18947d3822a1093985799e87ad6c2b28f51eb1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -183,6 +183,11 @@ public class Fox extends Animal {
@@ -126,7 +126,7 @@ index 4b42d8047f70d23eed09b6210b447ae2a272af0a..8a73267128c7e165651b97cd46f65f9c
// Purpur end
@Override
@@ -967,8 +972,10 @@ public class Fox extends Animal {
@@ -969,8 +974,10 @@ public class Fox extends Animal {
CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer2, this.animal, this.partner, entityfox);
}
@@ -140,7 +140,7 @@ index 4b42d8047f70d23eed09b6210b447ae2a272af0a..8a73267128c7e165651b97cd46f65f9c
this.partner.resetLove();
worldserver.addFreshEntityWithPassengers(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
index d4237fce253b2414337344b327250c1db2b19dfa..d7c68775fc39222be66bc82e0e7a1b0ae3238f7a 100644
index 1bf3f1cf537c75aa32d1531ee77a4d08ad4b69bf..6cd1a173857b9815073d4bb5020ebe6582844418 100644
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
@@ -84,6 +84,11 @@ public class MushroomCow extends Cow implements Shearable {
@@ -156,7 +156,7 @@ index d4237fce253b2414337344b327250c1db2b19dfa..d7c68775fc39222be66bc82e0e7a1b0a
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
index a90c3e0c9f0064690bd17e5b132fbcfb360fa6b2..0719a17e886b6525d7ed091f1759eed12a945034 100644
index 3697238a818aac364d62f779fe6b622494a9f658..25f01fe6bda429a13188e62aee68d242c9d5404b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java
@@ -88,6 +88,11 @@ public class Ocelot extends Animal {
@@ -172,7 +172,7 @@ index a90c3e0c9f0064690bd17e5b132fbcfb360fa6b2..0719a17e886b6525d7ed091f1759eed1
public boolean isTrusting() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index bcbf20728b4c9a181771984c54af742f07fd9855..83fdc33da473c8ddf69bb20125bf38f6801f8fce 100644
index 47b03fd6a45b03f438fc9e4025dd2d7e70c273b6..260fb72d48e2e2c6d27ab21b8a5049235d51555c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -137,6 +137,11 @@ public class Panda extends Animal {
@@ -188,10 +188,10 @@ index bcbf20728b4c9a181771984c54af742f07fd9855..83fdc33da473c8ddf69bb20125bf38f6
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index 91b8117238e76c00d758180df5cfd70ae76ace22..1539668c100352f7e8980f3b9db02b6fb979299b 100644
index d8dce6968861cb03f2b1b7631fc54f3c91ebdd9f..b15fd1a01f273cf1d3dc2965a9d3584f75579e2d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -189,6 +189,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -190,6 +190,11 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.parrotMaxHealth);
}
@@ -204,7 +204,7 @@ index 91b8117238e76c00d758180df5cfd70ae76ace22..1539668c100352f7e8980f3b9db02b6f
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java
index 7787d30ad7bb9aa6041c369a368deb382c9554c2..93f670fe1512ec18272c2e4d71735bcbdbc87eda 100644
index d4348bd3877813295d01d0171fee2d59981734b9..179b4767283090467d5f415ce1cce44007f1e937 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Pig.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java
@@ -84,6 +84,11 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
@@ -220,7 +220,7 @@ index 7787d30ad7bb9aa6041c369a368deb382c9554c2..93f670fe1512ec18272c2e4d71735bcb
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
index b370a0c392f69a1b42a4908ae012ee4c6bf6984d..0f4a0e50e701c3fb75536e0b6d7821046e7f8f66 100644
index e68782ac48fd9ee11080dfd76c88d9a4768ae769..c0c7edfc243378bce9bb44d29c58d948b95a9310 100644
--- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
+++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java
@@ -118,6 +118,11 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -236,10 +236,10 @@ index b370a0c392f69a1b42a4908ae012ee4c6bf6984d..0f4a0e50e701c3fb75536e0b6d782104
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index 5b30a1d34d7efb1a5c86ae187027313fec1fd700..8d44949c54f9cba0848b4f7b82c573325c134d9d 100644
index 799ef179e1e02ec0a23a785cf2b31d5390ee29c8..e990e6f416854197bd5a4d31e4c7acc3fb69b390 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -141,6 +141,11 @@ public class Rabbit extends Animal {
@@ -142,6 +142,11 @@ public class Rabbit extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.rabbitMaxHealth);
}
@@ -252,7 +252,7 @@ index 5b30a1d34d7efb1a5c86ae187027313fec1fd700..8d44949c54f9cba0848b4f7b82c57332
// CraftBukkit start - code from constructor
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 9d6765e2bd6bfdd39728bdd14cabbe4bf33d96ac..86f398fc79dcc5dd24a61483d292e228dd6ab83b 100644
index 2368c807e9c7146c186654a390e23af99addb804..dfd8d795abbe3912658c9d847424424e83006408 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
@@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable {
@@ -268,10 +268,10 @@ index 9d6765e2bd6bfdd39728bdd14cabbe4bf33d96ac..86f398fc79dcc5dd24a61483d292e228
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
index 54ad776603158f101c0199395f70dadb80301a8d..e3bf2c2bc16bc03c17d90f2ce1620c6b895e9bf7 100644
index 94d0a8d94a210f62e4102f091c886bb7c48f8834..539777cb24e7427542ac43665585d3acea9f888c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
@@ -104,6 +104,11 @@ public class Turtle extends Animal {
@@ -102,6 +102,11 @@ public class Turtle extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.turtleMaxHealth);
}
@@ -284,7 +284,7 @@ index 54ad776603158f101c0199395f70dadb80301a8d..e3bf2c2bc16bc03c17d90f2ce1620c6b
public void setHomePos(BlockPos pos) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 6312284ee33eef280a51392d7e0ba8d2ae3c9d5e..702a4b674013a455d179d88d3931f6c216c1ca89 100644
index 01c8508571a88c22359cbf36341338c5497e4d45..28e35304e76b26af734fcfbccef8f43143345576 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -127,6 +127,11 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -300,10 +300,10 @@ index 6312284ee33eef280a51392d7e0ba8d2ae3c9d5e..702a4b674013a455d179d88d3931f6c2
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index c194c215ec742dd5a527af98ef7d8a707193921a..0f38b65d490cde61cfc256719f91cc0a955b4080 100644
index 53aef0ac481c3e79dfb04c33cb17bbdd89b2438b..cf5b71dd336341556f5b9effa531bc8d42e5880d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -124,6 +124,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
@@ -122,6 +122,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.axolotlMaxHealth);
}
@@ -316,10 +316,10 @@ index c194c215ec742dd5a527af98ef7d8a707193921a..0f38b65d490cde61cfc256719f91cc0a
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index c5a86e91465e725fd11d19fd668c1ba6bbe981ac..a697a094679c61e357177bc22e628c347b39a4d9 100644
index 49b289fce943719a63df454fefab725a2b3a7de5..6d3a39c0f65e19cff3c13355a53995df34ee136f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -89,6 +89,11 @@ public class Goat extends Animal {
@@ -109,6 +109,11 @@ public class Goat extends Animal {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.goatMaxHealth);
}
@@ -348,10 +348,10 @@ index f0da5d107ddb2987ccc89f880ddba5e79fadf0c5..113b6d80885717d59c8fefab07afe687
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
index 9f7203608e15fdce1bfbaf419838768763d61378..2c5cb1b759a0b6e0233345da5a968288ec338837 100644
index 559378175e0de56b4b4eb3b8ad4cf8a4980895a9..3144c7e7b018a1e8a907691b798e656500f57430 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
@@ -59,6 +59,11 @@ public class Horse extends AbstractHorse {
@@ -60,6 +60,11 @@ public class Horse extends AbstractHorse {
public double generateRandomSpeed() {
return generateRandomSpeed(this.level.purpurConfig.horseMovementSpeedMin, this.level.purpurConfig.horseMovementSpeedMax);
}
@@ -364,7 +364,7 @@ index 9f7203608e15fdce1bfbaf419838768763d61378..2c5cb1b759a0b6e0233345da5a968288
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 93c6e0d538dfa796b5a5b4f57d3f76fa2eef77ab..5553cffdbaf308c543d0afed467acd3e6a0f8956 100644
index 5b15b9451007a0ffcf442a33de81ff5d8b8649a5..24b80622da9ddebb8544f25e8c01047c41a5fd86 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -131,6 +131,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -396,7 +396,7 @@ index 1ba32a3ba56974425762026026d1e5ba21540b3b..88e61572f5dd8d05fadab131046f74bd
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 3c3be1a40f04def3f2ffb6567fa5be0581b5608d..e7910b0bbb061f524909757dab4c7e59c0dc40c9 100644
index c74f6d3384d3d18a5c591c87fc2f0850443b5afc..063602f2ccced778194b268d3d7dd00bdffd73ff 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -50,6 +50,11 @@ public class SkeletonHorse extends AbstractHorse {
@@ -428,10 +428,10 @@ index 89f3c480d2e8cc28bb26fcd65a5a51a652e7365a..bdb71283d402656a3da6dd699d4cd6a5
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 48b72eb4051d612648a1978b38299c0c37a3a289..b6d9ba8dd5694952ca2eba54726ac5e587175250 100644
index cb5981c2233dcf880fef660fe2c3f39408e8984f..5f6235ea148d11c9e875e0d6646ceb84d4fa8d5b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -47,6 +47,11 @@ public class ZombieHorse extends AbstractHorse {
@@ -48,6 +48,11 @@ public class ZombieHorse extends AbstractHorse {
public double generateRandomSpeed() {
return generateRandomSpeed(this.level.purpurConfig.zombieHorseMovementSpeedMin, this.level.purpurConfig.zombieHorseMovementSpeedMax);
}
@@ -444,7 +444,7 @@ index 48b72eb4051d612648a1978b38299c0c37a3a289..b6d9ba8dd5694952ca2eba54726ac5e5
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
index e3f7816bb261c7772d86bd117ce30a53e77f44d1..0046bc4f7a1fb7bb40da955570d56c7cb87aa687 100644
index c252a8f04fefbf50a8065026ace02e532ff6e307..eb2083d67f9486a24d2f0aa4bf1f5ba8a00e23a3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -116,6 +116,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@@ -458,9 +458,9 @@ index e3f7816bb261c7772d86bd117ce30a53e77f44d1..0046bc4f7a1fb7bb40da955570d56c7c
+ }
// Purpur end
public static boolean checkStriderSpawnRules(EntityType<Strider> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
public static boolean checkStriderSpawnRules(EntityType<Strider> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 65e6fbd8077777c63908f9faf6e387d28c86e808..5f879e65f3a6c0fea3e962716b61651fd54bcf6d 100644
index 958b32de685653e75a9495cb0108e6982cc4cc97..748718c41d26dd49a69142ddc1f9cbe355e120ce 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -87,6 +87,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -476,10 +476,10 @@ index 65e6fbd8077777c63908f9faf6e387d28c86e808..5f879e65f3a6c0fea3e962716b61651f
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3db068eca 100644
index 7c203f8b0120d07263c0a96422a69173daebd89e..f2015098f6470a7f8ab37174138b84dc288c9ad8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -486,10 +486,12 @@ public class PurpurWorldConfig {
@@ -481,10 +481,12 @@ public class PurpurWorldConfig {
public boolean axolotlRidable = false;
public boolean axolotlControllable = true;
public double axolotlMaxHealth = 14.0D;
@@ -492,7 +492,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean batRidable = false;
@@ -522,6 +524,7 @@ public class PurpurWorldConfig {
@@ -517,6 +519,7 @@ public class PurpurWorldConfig {
public boolean beeControllable = true;
public double beeMaxY = 320D;
public double beeMaxHealth = 10.0D;
@@ -500,7 +500,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -533,6 +536,7 @@ public class PurpurWorldConfig {
@@ -528,6 +531,7 @@ public class PurpurWorldConfig {
set("mobs.bee.attributes.max_health", oldValue);
}
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
@@ -508,7 +508,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean blazeRidable = false;
@@ -560,6 +564,7 @@ public class PurpurWorldConfig {
@@ -555,6 +559,7 @@ public class PurpurWorldConfig {
public int catSpawnDelay = 1200;
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
@@ -516,7 +516,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -573,6 +578,7 @@ public class PurpurWorldConfig {
@@ -568,6 +573,7 @@ public class PurpurWorldConfig {
catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay);
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
@@ -524,7 +524,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean caveSpiderRidable = false;
@@ -596,6 +602,7 @@ public class PurpurWorldConfig {
@@ -591,6 +597,7 @@ public class PurpurWorldConfig {
public boolean chickenControllable = true;
public double chickenMaxHealth = 4.0D;
public boolean chickenRetaliate = false;
@@ -532,7 +532,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void chickenSettings() {
chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable);
chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater);
@@ -607,6 +614,7 @@ public class PurpurWorldConfig {
@@ -602,6 +609,7 @@ public class PurpurWorldConfig {
}
chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth);
chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate);
@@ -540,7 +540,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean codRidable = false;
@@ -628,6 +636,7 @@ public class PurpurWorldConfig {
@@ -623,6 +631,7 @@ public class PurpurWorldConfig {
public boolean cowControllable = true;
public double cowMaxHealth = 10.0D;
public int cowFeedMushrooms = 0;
@@ -548,7 +548,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void cowSettings() {
cowRidable = getBoolean("mobs.cow.ridable", cowRidable);
cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater);
@@ -639,6 +648,7 @@ public class PurpurWorldConfig {
@@ -634,6 +643,7 @@ public class PurpurWorldConfig {
}
cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth);
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
@@ -556,7 +556,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean creeperRidable = false;
@@ -690,6 +700,7 @@ public class PurpurWorldConfig {
@@ -685,6 +695,7 @@ public class PurpurWorldConfig {
public double donkeyJumpStrengthMax = 0.5D;
public double donkeyMovementSpeedMin = 0.175D;
public double donkeyMovementSpeedMax = 0.175D;
@@ -564,7 +564,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void donkeySettings() {
donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater);
if (PurpurConfig.version < 10) {
@@ -705,6 +716,7 @@ public class PurpurWorldConfig {
@@ -700,6 +711,7 @@ public class PurpurWorldConfig {
donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax);
donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin);
donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax);
@@ -572,7 +572,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean drownedRidable = false;
@@ -824,6 +836,7 @@ public class PurpurWorldConfig {
@@ -819,6 +831,7 @@ public class PurpurWorldConfig {
public boolean foxControllable = true;
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
@@ -580,7 +580,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -835,6 +848,7 @@ public class PurpurWorldConfig {
@@ -830,6 +843,7 @@ public class PurpurWorldConfig {
}
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
@@ -588,7 +588,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean ghastRidable = false;
@@ -902,11 +916,13 @@ public class PurpurWorldConfig {
@@ -897,11 +911,13 @@ public class PurpurWorldConfig {
public boolean goatRidableInWater = false;
public boolean goatControllable = true;
public double goatMaxHealth = 10.0D;
@@ -602,7 +602,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean guardianRidable = false;
@@ -927,6 +943,7 @@ public class PurpurWorldConfig {
@@ -922,6 +938,7 @@ public class PurpurWorldConfig {
public boolean hoglinRidableInWater = false;
public boolean hoglinControllable = true;
public double hoglinMaxHealth = 40.0D;
@@ -610,7 +610,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void hoglinSettings() {
hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable);
hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater);
@@ -937,6 +954,7 @@ public class PurpurWorldConfig {
@@ -932,6 +949,7 @@ public class PurpurWorldConfig {
set("mobs.hoglin.attributes.max_health", oldValue);
}
hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth);
@@ -618,7 +618,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean horseRidableInWater = false;
@@ -946,6 +964,7 @@ public class PurpurWorldConfig {
@@ -941,6 +959,7 @@ public class PurpurWorldConfig {
public double horseJumpStrengthMax = 1.0D;
public double horseMovementSpeedMin = 0.1125D;
public double horseMovementSpeedMax = 0.3375D;
@@ -626,7 +626,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void horseSettings() {
horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater);
if (PurpurConfig.version < 10) {
@@ -961,6 +980,7 @@ public class PurpurWorldConfig {
@@ -956,6 +975,7 @@ public class PurpurWorldConfig {
horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax);
horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin);
horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax);
@@ -634,7 +634,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean huskRidable = false;
@@ -1038,6 +1058,7 @@ public class PurpurWorldConfig {
@@ -1033,6 +1053,7 @@ public class PurpurWorldConfig {
public double llamaJumpStrengthMax = 0.5D;
public double llamaMovementSpeedMin = 0.175D;
public double llamaMovementSpeedMax = 0.175D;
@@ -642,7 +642,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1055,6 +1076,7 @@ public class PurpurWorldConfig {
@@ -1050,6 +1071,7 @@ public class PurpurWorldConfig {
llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax);
llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin);
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
@@ -650,7 +650,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean magmaCubeRidable = false;
@@ -1083,6 +1105,7 @@ public class PurpurWorldConfig {
@@ -1078,6 +1100,7 @@ public class PurpurWorldConfig {
public boolean mooshroomRidableInWater = false;
public boolean mooshroomControllable = true;
public double mooshroomMaxHealth = 10.0D;
@@ -658,7 +658,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void mooshroomSettings() {
mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable);
mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater);
@@ -1093,6 +1116,7 @@ public class PurpurWorldConfig {
@@ -1088,6 +1111,7 @@ public class PurpurWorldConfig {
set("mobs.mooshroom.attributes.max_health", oldValue);
}
mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth);
@@ -666,7 +666,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean muleRidableInWater = false;
@@ -1102,6 +1126,7 @@ public class PurpurWorldConfig {
@@ -1097,6 +1121,7 @@ public class PurpurWorldConfig {
public double muleJumpStrengthMax = 0.5D;
public double muleMovementSpeedMin = 0.175D;
public double muleMovementSpeedMax = 0.175D;
@@ -674,7 +674,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void muleSettings() {
muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater);
if (PurpurConfig.version < 10) {
@@ -1117,12 +1142,14 @@ public class PurpurWorldConfig {
@@ -1112,12 +1137,14 @@ public class PurpurWorldConfig {
muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax);
muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin);
muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax);
@@ -689,7 +689,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -1133,12 +1160,14 @@ public class PurpurWorldConfig {
@@ -1128,12 +1155,14 @@ public class PurpurWorldConfig {
set("mobs.ocelot.attributes.max_health", oldValue);
}
ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth);
@@ -704,7 +704,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void pandaSettings() {
pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable);
pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater);
@@ -1149,6 +1178,7 @@ public class PurpurWorldConfig {
@@ -1144,6 +1173,7 @@ public class PurpurWorldConfig {
set("mobs.panda.attributes.max_health", oldValue);
}
pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth);
@@ -712,7 +712,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean parrotRidable = false;
@@ -1244,6 +1274,7 @@ public class PurpurWorldConfig {
@@ -1239,6 +1269,7 @@ public class PurpurWorldConfig {
public boolean pigControllable = true;
public double pigMaxHealth = 10.0D;
public boolean pigGiveSaddleBack = false;
@@ -720,7 +720,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void pigSettings() {
pigRidable = getBoolean("mobs.pig.ridable", pigRidable);
pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater);
@@ -1255,6 +1286,7 @@ public class PurpurWorldConfig {
@@ -1250,6 +1281,7 @@ public class PurpurWorldConfig {
}
pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth);
pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack);
@@ -728,7 +728,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean piglinRidable = false;
@@ -1311,6 +1343,7 @@ public class PurpurWorldConfig {
@@ -1306,6 +1338,7 @@ public class PurpurWorldConfig {
public double polarBearMaxHealth = 30.0D;
public String polarBearBreedableItemString = "";
public Item polarBearBreedableItem = null;
@@ -736,7 +736,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void polarBearSettings() {
polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable);
polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater);
@@ -1324,6 +1357,7 @@ public class PurpurWorldConfig {
@@ -1319,6 +1352,7 @@ public class PurpurWorldConfig {
polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString);
Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString));
if (item != Items.AIR) polarBearBreedableItem = item;
@@ -744,7 +744,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean pufferfishRidable = false;
@@ -1346,6 +1380,7 @@ public class PurpurWorldConfig {
@@ -1341,6 +1375,7 @@ public class PurpurWorldConfig {
public double rabbitMaxHealth = 3.0D;
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
@@ -752,7 +752,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1358,6 +1393,7 @@ public class PurpurWorldConfig {
@@ -1353,6 +1388,7 @@ public class PurpurWorldConfig {
rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth);
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
@@ -760,7 +760,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean ravagerRidable = false;
@@ -1394,6 +1430,7 @@ public class PurpurWorldConfig {
@@ -1389,6 +1425,7 @@ public class PurpurWorldConfig {
public boolean sheepRidableInWater = false;
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
@@ -768,7 +768,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1404,6 +1441,7 @@ public class PurpurWorldConfig {
@@ -1399,6 +1436,7 @@ public class PurpurWorldConfig {
set("mobs.sheep.attributes.max_health", oldValue);
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
@@ -776,7 +776,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean shulkerRidable = false;
@@ -1579,6 +1617,7 @@ public class PurpurWorldConfig {
@@ -1574,6 +1612,7 @@ public class PurpurWorldConfig {
public boolean striderRidableInWater = false;
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
@@ -784,7 +784,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1589,6 +1628,7 @@ public class PurpurWorldConfig {
@@ -1584,6 +1623,7 @@ public class PurpurWorldConfig {
set("mobs.strider.attributes.max_health", oldValue);
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
@@ -792,7 +792,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean traderLlamaRidable = false;
@@ -1600,6 +1640,7 @@ public class PurpurWorldConfig {
@@ -1595,6 +1635,7 @@ public class PurpurWorldConfig {
public double traderLlamaJumpStrengthMax = 0.5D;
public double traderLlamaMovementSpeedMin = 0.175D;
public double traderLlamaMovementSpeedMax = 0.175D;
@@ -800,7 +800,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void traderLlamaSettings() {
traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable);
traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater);
@@ -1617,6 +1658,7 @@ public class PurpurWorldConfig {
@@ -1612,6 +1653,7 @@ public class PurpurWorldConfig {
traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax);
traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin);
traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax);
@@ -808,7 +808,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean tropicalFishRidable = false;
@@ -1637,6 +1679,7 @@ public class PurpurWorldConfig {
@@ -1632,6 +1674,7 @@ public class PurpurWorldConfig {
public boolean turtleRidableInWater = false;
public boolean turtleControllable = true;
public double turtleMaxHealth = 30.0D;
@@ -816,7 +816,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void turtleSettings() {
turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable);
turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater);
@@ -1647,6 +1690,7 @@ public class PurpurWorldConfig {
@@ -1642,6 +1685,7 @@ public class PurpurWorldConfig {
set("mobs.turtle.attributes.max_health", oldValue);
}
turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth);
@@ -824,23 +824,23 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
}
public boolean vexRidable = false;
@@ -1678,6 +1722,7 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@@ -1671,6 +1715,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
+ public int villagerBreedingTicks = 6000;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1695,6 +1740,7 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
@@ -1686,6 +1731,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
+ villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
}
public boolean vindicatorRidable = false;
@@ -1797,6 +1843,7 @@ public class PurpurWorldConfig {
@@ -1788,6 +1834,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -848,7 +848,7 @@ index 54ae2e855d2572a788d852d17a998311691687a0..662167abae0bfd964fb08741b4660ba3
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater);
@@ -1807,6 +1854,7 @@ public class PurpurWorldConfig {
@@ -1798,6 +1845,7 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Apply display names from item forms of entities to entities
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index dc1630a1a769f848059f576c3d1220a216b5465c..50370dc8697569a4e5cf8ec3714d227a59357d64 100644
index 9b71425f2c321d3130a409a0a5b47ac9c0c4bae6..29939e851e38fcd494c7556760191e0100bc2e07 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -596,7 +596,13 @@ public class ArmorStand extends LivingEntity {
@@ -594,7 +594,13 @@ public class ArmorStand extends LivingEntity {
}
private void brokenByPlayer(DamageSource damageSource) {
@@ -25,10 +25,10 @@ index dc1630a1a769f848059f576c3d1220a216b5465c..50370dc8697569a4e5cf8ec3714d227a
}
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
index f134a2e68d50fba021b19fac4c75fb35d0e252c6..37133b573d41f1ce67cf1fe6ae7429c52b9bbd0a 100644
index d2a77b4ca343d19e1c70afe3f3906a9bd53d0eec..2a3ec299283c2cc039877eade6e2ddee8f3812ea 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
@@ -265,7 +265,13 @@ public class ItemFrame extends HangingEntity {
@@ -267,7 +267,13 @@ public class ItemFrame extends HangingEntity {
}
if (alwaysDrop) {
@@ -44,10 +44,10 @@ index f134a2e68d50fba021b19fac4c75fb35d0e252c6..37133b573d41f1ce67cf1fe6ae7429c5
if (!itemstack.isEmpty()) {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/Painting.java b/src/main/java/net/minecraft/world/entity/decoration/Painting.java
index 359f6cf63319ad9f125cdea848852def8a1ec1c8..b5ff43e866c3c43085e91b38c31c4845682e7555 100644
index 18697701ca6406b2a74f190b22d5b276359547d0..ee72748a8c07587c95bdce8f982fcdd73e8fd8f4 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/Painting.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/Painting.java
@@ -102,7 +102,13 @@ public class Painting extends HangingEntity {
@@ -143,7 +143,13 @@ public class Painting extends HangingEntity {
}
}
@@ -63,26 +63,26 @@ index 359f6cf63319ad9f125cdea848852def8a1ec1c8..b5ff43e866c3c43085e91b38c31c4845
}
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
index e4febdebc760f9babd77c55e87acccdc1625f0a5..04f9ef39aa4c27200c4c55c50f6eabc0f420cf80 100644
index fabc444f819e7ecf9a1e7b156276e1ec63b53a08..72eecae88812c0b55df07e7019ae79cd81dbd2cf 100644
--- a/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
+++ b/src/main/java/net/minecraft/world/entity/vehicle/Boat.java
@@ -207,7 +207,13 @@ public class Boat extends Entity {
}
// CraftBukkit end
if (!flag && this.level.getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
- this.spawnAtLocation((ItemLike) this.getDropItem());
+ // Purpur start
+ final ItemStack boat = new ItemStack(this.getDropItem());
+ if (this.level.purpurConfig.persistentDroppableEntityDisplayNames && this.hasCustomName()) {
+ boat.setHoverName(this.getCustomName());
+ }
+ this.spawnAtLocation(boat);
+ // Purpur end
}
@@ -220,7 +220,13 @@ public class Boat extends Entity {
}
this.discard();
protected void destroy(DamageSource source) {
- this.spawnAtLocation((ItemLike) this.getDropItem());
+ // Purpur start
+ final ItemStack boat = new ItemStack(this.getDropItem());
+ if (this.level.purpurConfig.persistentDroppableEntityDisplayNames && this.hasCustomName()) {
+ boat.setHoverName(this.getCustomName());
+ }
+ this.spawnAtLocation(boat);
+ // Purpur end
}
@Override
diff --git a/src/main/java/net/minecraft/world/item/ArmorStandItem.java b/src/main/java/net/minecraft/world/item/ArmorStandItem.java
index 3344e3f8ed0fe56217aae7ad9ed32ed4cc19bd07..623627e411ec4ca8168748bfa42e432133612309 100644
index af81ba310dbd7fdbdccdd0cc74b7c085ad54027f..3e529ea7548a2a6617f70a3c3ad2d8f482c1b5e5 100644
--- a/src/main/java/net/minecraft/world/item/ArmorStandItem.java
+++ b/src/main/java/net/minecraft/world/item/ArmorStandItem.java
@@ -60,6 +60,14 @@ public class ArmorStandItem extends Item {
@@ -99,12 +99,12 @@ index 3344e3f8ed0fe56217aae7ad9ed32ed4cc19bd07..623627e411ec4ca8168748bfa42e4321
+ // Purpur end
worldserver.addFreshEntityWithPassengers(entityarmorstand);
world.playSound((Player) null, entityarmorstand.getX(), entityarmorstand.getY(), entityarmorstand.getZ(), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F);
world.gameEvent(context.getPlayer(), GameEvent.ENTITY_PLACE, (Entity) entityarmorstand);
entityarmorstand.gameEvent(GameEvent.ENTITY_PLACE, context.getPlayer());
diff --git a/src/main/java/net/minecraft/world/item/BoatItem.java b/src/main/java/net/minecraft/world/item/BoatItem.java
index 8c590da15b2dbca867efaaadcc3db3bb8309d444..49fe3a66dd3660b94d450dfd408de13a31f5e94d 100644
index 447e16f06c1686c2a2c6c12c856bdb937a5d050f..c923ca8c405e415999148c0148d2d8238097692d 100644
--- a/src/main/java/net/minecraft/world/item/BoatItem.java
+++ b/src/main/java/net/minecraft/world/item/BoatItem.java
@@ -67,6 +67,11 @@ public class BoatItem extends Item {
@@ -69,6 +69,11 @@ public class BoatItem extends Item {
entityboat.setType(this.type);
entityboat.setYRot(user.getYRot());
@@ -117,10 +117,10 @@ index 8c590da15b2dbca867efaaadcc3db3bb8309d444..49fe3a66dd3660b94d450dfd408de13a
return InteractionResultHolder.fail(itemstack);
} else {
diff --git a/src/main/java/net/minecraft/world/item/HangingEntityItem.java b/src/main/java/net/minecraft/world/item/HangingEntityItem.java
index 0284201b0bb0f5c9a4a2393cf0d83e8e21262df3..1f46a2be362ed5f60a7ca75916fe7bd491e90db7 100644
index 4c5671cd4c26c23e61b2196577c554f504a03c55..678e0cb7e5b704ce01eda96b2d74694d0e0b7614 100644
--- a/src/main/java/net/minecraft/world/item/HangingEntityItem.java
+++ b/src/main/java/net/minecraft/world/item/HangingEntityItem.java
@@ -40,7 +40,7 @@ public class HangingEntityItem extends Item {
@@ -41,7 +41,7 @@ public class HangingEntityItem extends Item {
return InteractionResult.FAIL;
} else {
Level world = context.getLevel();
@@ -128,8 +128,8 @@ index 0284201b0bb0f5c9a4a2393cf0d83e8e21262df3..1f46a2be362ed5f60a7ca75916fe7bd4
+ Entity object; // Purpur
if (this.type == EntityType.PAINTING) {
object = new Painting(world, blockposition1, enumdirection);
@@ -58,6 +58,11 @@ public class HangingEntityItem extends Item {
Optional<Painting> optional = Painting.create(world, blockposition1, enumdirection);
@@ -65,6 +65,11 @@ public class HangingEntityItem extends Item {
if (nbttagcompound != null) {
EntityType.updateCustomEntityTag(world, entityhuman, (Entity) object, nbttagcompound);
@@ -142,7 +142,7 @@ index 0284201b0bb0f5c9a4a2393cf0d83e8e21262df3..1f46a2be362ed5f60a7ca75916fe7bd4
if (((HangingEntity) object).survives()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 662167abae0bfd964fb08741b4660ba3db068eca..bb21296b581ba3674425d32665d8a1f30063e177 100644
index f2015098f6470a7f8ab37174138b84dc288c9ad8..2f76cb4f1755393fa3c5fab3b5094f38f23e6ce5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -96,8 +96,10 @@ public class PurpurWorldConfig {

View File

@@ -17,7 +17,7 @@ index 623f78c078fb3aa2665d7e8a37672438227bce6b..500c69e555c7247e20ef8cc59d834155
((Mob) newEntityLiving).setPersistenceRequired();
// Paper end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f0ec5498b5a814f644cb105dc3e6ec927d0dffe4..1dfd19712d883935dc59123d1b2468ed42453152 100644
index 2f76cb4f1755393fa3c5fab3b5094f38f23e6ce5..99578dba4d30263024eedef3084e46bb7c08c465 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -97,9 +97,11 @@ public class PurpurWorldConfig {

View File

@@ -8,10 +8,10 @@ This should help to reduce the amount of dirt, gravel, grass, and etc.
that Endermen like to randomly place all over the world.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 7b41dc359ae3ba49511717172619d2f7b58f02bf..018d94c3540bf6241d57fe915b5037978601dc2d 100644
index d058bafa0b9dff551d5f26f18e1652df250a8de4..2bff3ace8ea2bd2ee3ec6025c41208e283dee266 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -473,7 +473,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -471,7 +471,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean requiresCustomPersistence() {
@@ -21,10 +21,10 @@ index 7b41dc359ae3ba49511717172619d2f7b58f02bf..018d94c3540bf6241d57fe915b503797
private static class EndermanFreezeWhenLookedAt extends Goal {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b087f61d16656df5050691ee194d94063e0de054..c5051a9d495853c6abe025c34f6a08f0a55b110c 100644
index 99578dba4d30263024eedef3084e46bb7c08c465..119da5f019b83d6c725003bba08842363b6d4115 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -792,6 +792,7 @@ public class PurpurWorldConfig {
@@ -787,6 +787,7 @@ public class PurpurWorldConfig {
public boolean endermanControllable = true;
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
@@ -32,7 +32,7 @@ index b087f61d16656df5050691ee194d94063e0de054..c5051a9d495853c6abe025c34f6a08f0
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -803,6 +804,7 @@ public class PurpurWorldConfig {
@@ -798,6 +799,7 @@ public class PurpurWorldConfig {
}
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);

View File

@@ -18,7 +18,7 @@ index ed2f039c4042861bcfa2e41d8281eefd37daa9fa..d5d84893c77b4e60a19032d765d76bfd
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b2c3bc12d5d0f4342a684bc14d5b00bcd309716d..cafa9168b688ba141b96ba0a243048b5a00841cd 100644
index 119da5f019b83d6c725003bba08842363b6d4115..7ccfccaaa3a4105751cdccdefa0784e7657bb503 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -315,6 +315,11 @@ public class PurpurWorldConfig {

View File

@@ -5,20 +5,20 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 8f53dd70d815493148709fbdff29a85924d12d00..079bfd97262cec9084d3491b3dd68f1506274f43 100644
index 7dd8fdb921e8ad0a2d21f67241ed7c07614347a0..034aa7c98397bd9e4fd1e615e3cdad7e3473eb70 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1226,7 +1226,7 @@ public abstract class Mob extends LivingEntity {
@Nullable
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE));
- if (this.random.nextFloat() < 0.05F) {
+ if (this.random.nextFloat() < world.getLevel().purpurConfig.entityLeftHandedChance) { // Purpur
@@ -1233,7 +1233,7 @@ public abstract class Mob extends LivingEntity {
RandomSource randomsource = world.getRandom();
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.MULTIPLY_BASE));
- if (randomsource.nextFloat() < 0.05F) {
+ if (randomsource.nextFloat() < world.getLevel().purpurConfig.entityLeftHandedChance) { // Purpur
this.setLeftHanded(true);
} else {
this.setLeftHanded(false);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 63212c3d00a4aabb9f14b50016f43aa9e1f10249..367ce7f6003be23ffe2228e26365cb894089d4b4 100644
index 7ccfccaaa3a4105751cdccdefa0784e7657bb503..b5b9217aeffb10219f06e196e91060ea24326b47 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -150,8 +150,10 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add boat fall damage config
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 10806ceb46832aa80ffaa1df45c7ec0d1c112dd7..b5beb009479ad743be64ae48b278d0864e163ed4 100644
index 03faa935d23b53b4749469b0b9b8e8ea2fe83c82..4209f076877e560f2e0463281c0a343526cab5e4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1023,7 +1023,16 @@ public class ServerPlayer extends Player {
@@ -1032,7 +1032,16 @@ public class ServerPlayer extends Player {
if (this.isInvulnerableTo(source)) {
return false;
} else {
@@ -27,7 +27,7 @@ index 10806ceb46832aa80ffaa1df45c7ec0d1c112dd7..b5beb009479ad743be64ae48b278d086
if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 367ce7f6003be23ffe2228e26365cb894089d4b4..2c0ac3fa1ce94c3b09dd55aa901e9e986ffb4338 100644
index b5b9217aeffb10219f06e196e91060ea24326b47..60fed3d898388e88088284af1b0d45ca606b2a99 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -106,6 +106,7 @@ public class PurpurWorldConfig {

View File

@@ -10,7 +10,7 @@ If min-shoot-interval-ticks and max-shoot-interval-ticks are both set to
0, snow golems won't shoot any snowballs.
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index 921215712cba59273da4387b5b4b2f3f5c9da6e2..d5f4166e3148d1a15ed1f04069ac0b4f5d09ebdc 100644
index b4459d68397cc5bac4f7ef79a2dfb18f3eb24f77..b9025929fcc89e72aa820953b91a65423878ba0f 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -79,7 +79,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -23,10 +23,10 @@ index 921215712cba59273da4387b5b4b2f3f5c9da6e2..d5f4166e3148d1a15ed1f04069ac0b4f
this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F));
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2c0ac3fa1ce94c3b09dd55aa901e9e986ffb4338..50f4fe8b85a7e7fbb536f93b1c10132711aa5ded 100644
index 60fed3d898388e88088284af1b0d45ca606b2a99..73453f20a0b2cd35abfb1985e225d9d595aa849d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1563,6 +1563,10 @@ public class PurpurWorldConfig {
@@ -1558,6 +1558,10 @@ public class PurpurWorldConfig {
public double snowGolemMaxHealth = 4.0D;
public boolean snowGolemDropsPumpkin = true;
public boolean snowGolemPutPumpkinBack = false;
@@ -37,7 +37,7 @@ index 2c0ac3fa1ce94c3b09dd55aa901e9e986ffb4338..50f4fe8b85a7e7fbb536f93b1c101327
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1576,6 +1580,10 @@ public class PurpurWorldConfig {
@@ -1571,6 +1575,10 @@ public class PurpurWorldConfig {
snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth);
snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin);
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);

View File

@@ -8,10 +8,10 @@ purpur.yml to disable the /give command from dropping items on the
floor when a player's inventory is full.
diff --git a/src/main/java/net/minecraft/server/commands/GiveCommand.java b/src/main/java/net/minecraft/server/commands/GiveCommand.java
index a60a84d5df0b05cf35668df8c5f08b811bc42a9f..a2751744517634700131ccfb0a2617557b4d42f2 100644
index 06e3a868e922f1b7a586d0ca28f64a67ae463b68..32beb045f990d4da6112da4fea295333cb69e2ea 100644
--- a/src/main/java/net/minecraft/server/commands/GiveCommand.java
+++ b/src/main/java/net/minecraft/server/commands/GiveCommand.java
@@ -57,6 +57,7 @@ public class GiveCommand {
@@ -58,6 +58,7 @@ public class GiveCommand {
boolean flag = entityplayer.getInventory().add(itemstack);
ItemEntity entityitem;
@@ -20,10 +20,10 @@ index a60a84d5df0b05cf35668df8c5f08b811bc42a9f..a2751744517634700131ccfb0a261755
itemstack.setCount(1);
entityitem = entityplayer.drop(itemstack, false, false, false); // SPIGOT-2942: Add boolean to call event
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index e57dab3abf5162dbe77cb2ba89b2ebabeae3895d..bd4c8c087b5468e5cde5e2cc017ae6187aef51bb 100644
index e80a13cd7178e056e5fdf770de7f5c03342dc52d..c55504d376f331b01d53aad6a9492ce2f8a4bbd3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -207,6 +207,11 @@ public class PurpurConfig {
@@ -202,6 +202,11 @@ public class PurpurConfig {
useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive);
}

View File

@@ -8,10 +8,10 @@ farm Nether Wart. Reimplemented based on a feature of the carpet-extra
mod.
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a577985b61 100644
index 17c76c310435f501d350bd99debacd242739196e..c7b9cd17cd2b13da9eedc8fd26a3bbdd8b307681 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
@@ -33,6 +33,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -34,6 +34,7 @@ public class HarvestFarmland extends Behavior<Villager> {
private long nextOkStartTime;
private int timeWorkedSoFar;
private final List<BlockPos> validFarmlandAroundVillager = Lists.newArrayList();
@@ -19,7 +19,7 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
public HarvestFarmland() {
super(ImmutableMap.of(MemoryModuleType.LOOK_TARGET, MemoryStatus.VALUE_ABSENT, MemoryModuleType.WALK_TARGET, MemoryStatus.VALUE_ABSENT, MemoryModuleType.SECONDARY_JOB_SITE, MemoryStatus.VALUE_PRESENT));
@@ -41,9 +42,10 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -42,9 +43,10 @@ public class HarvestFarmland extends Behavior<Villager> {
protected boolean checkExtraStartConditions(ServerLevel world, Villager entity) {
if (!world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
return false;
@@ -31,7 +31,7 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
BlockPos.MutableBlockPos blockposition_mutableblockposition = entity.blockPosition().mutable();
this.validFarmlandAroundVillager.clear();
@@ -74,6 +76,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -75,6 +77,7 @@ public class HarvestFarmland extends Behavior<Villager> {
Block block = iblockdata.getBlock();
Block block1 = world.getBlockState(pos.below()).getBlock();
@@ -39,7 +39,7 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
return block instanceof CropBlock && ((CropBlock) block).isMaxAge(iblockdata) || iblockdata.isAir() && block1 instanceof FarmBlock;
}
@@ -99,7 +102,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -100,7 +103,7 @@ public class HarvestFarmland extends Behavior<Villager> {
Block block = iblockdata.getBlock();
Block block1 = worldserver.getBlockState(this.aboveFarmlandPos.below()).getBlock();
@@ -48,7 +48,7 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
// CraftBukkit start
if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entityvillager, this.aboveFarmlandPos, Blocks.AIR.defaultBlockState()).isCancelled()) {
worldserver.destroyBlock(this.aboveFarmlandPos, true, entityvillager);
@@ -107,7 +110,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -108,7 +111,7 @@ public class HarvestFarmland extends Behavior<Villager> {
// CraftBukkit end
}
@@ -57,10 +57,10 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
SimpleContainer inventorysubcontainer = entityvillager.getInventory();
for (int j = 0; j < inventorysubcontainer.getContainerSize(); ++j) {
@@ -117,6 +120,14 @@ public class HarvestFarmland extends Behavior<Villager> {
if (!itemstack.isEmpty()) {
@@ -119,6 +122,14 @@ public class HarvestFarmland extends Behavior<Villager> {
BlockState iblockdata1;
// CraftBukkit start
Block planted = null;
+ // Purpur start
+ if (this.clericWartFarmer) {
+ if (itemstack.getItem() == Items.NETHER_WART) {
@@ -70,9 +70,9 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
+ } else
+ // Purpur end
if (itemstack.is(Items.WHEAT_SEEDS)) {
planted = Blocks.WHEAT;
iblockdata1 = Blocks.WHEAT.defaultBlockState();
flag = true;
@@ -140,7 +151,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -145,7 +156,7 @@ public class HarvestFarmland extends Behavior<Villager> {
}
if (flag) {
@@ -82,7 +82,7 @@ index 35d6951cf30c929f34853599aef76adcd8757946..fdfa36d3e148e8638109acaf4a0ea8a5
if (itemstack.isEmpty()) {
inventorysubcontainer.setItem(j, ItemStack.EMPTY);
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
index 1150a541a270a3ce5c69895f5385800aa44c22f4..808da0b75fcf492a76c692e312aa33ef6fc90c03 100644
index 50e04df178668ee1ba6a9dcf5e5b315c1bfd587d..6bd428e3d70bfe5ec638a5bd6f1eb03c9104e030 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/TradeWithVillager.java
@@ -56,6 +56,12 @@ public class TradeWithVillager extends Behavior<Villager> {
@@ -99,10 +99,10 @@ index 1150a541a270a3ce5c69895f5385800aa44c22f4..808da0b75fcf492a76c692e312aa33ef
throwHalfStack(villager, this.trades, villager2);
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
index 70a3db78c4913c14f39ddee39e5fcdd0e741c971..1763764662e061d1f8de74b65de7fb5cc1caac5c 100644
index b966fa29d9f1d2253485f4f1d1f75e628151f904..ba17618784b76384737e876d790eafe76a7cec8d 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java
@@ -23,8 +23,13 @@ public class VillagerGoalPackages {
@@ -27,8 +27,13 @@ public class VillagerGoalPackages {
}
public static ImmutableList<Pair<Integer, ? extends Behavior<? super Villager>>> getWorkPackage(VillagerProfession profession, float speed) {
@@ -118,7 +118,7 @@ index 70a3db78c4913c14f39ddee39e5fcdd0e741c971..1763764662e061d1f8de74b65de7fb5c
} else {
workAtPoi = new WorkAtPoi();
diff --git a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
index b615dc2a2127f0874775d1707e96edfb4d95b987..72ae6b3282aac806ae11b87024ee940eec8fbe91 100644
index cb1d91f9fe98f21c2afbe3894dfd9bca3bdd3ba6..d2703432af207c74ea8d298a784329c3219d2f13 100644
--- a/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
+++ b/src/main/java/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java
@@ -22,6 +22,13 @@ public class SecondaryPoiSensor extends Sensor<Villager> {
@@ -145,10 +145,10 @@ index b615dc2a2127f0874775d1707e96edfb4d95b987..72ae6b3282aac806ae11b87024ee940e
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
} else {
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 094fd4289bc42df6af6740acacd4f51ab6b668e0..bbb8dde583b1a40c305bb110313e7121ad354dc3 100644
index 5e82e82ab3afd8dba8588d84a02f4a6d626db51a..18a184633362c43f59f9493c56b33ccfb09d2873 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -224,7 +224,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -222,7 +222,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
brain.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPackage(0.5F));
} else {
brain.setSchedule(Schedule.VILLAGER_DEFAULT);
@@ -157,7 +157,7 @@ index 094fd4289bc42df6af6740acacd4f51ab6b668e0..bbb8dde583b1a40c305bb110313e7121
}
brain.addActivity(Activity.CORE, VillagerGoalPackages.getCorePackage(villagerprofession, 0.5F));
@@ -989,6 +989,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -955,6 +955,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
public boolean hasFarmSeeds() {
@@ -170,24 +170,24 @@ index 094fd4289bc42df6af6740acacd4f51ab6b668e0..bbb8dde583b1a40c305bb110313e7121
}
diff --git a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
index 901fc6520d58a5fa5f2cf1b4fa78fec6008aa409..9050cd25663c71197c597aac0ab2e6121b76b13b 100644
index b1f20cb356e6b4e89fdddf4e48f2fd932bdb5170..352a7df156c638684a12a864eb5a9d0625a00e0b 100644
--- a/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
+++ b/src/main/java/net/minecraft/world/entity/npc/VillagerProfession.java
@@ -17,7 +17,7 @@ public class VillagerProfession {
public static final VillagerProfession ARMORER = register("armorer", PoiType.ARMORER, SoundEvents.VILLAGER_WORK_ARMORER);
public static final VillagerProfession BUTCHER = register("butcher", PoiType.BUTCHER, SoundEvents.VILLAGER_WORK_BUTCHER);
public static final VillagerProfession CARTOGRAPHER = register("cartographer", PoiType.CARTOGRAPHER, SoundEvents.VILLAGER_WORK_CARTOGRAPHER);
- public static final VillagerProfession CLERIC = register("cleric", PoiType.CLERIC, SoundEvents.VILLAGER_WORK_CLERIC);
+ public static final VillagerProfession CLERIC = register("cleric", PoiType.CLERIC, ImmutableSet.of(Items.NETHER_WART), ImmutableSet.of(Blocks.SOUL_SAND), SoundEvents.VILLAGER_WORK_CLERIC); // Purpur
public static final VillagerProfession FARMER = register("farmer", PoiType.FARMER, ImmutableSet.of(Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT_SEEDS, Items.BONE_MEAL), ImmutableSet.of(Blocks.FARMLAND), SoundEvents.VILLAGER_WORK_FARMER);
public static final VillagerProfession FISHERMAN = register("fisherman", PoiType.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiType.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER);
@@ -25,7 +25,7 @@ public record VillagerProfession(String name, Predicate<Holder<PoiType>> heldJob
public static final VillagerProfession ARMORER = register("armorer", PoiTypes.ARMORER, SoundEvents.VILLAGER_WORK_ARMORER);
public static final VillagerProfession BUTCHER = register("butcher", PoiTypes.BUTCHER, SoundEvents.VILLAGER_WORK_BUTCHER);
public static final VillagerProfession CARTOGRAPHER = register("cartographer", PoiTypes.CARTOGRAPHER, SoundEvents.VILLAGER_WORK_CARTOGRAPHER);
- public static final VillagerProfession CLERIC = register("cleric", PoiTypes.CLERIC, SoundEvents.VILLAGER_WORK_CLERIC);
+ public static final VillagerProfession CLERIC = register("cleric", PoiTypes.CLERIC, ImmutableSet.of(Items.NETHER_WART), ImmutableSet.of(Blocks.SOUL_SAND), SoundEvents.VILLAGER_WORK_CLERIC); // Purpur
public static final VillagerProfession FARMER = register("farmer", PoiTypes.FARMER, ImmutableSet.of(Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT_SEEDS, Items.BONE_MEAL), ImmutableSet.of(Blocks.FARMLAND), SoundEvents.VILLAGER_WORK_FARMER);
public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN);
public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 50f4fe8b85a7e7fbb536f93b1c10132711aa5ded..0b7125bf5abf54b4d87de846a583ca3f20f9774f 100644
index 73453f20a0b2cd35abfb1985e225d9d595aa849d..961bb6fd04155efb4211a763f2efff517a08e644 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1748,6 +1748,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemLimit = 0;
@@ -1741,6 +1741,8 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerCanBreed = true;
public int villagerBreedingTicks = 6000;
+ public boolean villagerClericsFarmWarts = false;
@@ -195,8 +195,8 @@ index 50f4fe8b85a7e7fbb536f93b1c10132711aa5ded..0b7125bf5abf54b4d87de846a583ca3f
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1766,6 +1768,8 @@ public class PurpurWorldConfig {
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);
@@ -1757,6 +1759,8 @@ public class PurpurWorldConfig {
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
+ villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);

View File

@@ -13,7 +13,7 @@ to the Piglin being angry, even though the player never hit them.
This patch adds a toggle to disable this behavior.
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index e2192c45eba111a62dded3731dcdeacc6168710c..ecf0b5def569f6c37d0a27ceb51e7158e57cbe6b 100644
index 6c1dd723373f9b1b920548de85aeb6cef0120fa7..1f0003fb08a45af02e6d38e28fa548abe480426b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -143,7 +143,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -35,10 +35,10 @@ index e2192c45eba111a62dded3731dcdeacc6168710c..ecf0b5def569f6c37d0a27ceb51e7158
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0b7125bf5abf54b4d87de846a583ca3f20f9774f..ca40f12a245d57f1887adc599eef2fbf4f85c209 100644
index 961bb6fd04155efb4211a763f2efff517a08e644..201f672797ca9f1ea5c6ed3bdebfef8dcdc41c7a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1987,6 +1987,7 @@ public class PurpurWorldConfig {
@@ -1978,6 +1978,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinJockeyOnlyBaby = true;
public double zombifiedPiglinJockeyChance = 0.05D;
public boolean zombifiedPiglinJockeyTryExistingChickens = true;
@@ -46,7 +46,7 @@ index 0b7125bf5abf54b4d87de846a583ca3f20f9774f..ca40f12a245d57f1887adc599eef2fbf
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -2001,5 +2002,6 @@ public class PurpurWorldConfig {
@@ -1992,5 +1993,6 @@ public class PurpurWorldConfig {
zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby);
zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance);
zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Spread out and optimise player list ticksSpread out and
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index b90138f95ad0cdeda2ed6e9a881f01c7b22dd3f2..ed4e4de5f4e303a8fe1c64040c65ab24c2f7e4d6 100644
index 72a4ceb96169552325c3c96a5bc880e7e825f37d..eebc1cf65339a4938862ac71c314519d9a369496 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1018,22 +1018,22 @@ public abstract class PlayerList {
@@ -46,10 +46,10 @@ index b90138f95ad0cdeda2ed6e9a881f01c7b22dd3f2..ed4e4de5f4e303a8fe1c64040c65ab24
public void broadcastAll(Packet<?> packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 2cd475ac88b3d28aa918ca7f8599a70a5b5c2ea4..365358ef910594980f0126a4300a40bb2293e03c 100644
index 69db9fb3b319b7f43d93375e719ec13c67388dff..eef64bca59a9b1558d83eb178e988d45281d4638 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1737,7 +1737,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1699,7 +1699,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {

View File

@@ -7,10 +7,10 @@ Configurable chance to spawn a wolf that is rabid.
Rabid wolves attack all players, mobs, and animals.
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 702a4b674013a455d179d88d3931f6c216c1ca89..61057ef26cf13a91a1c49d1a3c6383a0da75b77c 100644
index 28e35304e76b26af734fcfbccef8f43143345576..f862d83db6127804b9254a33a73e6f186a1d1327 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -11,15 +11,19 @@ import net.minecraft.network.syncher.EntityDataAccessor;
@@ -10,6 +10,7 @@ import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.server.level.ServerLevel;
@@ -18,7 +18,8 @@ index 702a4b674013a455d179d88d3931f6c216c1ca89..61057ef26cf13a91a1c49d1a3c6383a0
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.tags.BlockTags;
import net.minecraft.util.Mth;
@@ -17,9 +18,12 @@ import net.minecraft.util.Mth;
import net.minecraft.util.RandomSource;
import net.minecraft.util.TimeUtil;
import net.minecraft.util.valueproviders.UniformInt;
+import net.minecraft.world.DifficultyInstance;
@@ -178,7 +179,7 @@ index 702a4b674013a455d179d88d3931f6c216c1ca89..61057ef26cf13a91a1c49d1a3c6383a0
this.interestedAngleO = this.interestedAngle;
if (this.isInterested()) {
this.interestedAngle += (1.0F - this.interestedAngle) * 0.4F;
@@ -459,6 +539,20 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -458,6 +538,20 @@ public class Wolf extends TamableAnimal implements NeutralMob {
return InteractionResult.SUCCESS;
}
@@ -221,10 +222,10 @@ index a3bec00368aef0f8cc6aa21cce1389938d15f91b..704667760ab1593647e3f03bdd17ad32
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ca40f12a245d57f1887adc599eef2fbf4f85c209..dd874c0576d0f5986717c28a9d267b7590ff18ff 100644
index 201f672797ca9f1ea5c6ed3bdebfef8dcdc41c7a..1578c5b83c72fead1ff191fc439f1c8c9cdd9032 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1872,6 +1872,8 @@ public class PurpurWorldConfig {
@@ -1863,6 +1863,8 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -233,7 +234,7 @@ index ca40f12a245d57f1887adc599eef2fbf4f85c209..dd874c0576d0f5986717c28a9d267b75
public int wolfBreedingTicks = 6000;
private void wolfSettings() {
wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable);
@@ -1883,6 +1885,8 @@ public class PurpurWorldConfig {
@@ -1874,6 +1876,8 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -7,10 +7,10 @@ This allows for the server to set a default collar color when a wolf or cat is t
Resets to RED when the value is invalid.
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 456b5f7aedda7f424e46f985f6b854646b2719d8..b4e482a28b1c7f1f46f31faa6466fb54a7991835 100644
index c6812166ee708100850561a0573be81af76ecfa5..4e0f54689e4db6d4e23ed09bf9645b42fa889a5d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -374,6 +374,14 @@ public class Cat extends TamableAnimal {
@@ -346,6 +346,14 @@ public class Cat extends TamableAnimal {
return Mth.lerp(tickDelta, this.relaxStateOneAmountO, this.relaxStateOneAmount);
}
@@ -26,7 +26,7 @@ index 456b5f7aedda7f424e46f985f6b854646b2719d8..b4e482a28b1c7f1f46f31faa6466fb54
public Cat getBreedOffspring(ServerLevel world, AgeableMob entity) {
Cat entitycat = (Cat) EntityType.CAT.create(world);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index cbd5f90f5005187c61e47e6f6fa74fb19d67a4d4..b9567d4d6c03124d4eaa3194c97a170277c64bbe 100644
index f862d83db6127804b9254a33a73e6f186a1d1327..ffe8f80cfe3bec8fe79415015f5290749fcb770e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -201,6 +201,12 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -43,10 +43,10 @@ index cbd5f90f5005187c61e47e6f6fa74fb19d67a4d4..b9567d4d6c03124d4eaa3194c97a1702
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dd874c0576d0f5986717c28a9d267b7590ff18ff..9e9d1c7be240a58d2e0c1fe6ac91c234f286c826 100644
index 1578c5b83c72fead1ff191fc439f1c8c9cdd9032..9d20a9bf0af2a40648f1189b038a54ee1d4be9a2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -580,6 +580,7 @@ public class PurpurWorldConfig {
@@ -575,6 +575,7 @@ public class PurpurWorldConfig {
public int catSpawnSwampHutScanRange = 16;
public int catSpawnVillageScanRange = 48;
public int catBreedingTicks = 6000;
@@ -54,7 +54,7 @@ index dd874c0576d0f5986717c28a9d267b7590ff18ff..9e9d1c7be240a58d2e0c1fe6ac91c234
private void catSettings() {
catRidable = getBoolean("mobs.cat.ridable", catRidable);
catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater);
@@ -594,6 +595,11 @@ public class PurpurWorldConfig {
@@ -589,6 +590,11 @@ public class PurpurWorldConfig {
catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange);
catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange);
catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks);
@@ -66,7 +66,7 @@ index dd874c0576d0f5986717c28a9d267b7590ff18ff..9e9d1c7be240a58d2e0c1fe6ac91c234
}
public boolean caveSpiderRidable = false;
@@ -1872,6 +1878,7 @@ public class PurpurWorldConfig {
@@ -1863,6 +1869,7 @@ public class PurpurWorldConfig {
public boolean wolfRidableInWater = false;
public boolean wolfControllable = true;
public double wolfMaxHealth = 8.0D;
@@ -74,7 +74,7 @@ index dd874c0576d0f5986717c28a9d267b7590ff18ff..9e9d1c7be240a58d2e0c1fe6ac91c234
public boolean wolfMilkCuresRabies = true;
public double wolfNaturalRabid = 0.0D;
public int wolfBreedingTicks = 6000;
@@ -1885,6 +1892,11 @@ public class PurpurWorldConfig {
@@ -1876,6 +1883,11 @@ public class PurpurWorldConfig {
set("mobs.wolf.attributes.max_health", oldValue);
}
wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantom flames on swoop
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 20ff9c65f89635a4b91d334775b3ac380b5ccbac..c01820307fa6d476402632d44b65ada164a5aded 100644
index 056a7487e265182f7b50eba30aa6adaa4ba39eba..2be9ab670e93067fe23745cafa0655a1dfa2bc0f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -244,6 +244,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -17,10 +17,10 @@ index 20ff9c65f89635a4b91d334775b3ac380b5ccbac..c01820307fa6d476402632d44b65ada1
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9e9d1c7be240a58d2e0c1fe6ac91c234f286c826..f324176dcee9b3111cc69c66e7ba07d721c8af35 100644
index 9d20a9bf0af2a40648f1189b038a54ee1d4be9a2..0abe70545304887722ec20c5ad20169273381560 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1251,6 +1251,7 @@ public class PurpurWorldConfig {
@@ -1246,6 +1246,7 @@ public class PurpurWorldConfig {
public int phantomBurnInLight = 0;
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
@@ -28,7 +28,7 @@ index 9e9d1c7be240a58d2e0c1fe6ac91c234f286c826..f324176dcee9b3111cc69c66e7ba07d7
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -1290,6 +1291,7 @@ public class PurpurWorldConfig {
@@ -1285,6 +1286,7 @@ public class PurpurWorldConfig {
phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight);
phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight);
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option for chests to open even with a solid block on top
diff --git a/src/main/java/net/minecraft/world/level/block/ChestBlock.java b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
index db726697b00afdee6078849fd224263483349912..c808664a67a9604e40ab388c6d0e6ac3c13f57ac 100644
index 2f6b5142543aec14b27a996fe1a6817ac44c77b8..b69b72363d8b764b0bd21aa4d0799f7686ab4cf5 100644
--- a/src/main/java/net/minecraft/world/level/block/ChestBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/ChestBlock.java
@@ -356,6 +356,7 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
@@ -355,6 +355,7 @@ public class ChestBlock extends AbstractChestBlock<ChestBlockEntity> implements
}
private static boolean isBlockedChestByBlock(BlockGetter world, BlockPos pos) {
@@ -17,7 +17,7 @@ index db726697b00afdee6078849fd224263483349912..c808664a67a9604e40ab388c6d0e6ac3
return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9d879101a072c5c02ff874ad18483f810c42e353..8adefc693683c5870abb5d0f2f63b5391d7efb6d 100644
index 0abe70545304887722ec20c5ad20169273381560..f5832c2a308d8acbac525b6ff9c1aea6b816e96e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -406,6 +406,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement TPSBar
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 362fd34016b83ba346a43abb6acf38d887918437..c137f5299e4a9e2f33aeef77818c62c3805bdc0d 100644
index 72ab7ba92d6f20c1711d9720c02c11ce0e4ede71..9db941587e870b2a9d0378652d62f4f2c2c385bd 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -210,6 +210,7 @@ public class Commands {
@@ -208,6 +208,7 @@ public class Commands {
org.purpurmc.purpur.command.CreditsCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur
@@ -17,10 +17,10 @@ index 362fd34016b83ba346a43abb6acf38d887918437..c137f5299e4a9e2f33aeef77818c62c3
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 9d156683ee46eb168048b90dd1819ae3dd87e408..1f65c943f78e416f47d97bf2628862fa76dee290 100644
index 1a3f709c8aa455f1ce7e63751074044b85b14d19..8a6b839ce55bc352dd5a38883c2bf8240f7420bf 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1088,6 +1088,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1043,6 +1043,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.safeShutdown(flag, false);
}
public void safeShutdown(boolean flag, boolean isRestarting) {
@@ -29,22 +29,22 @@ index 9d156683ee46eb168048b90dd1819ae3dd87e408..1f65c943f78e416f47d97bf2628862fa
this.hasLoggedStop = true; // Paper
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index a4a07a7cc9a33f01234e461aa3c19e1c2e4d6aef..f508eda7f689ef1a5743bda4d68a863f37108486 100644
index 814f24d5d38062799e51cc7e07b3f55fe59579f5..1a9b717c06ae93d996457399d35abb167a4c5f45 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -361,6 +361,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -350,6 +350,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.info("JMX monitoring enabled");
}
if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) mobSpawnExecutor.start(); // Pufferfish
+ org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur
return true;
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 9798cc19e67fd579aad17d7e57636416a7a8ac65..4b0a0f18708c887ea339f078aea4c988b222ce0c 100644
index 4209f076877e560f2e0463281c0a343526cab5e4..730a2f16fe9fea9662edf502419ad57387169c8f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -255,6 +255,7 @@ public class ServerPlayer extends Player {
@@ -262,6 +262,7 @@ public class ServerPlayer extends Player {
public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
public boolean purpurClient = false; // Purpur
public boolean acceptingResourcePack = false; // Purpur
@@ -52,7 +52,7 @@ index 9798cc19e67fd579aad17d7e57636416a7a8ac65..4b0a0f18708c887ea339f078aea4c988
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
@@ -476,6 +477,7 @@ public class ServerPlayer extends Player {
@@ -483,6 +484,7 @@ public class ServerPlayer extends Player {
}
}
@@ -60,7 +60,7 @@ index 9798cc19e67fd579aad17d7e57636416a7a8ac65..4b0a0f18708c887ea339f078aea4c988
}
@Override
@@ -536,6 +538,7 @@ public class ServerPlayer extends Player {
@@ -543,6 +545,7 @@ public class ServerPlayer extends Player {
}
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
@@ -68,7 +68,7 @@ index 9798cc19e67fd579aad17d7e57636416a7a8ac65..4b0a0f18708c887ea339f078aea4c988
}
// CraftBukkit start - World fallback code, either respawn location or global spawn
@@ -2575,5 +2578,13 @@ public class ServerPlayer extends Player {
@@ -2612,5 +2615,13 @@ public class ServerPlayer extends Player {
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck);
}
}
@@ -83,7 +83,7 @@ index 9798cc19e67fd579aad17d7e57636416a7a8ac65..4b0a0f18708c887ea339f078aea4c988
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index ed4e4de5f4e303a8fe1c64040c65ab24c2f7e4d6..795b3c765bf91fbf1df236060344830de9330b38 100644
index eebc1cf65339a4938862ac71c314519d9a369496..9e7bcd0b0b736ef7b7b5aa78037d13438b47824b 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -493,6 +493,7 @@ public abstract class PlayerList {
@@ -104,7 +104,7 @@ index ed4e4de5f4e303a8fe1c64040c65ab24c2f7e4d6..795b3c765bf91fbf1df236060344830d
entityplayer.awardStat(Stats.LEAVE_GAME);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index bd4c8c087b5468e5cde5e2cc017ae6187aef51bb..1eb8d599ebb70313fda467d943888f137b1fa745 100644
index c55504d376f331b01d53aad6a9492ce2f8a4bbd3..47f4c08c354c2d683dd0959c22c68eb78920a5da 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -176,6 +176,7 @@ public class PurpurConfig {
@@ -122,8 +122,8 @@ index bd4c8c087b5468e5cde5e2cc017ae6187aef51bb..1eb8d599ebb70313fda467d943888f13
+ tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput);
}
public static String deathMsgStonecutter = "<player> has sawed themself in half";
@@ -212,6 +214,29 @@ public class PurpurConfig {
public static String serverModName = "Purpur";
@@ -207,6 +209,29 @@ public class PurpurConfig {
disableGiveCommandDrops = getBoolean("settings.disable-give-dropping", disableGiveCommandDrops);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Striders give saddle back
diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java
index 0046bc4f7a1fb7bb40da955570d56c7cb87aa687..bec84c1dba34d61de9199b1b46cad49d46ee9731 100644
index eb2083d67f9486a24d2f0aa4bf1f5ba8a00e23a3..df9d16a6493a57b6034cd56bf8dbe38fe7c5cda1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Strider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java
@@ -453,6 +453,19 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
@@ -455,6 +455,19 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
public InteractionResult mobInteract(Player player, InteractionHand hand) {
boolean flag = this.isFood(player.getItemInHand(hand));
@@ -29,10 +29,10 @@ index 0046bc4f7a1fb7bb40da955570d56c7cb87aa687..bec84c1dba34d61de9199b1b46cad49d
if (!this.level.isClientSide) {
player.startRiding(this);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c2847155d1af14dd2b069328d671ed58363b4fdb..80485a8cb979ffc4ff698127574350ec78cc57e7 100644
index f5832c2a308d8acbac525b6ff9c1aea6b816e96e..96b237ae22669e46eff2402906500cf869d93c7e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1656,6 +1656,7 @@ public class PurpurWorldConfig {
@@ -1651,6 +1651,7 @@ public class PurpurWorldConfig {
public boolean striderControllable = true;
public double striderMaxHealth = 20.0D;
public int striderBreedingTicks = 6000;
@@ -40,7 +40,7 @@ index c2847155d1af14dd2b069328d671ed58363b4fdb..80485a8cb979ffc4ff698127574350ec
private void striderSettings() {
striderRidable = getBoolean("mobs.strider.ridable", striderRidable);
striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater);
@@ -1667,6 +1668,7 @@ public class PurpurWorldConfig {
@@ -1662,6 +1663,7 @@ public class PurpurWorldConfig {
}
striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth);
striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerBookTooLargeEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 0a7d748e0279a1fd7bb97051732ea1843510087b..e01afeb407acb8cf865d2d223aefaf15b634c94d 100644
index baa02e8a9ed29854253ec03779ef9e5734d22104..535c4577c4fead700061020f0b946c0ee191f768 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1163,10 +1163,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1193,10 +1193,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize;
double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier));
long byteAllowed = maxBookPageSize;
@@ -21,7 +21,7 @@ index 0a7d748e0279a1fd7bb97051732ea1843510087b..e01afeb407acb8cf865d2d223aefaf15
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
return;
}
@@ -1190,6 +1192,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1220,6 +1222,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
if (byteTotal > byteAllowed) {
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance
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 cbe87a8da6ecfb9cb947acb80ab8c76f8a09460f..dcfb5cd4f069136a4e5507c6777d0841457a893d 100644
index 292333dc9857c92808b3b7ec19ad84366ad073d6..120ac554b5ffd677731ed959f01da7478d37e2f3 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -359,6 +359,16 @@ public abstract class Player extends LivingEntity {
@@ -367,6 +367,16 @@ public abstract class Player extends LivingEntity {
this.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit
}
@@ -26,7 +26,7 @@ index cbe87a8da6ecfb9cb947acb80ab8c76f8a09460f..dcfb5cd4f069136a4e5507c6777d0841
protected ItemCooldowns createItemCooldowns() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 80485a8cb979ffc4ff698127574350ec78cc57e7..edd79e3e05652b7fa5bbeefb85e391db3ccd6137 100644
index 96b237ae22669e46eff2402906500cf869d93c7e..0b35b906360d964dbff288217340becddb14678c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -289,6 +289,19 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix rotating UP/DOWN CW and CCW
diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java
index 6b71d9433846eb4464177f09d7bfdea82200b189..050a2e157b61a9ae86fa86f231d16ee3f2634db0 100644
index a3bbebcdaea9e0dfddd9825272f84fc76cd13e89..6c27b22dd1d497687c0f4d3835e34149bcf952c1 100644
--- a/src/main/java/net/minecraft/core/Direction.java
+++ b/src/main/java/net/minecraft/core/Direction.java
@@ -247,6 +247,12 @@ public enum Direction implements StringRepresentable {
@@ -252,6 +252,12 @@ public enum Direction implements StringRepresentable {
case EAST:
var10000 = SOUTH;
break;
@@ -21,7 +21,7 @@ index 6b71d9433846eb4464177f09d7bfdea82200b189..050a2e157b61a9ae86fa86f231d16ee3
default:
throw new IllegalStateException("Unable to get Y-rotated facing of " + this);
}
@@ -359,6 +365,12 @@ public enum Direction implements StringRepresentable {
@@ -364,6 +370,12 @@ public enum Direction implements StringRepresentable {
case EAST:
var10000 = NORTH;
break;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 8ed08c1ce9fe689c009b37ca317b60339a0d6d76..52ac5e4968256dca6fbda827fa251b9a6d60d5ee 100644
index 5ba6377ebf77b78d0bd15c01b302ef33ffdd4200..1c5daf93cca4c54b35d08092a7662e88d5d18f6d 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1694,7 +1694,7 @@ public abstract class LivingEntity extends Entity {
@@ -1709,7 +1709,7 @@ public abstract class LivingEntity extends Entity {
boolean flag = false;
if (this.dead && adversary instanceof WitherBoss) { // Paper
@@ -18,23 +18,23 @@ index 8ed08c1ce9fe689c009b37ca317b60339a0d6d76..52ac5e4968256dca6fbda827fa251b9a
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 079bfd97262cec9084d3491b3dd68f1506274f43..6d11daac5f0d0d119fb6854089457d158ab6550e 100644
index 034aa7c98397bd9e4fd1e615e3cdad7e3473eb70..ce72ba463449958ddc798feea3824a97fbba0bed 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -657,7 +657,7 @@ public abstract class Mob extends LivingEntity {
@@ -662,7 +662,7 @@ public abstract class Mob extends LivingEntity {
public void aiStep() {
super.aiStep();
this.level.getProfiler().push("looting");
- if (!this.level.isClientSide && this.canPickUpLoot() && this.isAlive() && !this.dead && this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) {
+ if (!this.level.isClientSide && this.canPickUpLoot() && this.isAlive() && !this.dead && (this.level.purpurConfig.entitiesPickUpLootBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) {
List<ItemEntity> list = this.level.getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate(1.0D, 0.0D, 1.0D));
Vec3i baseblockposition = this.getPickupReach();
List<ItemEntity> list = this.level.getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ()));
Iterator iterator = list.iterator();
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
index fdfa36d3e148e8638109acaf4a0ea8a577985b61..fb4cefdac067ea24764acf7a5d5d0f5b04c6147d 100644
index c7b9cd17cd2b13da9eedc8fd26a3bbdd8b307681..22bec44fa23370ce57ba485546d665e120a50396 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
@@ -40,7 +40,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -41,7 +41,7 @@ public class HarvestFarmland extends Behavior<Villager> {
}
protected boolean checkExtraStartConditions(ServerLevel world, Villager entity) {
@@ -57,10 +57,10 @@ index 529435cf648d61f80a37f041cee3c6fc0b74ceb6..6c7195c93b5968845da35450e80022c7
@Override
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
index 99044ebe2c37ce951566e3463ddbfaeec46d2b3c..023d4e10aeccb2bea3131e498f257d6e6fab6c65 100644
index 80aa539f7c6a6ee44338de084cdcdf5fb4ef996a..3a633f369af8005de3c06cfa715a42e3b248b2f0 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
@@ -70,7 +70,7 @@ public class EatBlockGoal extends Goal {
@@ -69,7 +69,7 @@ public class EatBlockGoal extends Goal {
if (EatBlockGoal.IS_TALL_GRASS.test(this.level.getBlockState(blockposition))) {
// CraftBukkit
@@ -69,7 +69,7 @@ index 99044ebe2c37ce951566e3463ddbfaeec46d2b3c..023d4e10aeccb2bea3131e498f257d6e
this.level.destroyBlock(blockposition, false);
}
@@ -81,7 +81,7 @@ public class EatBlockGoal extends Goal {
@@ -79,7 +79,7 @@ public class EatBlockGoal extends Goal {
if (this.level.getBlockState(blockposition1).is(Blocks.GRASS_BLOCK)) {
// CraftBukkit
@@ -79,7 +79,7 @@ index 99044ebe2c37ce951566e3463ddbfaeec46d2b3c..023d4e10aeccb2bea3131e498f257d6e
this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2);
}
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
index 027ef44d46cb1dda19c5c239f6970c90285fb961..fd0ed33487305093bbdf6c9bf23313a58c81b231 100644
index bd0cbf4390fc7d00b4bd5008cdf8f6f49df4f69b..27e96c4c1377c49f03df032683aac32d96ae1c6f 100644
--- a/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java
@@ -40,7 +40,7 @@ public class RemoveBlockGoal extends MoveToBlockGoal {
@@ -92,10 +92,10 @@ index 027ef44d46cb1dda19c5c239f6970c90285fb961..fd0ed33487305093bbdf6c9bf23313a5
} else if (this.nextStartTick > 0) {
--this.nextStartTick;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java
index 8a73267128c7e165651b97cd46f65f9cd373a1ea..a1e9a41f2100457f93f21dbcf7bb9ecd53103d9e 100644
index aa18947d3822a1093985799e87ad6c2b28f51eb1..364863d14e7c0ac6dffa1ac5df5f1af5d820c700 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
@@ -1363,7 +1363,7 @@ public class Fox extends Animal {
@@ -1365,7 +1365,7 @@ public class Fox extends Animal {
}
protected void onReachedTarget() {
@@ -105,10 +105,10 @@ index 8a73267128c7e165651b97cd46f65f9cd373a1ea..a1e9a41f2100457f93f21dbcf7bb9ecd
if (iblockdata.is(Blocks.SWEET_BERRY_BUSH)) {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index 8d44949c54f9cba0848b4f7b82c573325c134d9d..3e1f6392853f7770a3a3427444ecc9c5fe039a63 100644
index e990e6f416854197bd5a4d31e4c7acc3fb69b390..68579837bbe1f532b94de072bcb614d2baa3f74d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -618,7 +618,7 @@ public class Rabbit extends Animal {
@@ -619,7 +619,7 @@ public class Rabbit extends Animal {
@Override
public boolean canUse() {
if (this.nextStartTick <= 0) {
@@ -118,7 +118,7 @@ index 8d44949c54f9cba0848b4f7b82c573325c134d9d..3e1f6392853f7770a3a3427444ecc9c5
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
index bb71b370856d4ec050e04be3ad6527cca5e6e521..cdd171238cf01ca08eccc99d07f99f8c4b97d5c0 100644
index b9025929fcc89e72aa820953b91a65423878ba0f..edf4537f08a54e1a5b043927678bbddf3bdfd881 100644
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
@@ -133,7 +133,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -131,20 +131,20 @@ index bb71b370856d4ec050e04be3ad6527cca5e6e521..cdd171238cf01ca08eccc99d07f99f8c
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 1a454c782391ff906c58cdb71c4345bb15943649..716293b68ac1e9c8bd94780cbc3bdd361f445198 100644
index bf05e13e6d385c87fdd36ac32db170f9b0a644af..dc27fb79ee596c39a8ea4a422b9a069bfccb08e9 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -579,7 +579,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -578,7 +578,7 @@ public class EnderDragon extends Mob implements Enemy {
BlockState iblockdata = this.level.getBlockState(blockposition);
if (!iblockdata.isAir() && iblockdata.getMaterial() != Material.FIRE) {
if (!iblockdata.isAir() && !iblockdata.is(BlockTags.DRAGON_TRANSPARENT)) {
- if (this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && !iblockdata.is(BlockTags.DRAGON_IMMUNE)) {
+ if ((this.level.purpurConfig.enderDragonBypassMobGriefing || this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && !iblockdata.is(BlockTags.DRAGON_IMMUNE)) { // Purpur
// CraftBukkit start - Add blocks to list rather than destroying them
// flag1 = this.level.removeBlock(blockposition, false) || flag1;
flag1 = true;
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index a8698975b368b27c0bb1cab4e0b83d69e773fc6b..87aaad12386b0ad79b1017100c83ca0482a9e304 100644
index b1d0ddcdd7da03d62ef952931ace03c2a0e0bd93..4da6fbb66350e4513dde28ba6f3c5d414ef92ad1 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -390,7 +390,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -179,10 +179,10 @@ index f486b722ef0c82b449238effc045fa9f68860193..f4aeaeef7d781a655e765993fb38a9d9
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 018d94c3540bf6241d57fe915b5037978601dc2d..28e293dd683b052782bb05d4523e908a6f4aa990 100644
index 2bff3ace8ea2bd2ee3ec6025c41208e283dee266..2da54b559ba48eec118727499068ce1d937eee5a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -521,7 +521,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -519,7 +519,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
if (!enderman.level.purpurConfig.endermanAllowGriefing) return false; // Purpur
@@ -191,7 +191,7 @@ index 018d94c3540bf6241d57fe915b5037978601dc2d..28e293dd683b052782bb05d4523e908a
}
@Override
@@ -569,7 +569,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -567,7 +567,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
if (!enderman.level.purpurConfig.endermanAllowGriefing) return false; // Purpur
@@ -214,10 +214,10 @@ index 1641d5083cad8b7cd62fc1168834ff99b5239c5a..281e8e6232c30cf5c20e9e2de4ac2ab4
} else {
List<Sheep> list = Evoker.this.level.getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index 0b916be0e0ed6fcf4263759da368732f4e16542a..99125fe401c561cbd65cadf74d749392677acb24 100644
index 647e0fbd0ff54944fbe7e2a9a6ac40a32919359c..02b0c732b17f8992c040f095c410d526e1faa62a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -190,7 +190,7 @@ public class Ravager extends Raider {
@@ -191,7 +191,7 @@ public class Ravager extends Raider {
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(Mth.lerp(0.1D, d1, d0));
}
@@ -227,7 +227,7 @@ index 0b916be0e0ed6fcf4263759da368732f4e16542a..99125fe401c561cbd65cadf74d749392
AABB axisalignedbb = this.getBoundingBox().inflate(0.2D);
Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
index cfbbdea914eb55f5c772f68f6494ac90c1c4c0ea..d929193ed63b36deb32cc0807e75a589a0d8ad5c 100644
index 4f0f7b2685696c48f2fe297ceea7a03322b8d45e..45aab92a976ac4c7e1f9b066119f0b4a7188a8f7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
@@ -204,7 +204,7 @@ public class Silverfish extends Monster {
@@ -241,15 +241,15 @@ index cfbbdea914eb55f5c772f68f6494ac90c1c4c0ea..d929193ed63b36deb32cc0807e75a589
world.setBlock(blockposition1, ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)), 3);
@@ -242,7 +242,7 @@ public class Silverfish extends Monster {
} else {
Random random = this.mob.getRandom();
RandomSource randomsource = this.mob.getRandom();
- if (this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && random.nextInt(reducedTickDelay(10)) == 0) {
+ if ((this.mob.level.purpurConfig.silverfishBypassMobGriefing || this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && random.nextInt(reducedTickDelay(10)) == 0) { // Purpur
this.selectedDirection = Direction.getRandom(random);
- if (this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) && randomsource.nextInt(reducedTickDelay(10)) == 0) {
+ if ((this.mob.level.purpurConfig.silverfishBypassMobGriefing || this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) && randomsource.nextInt(reducedTickDelay(10)) == 0) { // Purpur
this.selectedDirection = Direction.getRandom(randomsource);
BlockPos blockposition = (new BlockPos(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ())).relative(this.selectedDirection);
BlockState iblockdata = this.mob.level.getBlockState(blockposition);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index ee1aadfa838aaed81760648bb6cf5b42e96d2a94..644ec458325049cb97a181dea6c6857c3d35ef1f 100644
index 9b8925fe938962264fdf49e97abc660d7fe8476a..eb16e4b51a90224fdd0696ac57861dea541c6dab 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -412,7 +412,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -290,10 +290,10 @@ index e69213b43c8aa5a7c04add7a87482d531fbf52d2..f51ea103238b4a50439f5162a248cd9a
// CraftBukkit start - fire ExplosionPrimeEvent
ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 878757f6b5034ed54198102cf8d48ace580f856f..17a9ac588490232e8883d5df1619e1290e260a9b 100644
index 877a568b74e9f12decfeb70459e0cc0737f176cf..40645c931a10a3631a9240e25c823097afe89dec 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -326,6 +326,6 @@ public abstract class Projectile extends Entity {
@@ -298,6 +298,6 @@ public abstract class Projectile extends Entity {
public boolean mayInteract(Level world, BlockPos pos) {
Entity entity = this.getOwner();
@@ -302,7 +302,7 @@ index 878757f6b5034ed54198102cf8d48ace580f856f..17a9ac588490232e8883d5df1619e129
}
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
index 226b33921c90ca3904a7397a68dc8169948f8faa..e2a652277f2a63e0f0501db4137d7813e2d603c4 100644
index db6ae655400ea75dc8b8d53b31bf27e401518279..d2932bf496b0eff90e2f0738b23864cd6db5a495 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/SmallFireball.java
@@ -24,7 +24,7 @@ public class SmallFireball extends Fireball {
@@ -328,7 +328,7 @@ index 8613008090a9d7cf5cd7c2a598f2c725b5b0cdc6..a66e9826b8283366cec5adb54f79efee
// CraftBukkit start
// this.level.createExplosion(this, this.locX(), this.locY(), this.locZ(), 1.0F, false, explosion_effect);
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
index c5611465b1f9228a994c462c093cec94d7d08c2f..b7c672c0df699a4d0c78a2333eae3754b2a28bf7 100644
index 4bb9730b6a42702e91467f980b9f045585039db3..a1b9a11c3026a6fdd0f47ed27b99539ed18f0aaa 100644
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
@@ -312,7 +312,7 @@ public abstract class Raider extends PatrollingMonster {
@@ -341,7 +341,7 @@ index c5611465b1f9228a994c462c093cec94d7d08c2f..b7c672c0df699a4d0c78a2333eae3754
if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance())) {
diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java
index b4fd9af8805f451c87a91f319c15fa132b91faf7..e9087a46e401bc99b73c2cf2731fdac3e68719f8 100644
index 275e5334b1206a2dcafc3772c7e2ad0ebe3693f9..a68bf10353e5c19adfa86c2dd6290f2386af9a9d 100644
--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
@@ -164,7 +164,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
@@ -354,7 +354,7 @@ index b4fd9af8805f451c87a91f319c15fa132b91faf7..e9087a46e401bc99b73c2cf2731fdac3
}
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
index c61e8887e697806378686b3b1ffca2b154d1a074..732f9e1ebb99cb7201b972dbd4990abb5f327ebb 100644
index a3ff99c461dd862733816d9d1204cf8b347663fe..d92ea9f29b9d919871662977d3e3eb41ddf2eb35 100644
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
@@ -98,7 +98,7 @@ public class FarmBlock extends Block {
@@ -367,7 +367,7 @@ index c61e8887e697806378686b3b1ffca2b154d1a074..732f9e1ebb99cb7201b972dbd4990abb
org.bukkit.event.Cancellable cancellable;
if (entity instanceof Player) {
diff --git a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
index 5e22a1cd1a0902d63f091bbfb8ae518b12c66f09..8fad9dfd25794c4f202e2104e4ae32b0c436f438 100644
index 518d3832c36c9ecf1ed9267ffc1f926dc84b7989..af5933b886abf3fd17bfdb8c1cb1ea63f6f2a757 100644
--- a/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/PowderSnowBlock.java
@@ -72,7 +72,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {
@@ -380,10 +380,10 @@ index 5e22a1cd1a0902d63f091bbfb8ae518b12c66f09..8fad9dfd25794c4f202e2104e4ae32b0
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
index b1846a5c73f5be800ab1e4efe81e110e245b4726..08401d2908e41d1ce3968ab085c4c376da33181f 100644
index 1a12fee99a8b69fc6c01e1e217575c7c19e13155..4907e0acb7d01b7f57b75579e58ce743e3e000bb 100644
--- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java
@@ -204,7 +204,7 @@ public class TurtleEggBlock extends Block {
@@ -209,7 +209,7 @@ public class TurtleEggBlock extends Block {
return false;
}
if (entity instanceof LivingEntity && !(entity instanceof Player)) {
@@ -393,7 +393,7 @@ index b1846a5c73f5be800ab1e4efe81e110e245b4726..08401d2908e41d1ce3968ab085c4c376
return true;
// Purpur end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b595c8bea 100644
index 0b35b906360d964dbff288217340becddb14678c..a2c8bb6c6dfda88ddaf4e445106a0d4b52ba2858 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -109,8 +109,11 @@ public class PurpurWorldConfig {
@@ -444,7 +444,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
public boolean respawnAnchorExplode = true;
public double respawnAnchorExplosionPower = 5.0D;
public boolean respawnAnchorExplosionFire = true;
@@ -494,10 +507,12 @@ public class PurpurWorldConfig {
@@ -489,10 +502,12 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromExpOrbs = true;
public boolean turtleEggsBreakFromItems = true;
public boolean turtleEggsBreakFromMinecarts = true;
@@ -457,7 +457,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean waterInfinite = true;
@@ -696,6 +711,7 @@ public class PurpurWorldConfig {
@@ -691,6 +706,7 @@ public class PurpurWorldConfig {
public double creeperMaxHealth = 20.0D;
public double creeperChargedChance = 0.0D;
public boolean creeperAllowGriefing = true;
@@ -465,7 +465,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -708,6 +724,7 @@ public class PurpurWorldConfig {
@@ -703,6 +719,7 @@ public class PurpurWorldConfig {
creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth);
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
@@ -473,7 +473,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean dolphinRidable = false;
@@ -802,6 +819,7 @@ public class PurpurWorldConfig {
@@ -797,6 +814,7 @@ public class PurpurWorldConfig {
public double enderDragonMaxY = 320D;
public double enderDragonMaxHealth = 200.0D;
public boolean enderDragonAlwaysDropsFullExp = false;
@@ -481,7 +481,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -818,6 +836,7 @@ public class PurpurWorldConfig {
@@ -813,6 +831,7 @@ public class PurpurWorldConfig {
}
enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth);
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
@@ -489,7 +489,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean endermanRidable = false;
@@ -826,6 +845,7 @@ public class PurpurWorldConfig {
@@ -821,6 +840,7 @@ public class PurpurWorldConfig {
public double endermanMaxHealth = 40.0D;
public boolean endermanAllowGriefing = true;
public boolean endermanDespawnEvenWithBlock = false;
@@ -497,7 +497,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -838,6 +858,7 @@ public class PurpurWorldConfig {
@@ -833,6 +853,7 @@ public class PurpurWorldConfig {
endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth);
endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing);
endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock);
@@ -505,7 +505,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean endermiteRidable = false;
@@ -860,6 +881,7 @@ public class PurpurWorldConfig {
@@ -855,6 +876,7 @@ public class PurpurWorldConfig {
public boolean evokerRidableInWater = false;
public boolean evokerControllable = true;
public double evokerMaxHealth = 24.0D;
@@ -513,7 +513,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void evokerSettings() {
evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable);
evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater);
@@ -870,6 +892,7 @@ public class PurpurWorldConfig {
@@ -865,6 +887,7 @@ public class PurpurWorldConfig {
set("mobs.evoker.attributes.max_health", oldValue);
}
evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth);
@@ -521,7 +521,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean foxRidable = false;
@@ -878,6 +901,7 @@ public class PurpurWorldConfig {
@@ -873,6 +896,7 @@ public class PurpurWorldConfig {
public double foxMaxHealth = 10.0D;
public boolean foxTypeChangesWithTulips = false;
public int foxBreedingTicks = 6000;
@@ -529,7 +529,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void foxSettings() {
foxRidable = getBoolean("mobs.fox.ridable", foxRidable);
foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater);
@@ -890,6 +914,7 @@ public class PurpurWorldConfig {
@@ -885,6 +909,7 @@ public class PurpurWorldConfig {
foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth);
foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips);
foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks);
@@ -537,7 +537,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean ghastRidable = false;
@@ -1336,6 +1361,7 @@ public class PurpurWorldConfig {
@@ -1331,6 +1356,7 @@ public class PurpurWorldConfig {
public boolean piglinRidableInWater = false;
public boolean piglinControllable = true;
public double piglinMaxHealth = 16.0D;
@@ -545,7 +545,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1346,6 +1372,7 @@ public class PurpurWorldConfig {
@@ -1341,6 +1367,7 @@ public class PurpurWorldConfig {
set("mobs.piglin.attributes.max_health", oldValue);
}
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
@@ -553,7 +553,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean piglinBruteRidable = false;
@@ -1368,6 +1395,7 @@ public class PurpurWorldConfig {
@@ -1363,6 +1390,7 @@ public class PurpurWorldConfig {
public boolean pillagerRidableInWater = false;
public boolean pillagerControllable = true;
public double pillagerMaxHealth = 24.0D;
@@ -561,7 +561,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void pillagerSettings() {
pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable);
pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater);
@@ -1378,6 +1406,7 @@ public class PurpurWorldConfig {
@@ -1373,6 +1401,7 @@ public class PurpurWorldConfig {
set("mobs.pillager.attributes.max_health", oldValue);
}
pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth);
@@ -569,7 +569,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean polarBearRidable = false;
@@ -1424,6 +1453,7 @@ public class PurpurWorldConfig {
@@ -1419,6 +1448,7 @@ public class PurpurWorldConfig {
public double rabbitNaturalToast = 0.0D;
public double rabbitNaturalKiller = 0.0D;
public int rabbitBreedingTicks = 6000;
@@ -577,7 +577,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void rabbitSettings() {
rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable);
rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater);
@@ -1437,12 +1467,14 @@ public class PurpurWorldConfig {
@@ -1432,12 +1462,14 @@ public class PurpurWorldConfig {
rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast);
rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller);
rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks);
@@ -592,7 +592,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1453,6 +1485,7 @@ public class PurpurWorldConfig {
@@ -1448,6 +1480,7 @@ public class PurpurWorldConfig {
set("mobs.ravager.attributes.max_health", oldValue);
}
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
@@ -600,7 +600,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean salmonRidable = false;
@@ -1474,6 +1507,7 @@ public class PurpurWorldConfig {
@@ -1469,6 +1502,7 @@ public class PurpurWorldConfig {
public boolean sheepControllable = true;
public double sheepMaxHealth = 8.0D;
public int sheepBreedingTicks = 6000;
@@ -608,7 +608,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void sheepSettings() {
sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable);
sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater);
@@ -1485,6 +1519,7 @@ public class PurpurWorldConfig {
@@ -1480,6 +1514,7 @@ public class PurpurWorldConfig {
}
sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth);
sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks);
@@ -616,7 +616,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean shulkerRidable = false;
@@ -1507,6 +1542,7 @@ public class PurpurWorldConfig {
@@ -1502,6 +1537,7 @@ public class PurpurWorldConfig {
public boolean silverfishRidableInWater = false;
public boolean silverfishControllable = true;
public double silverfishMaxHealth = 8.0D;
@@ -624,7 +624,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void silverfishSettings() {
silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable);
silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater);
@@ -1517,6 +1553,7 @@ public class PurpurWorldConfig {
@@ -1512,6 +1548,7 @@ public class PurpurWorldConfig {
set("mobs.silverfish.attributes.max_health", oldValue);
}
silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth);
@@ -632,7 +632,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean skeletonRidable = false;
@@ -1593,6 +1630,7 @@ public class PurpurWorldConfig {
@@ -1588,6 +1625,7 @@ public class PurpurWorldConfig {
public int snowGolemSnowBallMax = 20;
public float snowGolemSnowBallModifier = 10.0F;
public double snowGolemAttackDistance = 1.25D;
@@ -640,7 +640,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void snowGolemSettings() {
snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable);
snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater);
@@ -1610,6 +1648,7 @@ public class PurpurWorldConfig {
@@ -1605,6 +1643,7 @@ public class PurpurWorldConfig {
snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax);
snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier);
snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance);
@@ -648,7 +648,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean squidRidable = false;
@@ -1778,6 +1817,7 @@ public class PurpurWorldConfig {
@@ -1771,6 +1810,7 @@ public class PurpurWorldConfig {
public int villagerBreedingTicks = 6000;
public boolean villagerClericsFarmWarts = false;
public boolean villagerClericFarmersThrowWarts = true;
@@ -656,7 +656,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1798,6 +1838,7 @@ public class PurpurWorldConfig {
@@ -1789,6 +1829,7 @@ public class PurpurWorldConfig {
villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks);
villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts);
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
@@ -664,7 +664,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean vindicatorRidable = false;
@@ -1861,6 +1902,7 @@ public class PurpurWorldConfig {
@@ -1852,6 +1893,7 @@ public class PurpurWorldConfig {
public double witherMaxHealth = 300.0D;
public float witherHealthRegenAmount = 1.0f;
public int witherHealthRegenDelay = 20;
@@ -672,7 +672,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -1878,6 +1920,7 @@ public class PurpurWorldConfig {
@@ -1869,6 +1911,7 @@ public class PurpurWorldConfig {
witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth);
witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount);
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
@@ -680,7 +680,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
}
public boolean witherSkeletonRidable = false;
@@ -1949,6 +1992,7 @@ public class PurpurWorldConfig {
@@ -1940,6 +1983,7 @@ public class PurpurWorldConfig {
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;
public boolean zombieAggressiveTowardsVillagerWhenLagging = true;
@@ -688,7 +688,7 @@ index edd79e3e05652b7fa5bbeefb85e391db3ccd6137..0a44f20e99bc3ba2ed3e2e78e476a33b
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -1964,6 +2008,7 @@ public class PurpurWorldConfig {
@@ -1955,6 +1999,7 @@ public class PurpurWorldConfig {
zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance);
zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens);
zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging);

View File

@@ -9,20 +9,20 @@ Normally, the sounds will only play when the block directly above is air.
With this patch enabled, players can place any block above the Note Block and it will still work.
diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java
index e5f2c3fefe22bc348eb50f0e9b2fed2f24bdede0..ce6701d46e28a24aecd348a4019aad5aa08f0b05 100644
index 58e8905a4b98e2e1ee372b99bdc3de9815063ac9..443bf39734ba2b0a7cdf0362d415ff176b2e8c85 100644
--- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java
@@ -61,7 +61,7 @@ public class NoteBlock extends Block {
@@ -64,7 +64,7 @@ public class NoteBlock extends Block {
}
private void playNote(Level world, BlockPos blockposition, BlockState data) { // CraftBukkit
private void playNote(@Nullable Entity entity, Level world, BlockPos blockposition, BlockState data) { // CraftBukkit
- if (world.getBlockState(blockposition.above()).isAir()) {
+ if (world.purpurConfig.noteBlockIgnoreAbove || world.getBlockState(blockposition.above()).isAir()) { // Purpur
// CraftBukkit start
// Paper start - move NotePlayEvent call to fix instrument/note changes
world.blockEvent(blockposition, this, 0, 0);
// org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); // Paper - move event into block event handler
// if (event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0a44f20e99bc3ba2ed3e2e78e476a33b595c8bea..5135ce3a370d9d613a79eecda007fa3459fabf9d 100644
index a2c8bb6c6dfda88ddaf4e445106a0d4b52ba2858..ce4e136ee8f1a196ceb4462a3c783622158a2fcd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -112,6 +112,7 @@ public class PurpurWorldConfig {

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index 19892cb3cb290add4f094dc87bb22106e4f07a24..bd4f980f68330fc46a02a6f4bb4403fac3a91919 100644
index 15c5cccfe02c924c02f605eb47dd0b420b189891..04bae5085756842ce88710646a17e9dc1aad5994 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -45,7 +45,15 @@ public class EndPortalBlock extends BaseEntityBlock {
@@ -38,7 +38,7 @@ index 19892cb3cb290add4f094dc87bb22106e4f07a24..bd4f980f68330fc46a02a6f4bb4403fa
ServerLevel worldserver = ((ServerLevel) world).getServer().getLevel(resourcekey);
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
index 82c132bc90381aab6a29d50319ff40e7383eb7f2..13a367d2b5f245f4dd92df03288dc40b81e19603 100644
index 51f0dc173ddb29c6928badbc3c3a68ff3677a0e1..352568607e16be8f0e5942acd0097b4b2cf13bbc 100644
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
@@ -86,7 +86,15 @@ public class NetherPortalBlock extends Block {
@@ -59,7 +59,7 @@ index 82c132bc90381aab6a29d50319ff40e7383eb7f2..13a367d2b5f245f4dd92df03288dc40b
EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
world.getCraftServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index a952f19530983ca9a72969ad25f9565a2a03688a..bb6f8db2f624fa5861fe860af7974c84104c2380 100644
index 5c7e30eb5e8a2a1ab18750a2cd2ec7364e8c52e0..ecd0ba252feb57cb1d60745e7750a67635e8bc7f 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -178,6 +178,14 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
@@ -78,10 +78,10 @@ index a952f19530983ca9a72969ad25f9565a2a03688a..bb6f8db2f624fa5861fe860af7974c84
blockEntity.teleportCooldown = 100;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 318456621faf484dbad479b2873ae647e0c0f037..83c8889137e566322ec4337b0e6d8b940cc2edbe 100644
index 3cc9dab362141fdf61bdcd542ffa5e5c11f99e24..51325f67c49680417b8b843135ec0e91481fe7fc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -564,6 +564,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -575,6 +575,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
location.checkFinite();
if (this.entity.isVehicle() || this.entity.isRemoved()) {
@@ -93,10 +93,10 @@ index 318456621faf484dbad479b2873ae647e0c0f037..83c8889137e566322ec4337b0e6d8b94
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 365358ef910594980f0126a4300a40bb2293e03c..bb0d196dc2e2ff6a2ccfda8b55a04fd6eaad0a97 100644
index eef64bca59a9b1558d83eb178e988d45281d4638..1948eda5fd4d6b8d8a9bdb8ee36fd9f12764525a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1154,6 +1154,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1116,6 +1116,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
if (entity.isVehicle()) {
@@ -108,7 +108,7 @@ index 365358ef910594980f0126a4300a40bb2293e03c..bb0d196dc2e2ff6a2ccfda8b55a04fd6
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5135ce3a370d9d613a79eecda007fa3459fabf9d..d0c983eacaff5d9314d767a8d58b5603fa336a50 100644
index ce4e136ee8f1a196ceb4462a3c783622158a2fcd..f1d92ae817a505b80c638e4f34134742346bb7e5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {

View File

@@ -12,7 +12,7 @@ necessary to trample in the first place. Feather Falling 1 requires
you to fall over 3+ blocks to trample. FF 2 requires 4+, etc.
diff --git a/src/main/java/net/minecraft/world/level/block/FarmBlock.java b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
index 732f9e1ebb99cb7201b972dbd4990abb5f327ebb..29a538964d31527c9d10e25716e99ac22775119d 100644
index d92ea9f29b9d919871662977d3e3eb41ddf2eb35..e5a3e3a4367dfb924624a913b816b3fd56e3fefd 100644
--- a/src/main/java/net/minecraft/world/level/block/FarmBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/FarmBlock.java
@@ -113,12 +113,20 @@ public class FarmBlock extends Block {
@@ -37,7 +37,7 @@ index 732f9e1ebb99cb7201b972dbd4990abb5f327ebb..29a538964d31527c9d10e25716e99ac2
if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) {
return;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d0c983eacaff5d9314d767a8d58b5603fa336a50..ee15bf8d8325977d6333e0d83ac2b16f4c78969e 100644
index f1d92ae817a505b80c638e4f34134742346bb7e5..3f81ed1f0e5744d15f2abe49d9421e2990415b5a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -444,10 +444,16 @@ public class PurpurWorldConfig {

View File

@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index f582265ec9dc5349183cbd5c6b1e3f2658166c02..d94e28c53df16ca969ac128886cdb60cfd712145 100644
index 1b2edc78ca8b0c734d4fb1e9dfa369c1c1abede6..57af4ce3c47ffcad7fe046218ebc915ab17cd40a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1642,7 +1642,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -1648,7 +1648,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return this.isInWater() || flag;
}
@@ -30,7 +30,7 @@ index f582265ec9dc5349183cbd5c6b1e3f2658166c02..d94e28c53df16ca969ac128886cdb60c
this.wasTouchingWater = false;
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014D)) {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 50370dc8697569a4e5cf8ec3714d227a59357d64..e9e24435057cff9c0af758ca2aa822c3b1c3593d 100644
index 29939e851e38fcd494c7556760191e0100bc2e07..1865fa0173dbd9362ba8186f0726f14d149d7602 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -98,10 +98,12 @@ public class ArmorStand extends LivingEntity {
@@ -46,7 +46,7 @@ index 50370dc8697569a4e5cf8ec3714d227a59357d64..e9e24435057cff9c0af758ca2aa822c3
this.handItems = NonNullList.withSize(2, ItemStack.EMPTY);
this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY);
this.headPose = ArmorStand.DEFAULT_HEAD_POSE;
@@ -995,4 +997,18 @@ public class ArmorStand extends LivingEntity {
@@ -994,4 +996,18 @@ public class ArmorStand extends LivingEntity {
}
// Paper end
// Paper end
@@ -66,7 +66,7 @@ index 50370dc8697569a4e5cf8ec3714d227a59357d64..e9e24435057cff9c0af758ca2aa822c3
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ee15bf8d8325977d6333e0d83ac2b16f4c78969e..178bb27f204760e4ca3ad919024b4bae74244cbd 100644
index 3f81ed1f0e5744d15f2abe49d9421e2990415b5a..729ba27c732d297ff7f1138426506998ae544726 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -98,10 +98,16 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix stuck in portals
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 4b0a0f18708c887ea339f078aea4c988b222ce0c..49adcc516e880c9d1a4926115c0f6fc0f757d7e2 100644
index 730a2f16fe9fea9662edf502419ad57387169c8f..ca1b2d02ec7a51fe2bee5037c09a0fdcf00ac58e 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1176,6 +1176,7 @@ public class ServerPlayer extends Player {
@@ -1185,6 +1185,7 @@ public class ServerPlayer extends Player {
playerlist.sendPlayerPermissionLevel(this);
worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
this.unsetRemoved();
@@ -17,10 +17,10 @@ index 4b0a0f18708c887ea339f078aea4c988b222ce0c..49adcc516e880c9d1a4926115c0f6fc0
// CraftBukkit end
this.setLevel(worldserver);
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index d94e28c53df16ca969ac128886cdb60cfd712145..1c996ff06017c178064877c5dd6bff591fa170f3 100644
index 57af4ce3c47ffcad7fe046218ebc915ab17cd40a..a7bd8be272376c4ec15603ee1dbc90cbbf455416 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2782,12 +2782,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2796,12 +2796,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
return Vec3.directionFromRotation(this.getRotationVector());
}
@@ -37,7 +37,7 @@ index d94e28c53df16ca969ac128886cdb60cfd712145..1c996ff06017c178064877c5dd6bff59
this.isInsidePortal = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 178bb27f204760e4ca3ad919024b4bae74244cbd..3fdcd6f04bd03fb65637b261e390ced9914c4bb1 100644
index 729ba27c732d297ff7f1138426506998ae544726..8ab2d2925ba46f4750070d14e2affc4223a73362 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -329,6 +329,7 @@ public class PurpurWorldConfig {

View File

@@ -20,10 +20,10 @@ index 5c64905e90ccca6e0b347241ddf9cc3f71058b8e..3bd7521b131b2b40f807bdc7ab95e64c
return;
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java
index 31930b5936dcaea92afc54a583efcd5c3cedac3b..9edd8b89abaa9a41dd50d859878703c02e514fd3 100644
index d60eb249c3cc893c8546ac99f7b25e545717335c..dca3b1b4099cab57c25c2df74e865c876709321d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
@@ -501,7 +501,7 @@ public class Cat extends TamableAnimal {
@@ -468,7 +468,7 @@ public class Cat extends TamableAnimal {
}
} else if (this.isFood(itemstack)) {
this.usePlayerItem(player, hand, itemstack);
@@ -33,10 +33,10 @@ index 31930b5936dcaea92afc54a583efcd5c3cedac3b..9edd8b89abaa9a41dd50d859878703c0
this.setOrderedToSit(true);
this.level.broadcastEntityEvent(this, (byte) 7);
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index c35644499f4501fb9d1f2ed3551949a38f3464ca..c266028b96dcdb4d6dbb161a5f16be0d38827a91 100644
index 55b14422fea113ea64717f64226aac142f6f60bd..11291851f11127f6781b3c77c0d59534606eb9dd 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -329,7 +329,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -330,7 +330,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
if (!this.level.isClientSide) {
@@ -46,10 +46,10 @@ index c35644499f4501fb9d1f2ed3551949a38f3464ca..c266028b96dcdb4d6dbb161a5f16be0d
this.level.broadcastEntityEvent(this, (byte) 7);
} else {
diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
index 79fdf8f0512fb9bff730b0a3674aba2f121dbb6f..303ac9f3941d6759b42ac1cae2586b4df3d9faaf 100644
index dd514cbf2f03b688eb4d8cd49052f1775d3adebb..ed33573a96e96d557156fbe2f725e3d65c7d5ec4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -538,7 +538,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -537,7 +537,7 @@ public class Wolf extends TamableAnimal implements NeutralMob {
}
// CraftBukkit - added event call and isCancelled check.
@@ -59,7 +59,7 @@ index 79fdf8f0512fb9bff730b0a3674aba2f121dbb6f..303ac9f3941d6759b42ac1cae2586b4d
this.navigation.stop();
this.setTarget((LivingEntity) null);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 75907514dde64d6eb35bd318b63decb1c11d178d..5e7d226a3510e453d4a0b52467ca0f07364ec2a9 100644
index 3616e81a44c10d94351520c66ed694abb98411ab..a33038ff82f8f1b33b091e7068a8a8d5ee186e30 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -111,6 +111,7 @@ public class PurpurWorldConfig {

View File

@@ -52,7 +52,7 @@ index f8863cabad1bd0c3c2c62b8e17612d9559237d68..06c6addfa2a8dab1ad52a3588e9aeba5
this.onDestroyedBy(source);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e7299341d4890d6354564be47e30814300858f74..da979391d05fbfae76db66e02ead184b7aa606ad 100644
index a33038ff82f8f1b33b091e7068a8a8d5ee186e30..3afbda85a14a392854344b9f8253087d467d6663 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -451,6 +451,35 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index d0cae88c3ccf5f9282f2e71525286f6625260374..fe742452cab6afd0db76072e8f5acffcf1ecce95 100644
index 34e1ee5f67027cd7301e22e966f65c838e249bf6..0bcf2f853add232526d92ec2099fa63c9fff6f5e 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -1133,6 +1133,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1130,6 +1130,7 @@ public class EnderDragon extends Mob implements Enemy {
@Override
protected boolean canRide(Entity entity) {
@@ -17,7 +17,7 @@ index d0cae88c3ccf5f9282f2e71525286f6625260374..fe742452cab6afd0db76072e8f5acffc
}
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 1aadac665d7389431d819f72bb05af82a4d08b8c..b947a9af4c3387aec9b7e62d5899fdae1ccfedbb 100644
index e0c960a07fcecec58fecdf88c190ab85b25a3658..3cdf02e3376a24afe7fff9ebb981f7ffffa4cc1f 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -737,6 +737,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -29,10 +29,10 @@ index 1aadac665d7389431d819f72bb05af82a4d08b8c..b947a9af4c3387aec9b7e62d5899fdae
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 451ace3507e54a6a38dc4f154ef0b5471f50f7b4..cdff9baf10df1f572de881f8cb79f9ebe7261903 100644
index 3afbda85a14a392854344b9f8253087d467d6663..bad1ac223d77cc178d78702a7f7d68c0fe226bee 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -898,6 +898,7 @@ public class PurpurWorldConfig {
@@ -893,6 +893,7 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsFullExp = false;
public boolean enderDragonBypassMobGriefing = false;
public boolean enderDragonTakeDamageFromWater = false;
@@ -40,7 +40,7 @@ index 451ace3507e54a6a38dc4f154ef0b5471f50f7b4..cdff9baf10df1f572de881f8cb79f9eb
private void enderDragonSettings() {
enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable);
enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater);
@@ -916,6 +917,7 @@ public class PurpurWorldConfig {
@@ -911,6 +912,7 @@ public class PurpurWorldConfig {
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing);
enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater);
@@ -48,7 +48,7 @@ index 451ace3507e54a6a38dc4f154ef0b5471f50f7b4..cdff9baf10df1f572de881f8cb79f9eb
}
public boolean endermanRidable = false;
@@ -2083,6 +2085,7 @@ public class PurpurWorldConfig {
@@ -2074,6 +2076,7 @@ public class PurpurWorldConfig {
public int witherHealthRegenDelay = 20;
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
@@ -56,7 +56,7 @@ index 451ace3507e54a6a38dc4f154ef0b5471f50f7b4..cdff9baf10df1f572de881f8cb79f9eb
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2102,6 +2105,7 @@ public class PurpurWorldConfig {
@@ -2093,6 +2096,7 @@ public class PurpurWorldConfig {
witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay);
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors!
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e01afeb407acb8cf865d2d223aefaf15b634c94d..d1ff93ffb591bb7c5a905c4794d19e0dd179346e 100644
index 535c4577c4fead700061020f0b946c0ee191f768..70b9a030a93946a1298ee9594fdd5217ef5a6bca 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1597,6 +1597,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1625,6 +1625,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
this.player.resetFallDistance();
}
@@ -22,7 +22,7 @@ index e01afeb407acb8cf865d2d223aefaf15b634c94d..d1ff93ffb591bb7c5a905c4794d19e0d
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
this.lastGoodX = this.player.getX();
this.lastGoodY = this.player.getY();
@@ -1630,6 +1637,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -1658,6 +1665,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
}
// Paper end - optimise out extra getCubes
@@ -36,27 +36,29 @@ index e01afeb407acb8cf865d2d223aefaf15b634c94d..d1ff93ffb591bb7c5a905c4794d19e0d
Iterable<VoxelShape> iterable = world.getCollisions(this.player, this.player.getBoundingBox().deflate(9.999999747378752E-6D));
VoxelShape voxelshape = Shapes.create(box.deflate(9.999999747378752E-6D));
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
index 9125deb86b856bcb5e1cd779773522e2fa4cb5f9..c7dead8b33c987501c0b16ea905a5088cd4f27dd 100644
index c4088446d30c3b25cf196f51fd394cd056be0495..8b03b8e58e16ab9b677ba14cf1d09b417cf369f5 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
@@ -46,6 +46,12 @@ public class DamageSource {
return getLocalizedDeathMessage(org.purpurmc.purpur.PurpurConfig.deathMsgStonecutter, entity);
}
}).bypassArmor();
@@ -38,6 +38,14 @@ public class DamageSource {
public static final DamageSource FREEZE = (new DamageSource("freeze")).bypassArmor();
public static final DamageSource FALLING_STALACTITE = (new DamageSource("fallingStalactite")).damageHelmet();
public static final DamageSource STALAGMITE = (new DamageSource("stalagmite")).bypassArmor().setIsFall();
+ // Purpur start
+ public static final DamageSource SCISSORS = (new DamageSource("scissors") {
+ @Override
+ public Component getLocalizedDeathMessage(LivingEntity entity) {
+ return getLocalizedDeathMessage(org.purpurmc.purpur.PurpurConfig.deathMsgRunWithScissors, entity);
+ }
+ }).bypassArmor();
// Purpur end
+ // Purpur end
private boolean damageHelmet;
private boolean bypassArmor;
private boolean bypassInvul;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 066c40a8a0e5d13fc39c5283b54fe424b8822f4f..5ab4a37fcdd74924e70f8de1ffafdb231e1ab317 100644
index 97108c2317a38e11d45fdbef448dca5cb3ddad1c..8f77f17fc8e2ce8e877b050e08fdc024e4e21184 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1132,6 +1132,10 @@ public class CraftEventFactory {
@@ -1128,6 +1128,10 @@ public class CraftEventFactory {
cause = DamageCause.FREEZE;
} else if (source == DamageSource.GENERIC) {
cause = DamageCause.CUSTOM;
@@ -68,7 +70,7 @@ index 066c40a8a0e5d13fc39c5283b54fe424b8822f4f..5ab4a37fcdd74924e70f8de1ffafdb23
if (cause != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 1eb8d599ebb70313fda467d943888f137b1fa745..994047373148cd23758998a3d161c6dc9e2b5349 100644
index 47f4c08c354c2d683dd0959c22c68eb78920a5da..cd2474c2bb19ef83a469daf8b28af7f9c14f0d81 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -177,6 +177,7 @@ public class PurpurConfig {
@@ -79,23 +81,21 @@ index 1eb8d599ebb70313fda467d943888f137b1fa745..994047373148cd23758998a3d161c6dc
private static void messages() {
cannotRideMob = getString("settings.messages.cannot-ride-mob", cannotRideMob);
afkBroadcastAway = getString("settings.messages.afk-broadcast-away", afkBroadcastAway);
@@ -187,11 +188,14 @@ public class PurpurConfig {
@@ -187,6 +188,12 @@ public class PurpurConfig {
demoCommandOutput = getString("settings.messages.demo-command-output", demoCommandOutput);
pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput);
tpsbarCommandOutput = getString("settings.messages.tpsbar-command-output", tpsbarCommandOutput);
+ dontRunWithScissors = getString("settings.messages.dont-run-with-scissors", dontRunWithScissors);
}
public static String deathMsgStonecutter = "<player> has sawed themself in half";
+ }
+
+ public static String deathMsgRunWithScissors = "<player> slipped and fell on their shears";
private static void deathMessages() {
deathMsgStonecutter = getString("settings.messages.death-message.stonecutter", deathMsgStonecutter);
+ private static void deathMessages() {
+ deathMsgRunWithScissors = getString("settings.messages.death-message.run-with-scissors", deathMsgRunWithScissors);
}
public static String serverModName = "Purpur";
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cdff9baf10df1f572de881f8cb79f9ebe7261903..3d7af5c4d09422bb528e244ab3ee6dff484d4d25 100644
index bad1ac223d77cc178d78702a7f7d68c0fe226bee..d9b51013633328cd75bab5c6033c0b6c56f25780 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -191,6 +191,8 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] One Punch Man!
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index dace52b3cae2ce20c10080612bf6d6b09e82bea1..bb114e9c8fb06c6530f302f5db5ba90eb048ff05 100644
index 1c5daf93cca4c54b35d08092a7662e88d5d18f6d..12610d678830e92d90f42a518a7eda251be9c936 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2169,6 +2169,20 @@ public abstract class LivingEntity extends Entity {
@@ -2180,6 +2180,20 @@ public abstract class LivingEntity extends Entity {
((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, Math.round(f2 * 10.0F));
}
@@ -30,7 +30,7 @@ index dace52b3cae2ce20c10080612bf6d6b09e82bea1..bb114e9c8fb06c6530f302f5db5ba90e
if (human) {
// PAIL: Be sure to drag all this code from the EntityHuman subclass each update.
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3d7af5c4d09422bb528e244ab3ee6dff484d4d25..6ca6a53c677cdace8b7e0147d56872adb0f6951b 100644
index d9b51013633328cd75bab5c6033c0b6c56f25780..4c80c6cc54ab24f969fb12352801bf8294efdd5e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -336,6 +336,7 @@ public class PurpurWorldConfig {

View File

@@ -8,7 +8,7 @@ Subject: [PATCH] Configurable Ender Pearl cooldown, damage, and Endermite RNG
- Endermite spawn chance
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index 0686af29d4835b35dd6f9e6780437a7fd48bbd3f..ba58797f4952b8fc17f06526e28119915c47d2e3 100644
index 22d5f5aac2f4c7ce8f490d4851ef3d637a9c7d06..33bfd33aa2fdf8e9da4dbd333721eb4449fddae4 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -69,7 +69,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
@@ -43,7 +43,7 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f
// Paper end
if (user instanceof net.minecraft.server.level.ServerPlayer) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index df0397ea8bc4396ede6b357577677b9ae1c2a557..e95fe1e812135d9adfd8cf6a23433528060e5123 100644
index 4c80c6cc54ab24f969fb12352801bf8294efdd5e..3738ab9fb98cadcb79c7d87d4948581f8277fd2c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -193,6 +193,10 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config to ignore nearby mobs when sleeping
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index ceb6d67079819b5ef293b030875666eb8de7095c..ac93883c891c641169434e883387388394b39cbd 100644
index ca1b2d02ec7a51fe2bee5037c09a0fdcf00ac58e..1b6a8932972862a5f2c4f0614362b5c3cf37b096 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1326,7 +1326,7 @@ public class ServerPlayer extends Player {
@@ -1335,7 +1335,7 @@ public class ServerPlayer extends Player {
return entitymonster.isPreventingPlayerRest(this);
});
@@ -18,7 +18,7 @@ index ceb6d67079819b5ef293b030875666eb8de7095c..ac93883c891c641169434e8833873883
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 093c3150e1fb88330f7c8a669440643f5931cdc0..9993677b92324bda36a01c673d1d47ce5b4f730d 100644
index 3738ab9fb98cadcb79c7d87d4948581f8277fd2c..d3ee82025c0e15398ff670951300d0d4ed2dec86 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -345,6 +345,7 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add back player spawned endermite API
diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
index 31cfaa059dc8df86027950e5db651560fcd51d32..c644acd4402e41ec1eab919f35e378a8285b9b08 100644
index df1d1085419b41920542260a75262b1a6ab3eb41..41d5465db97dee4ab5d0b7deb29f684ea605a80c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java
@@ -31,6 +31,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -47,7 +47,7 @@ index 31cfaa059dc8df86027950e5db651560fcd51d32..c644acd4402e41ec1eab919f35e378a8
@Override
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index ba58797f4952b8fc17f06526e28119915c47d2e3..1fe20aab5b0c129470c1563d5c0710f2a23895d2 100644
index 33bfd33aa2fdf8e9da4dbd333721eb4449fddae4..69dd0f6cb53b2538ae39952f53eb7fbcb69a4674 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -72,6 +72,7 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 2c637e8e93c553d51b2467de64b9d0b9bf9b8381..371cefe186dbb0643f7de4fabe40db9bdc9e1118 100644
index 74dff7ef5234f4b01fef7ccff5eeb2aafa82edc0..4df4aead6a0e69175dd9464d50a6a855a5ad470a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -123,7 +123,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -18,10 +18,10 @@ index 2c637e8e93c553d51b2467de64b9d0b9bf9b8381..371cefe186dbb0643f7de4fabe40db9b
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9993677b92324bda36a01c673d1d47ce5b4f730d..b99f3b2414594640ad5d88cc461ae62b463c1e2a 100644
index d3ee82025c0e15398ff670951300d0d4ed2dec86..7b00b367c895e200f11a99d4e2a0953defd8eb04 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -949,6 +949,8 @@ public class PurpurWorldConfig {
@@ -939,6 +939,8 @@ public class PurpurWorldConfig {
public boolean endermanDespawnEvenWithBlock = false;
public boolean endermanBypassMobGriefing = false;
public boolean endermanTakeDamageFromWater = true;
@@ -30,7 +30,7 @@ index 9993677b92324bda36a01c673d1d47ce5b4f730d..b99f3b2414594640ad5d88cc461ae62b
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -958,11 +960,17 @@ public class PurpurWorldConfig {
@@ -948,11 +950,17 @@ public class PurpurWorldConfig {
set("mobs.enderman.attributes.max-health", null);
set("mobs.enderman.attributes.max_health", oldValue);
}

View File

@@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra
Adds functionality to a useless item!
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 371cefe186dbb0643f7de4fabe40db9bdc9e1118..8713db4986d6db80c3422ead4f99203283e22e40 100644
index 4df4aead6a0e69175dd9464d50a6a855a5ad470a..3bf86f01a32237efb9b95fc9cd3ca0a570c6dcff 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -260,7 +260,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -20,10 +20,10 @@ index 371cefe186dbb0643f7de4fabe40db9bdc9e1118..8713db4986d6db80c3422ead4f992032
} else {
Vec3 vec3d = player.getViewVector(1.0F).normalize();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b99f3b2414594640ad5d88cc461ae62b463c1e2a..13ddf5fbec4c20af82be03f814004e99fcdb67d9 100644
index 7b00b367c895e200f11a99d4e2a0953defd8eb04..a5c25519d6a2fd11f957c425c6142195034e0e17 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -951,6 +951,8 @@ public class PurpurWorldConfig {
@@ -941,6 +941,8 @@ public class PurpurWorldConfig {
public boolean endermanTakeDamageFromWater = true;
public boolean endermanAggroEndermites = true;
public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false;
@@ -32,7 +32,7 @@ index b99f3b2414594640ad5d88cc461ae62b463c1e2a..13ddf5fbec4c20af82be03f814004e99
private void endermanSettings() {
endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable);
endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater);
@@ -971,6 +973,8 @@ public class PurpurWorldConfig {
@@ -961,6 +963,8 @@ public class PurpurWorldConfig {
endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater);
endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites);
endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Tick fluids config
diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
index 8497adcba2570da8875c322e751fca2fdad057e5..992430e38a3ffb3c0243a17c75432141937fcee5 100644
index f0cbb9e44b9434a69ea0ee7a5b403373d3680908..859bd95ccaf41ef594948eaaaebb4a78329b2ee9 100644
--- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
@@ -106,7 +106,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -29,14 +29,14 @@ index 8497adcba2570da8875c322e751fca2fdad057e5..992430e38a3ffb3c0243a17c75432141
@@ -139,7 +139,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@Override
public void neighborChanged(BlockState state, Level world, BlockPos pos, Block block, BlockPos fromPos, boolean notify) {
public void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {
- if (this.shouldSpreadLiquid(world, pos, state)) {
+ if (world.purpurConfig.tickFluids && this.shouldSpreadLiquid(world, pos, state)) { // Purpur
world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 13ddf5fbec4c20af82be03f814004e99fcdb67d9..ad950cbf50332004b03f9a19ac2d5739d60e1672 100644
index a5c25519d6a2fd11f957c425c6142195034e0e17..c04cd1b4d34f2a5904b67952c5d4283ce008408b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -123,6 +123,7 @@ public class PurpurWorldConfig {

View File

@@ -19,7 +19,7 @@ index 7b141c495095afcd9c8b04c059d692e829259e7a..ad30f2d678cfc4b0d693e84e6e152c63
List<Entity> list = this.llama.level.getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0D, 4.0D, 9.0D), (entity) -> {
EntityType<?> entityType = entity.getType();
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index f90f890c8a537be1912e9f131d1866cffcb580e1..68f28835905c018428d848c1fc9ffe7dabcac0d3 100644
index 57589a54362a4e0d23ba32957d5db47da2b9ec83..5506acea9b84a42eff7bdd593fec69c5031363b6 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -540,7 +540,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -32,10 +32,10 @@ index f90f890c8a537be1912e9f131d1866cffcb580e1..68f28835905c018428d848c1fc9ffe7d
this.caravanHead.caravanTail = this;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ad950cbf50332004b03f9a19ac2d5739d60e1672..0d6bab1005b93b683ea19ec9b249da1802c4bc51 100644
index c04cd1b4d34f2a5904b67952c5d4283ce008408b..b43dff5223728fe1f16fef4ccd1720d57be610c3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1270,6 +1270,7 @@ public class PurpurWorldConfig {
@@ -1260,6 +1260,7 @@ public class PurpurWorldConfig {
public double llamaMovementSpeedMax = 0.175D;
public int llamaBreedingTicks = 6000;
public boolean llamaTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index ad950cbf50332004b03f9a19ac2d5739d60e1672..0d6bab1005b93b683ea19ec9b249da18
private void llamaSettings() {
llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable);
llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater);
@@ -1289,6 +1290,7 @@ public class PurpurWorldConfig {
@@ -1279,6 +1280,7 @@ public class PurpurWorldConfig {
llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax);
llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks);
llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Config to make Creepers explode on death
Creepers exploded after being killed in the alpha days. This brings that back.
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 7c683693a806142c098dd31e6bc88a0b0a33ec66..cf585d2eaf743d38e06084609ff4c220e096cf71 100644
index 614baf25654c770a6cdac02f8cd4301a3ccdfb23..ca66ac64fd8fac10622e9458faecc4f05b9b629c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -64,6 +64,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -50,10 +50,10 @@ index 7c683693a806142c098dd31e6bc88a0b0a33ec66..cf585d2eaf743d38e06084609ff4c220
private void spawnLingeringCloud() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0d6bab1005b93b683ea19ec9b249da1802c4bc51..cfc14462c566096fb6eb2e037da11967c80334f0 100644
index b43dff5223728fe1f16fef4ccd1720d57be610c3..24940550e9f0778630d9f1ffa80638d39b94bb10 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -803,6 +803,7 @@ public class PurpurWorldConfig {
@@ -793,6 +793,7 @@ public class PurpurWorldConfig {
public boolean creeperAllowGriefing = true;
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index 0d6bab1005b93b683ea19ec9b249da1802c4bc51..cfc14462c566096fb6eb2e037da11967
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -817,6 +818,7 @@ public class PurpurWorldConfig {
@@ -807,6 +808,7 @@ public class PurpurWorldConfig {
creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing);
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable ravager griefable blocks list
diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
index f8ceb90e468203d995f9f3d9d041a9a43e94fa68..a2893e4a64c339af31641e9d8150b163fb79962c 100644
index 14b2d1adabcdf9281f314e3cd185ea22353e614e..1c821c354184a57d54a2976e5e00eb9ed0cefb72 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
@@ -205,7 +205,7 @@ public class Ravager extends Raider {
@@ -206,7 +206,7 @@ public class Ravager extends Raider {
BlockState iblockdata = this.level.getBlockState(blockposition);
Block block = iblockdata.getBlock();
@@ -18,7 +18,7 @@ index f8ceb90e468203d995f9f3d9d041a9a43e94fa68..a2893e4a64c339af31641e9d8150b163
}
}
diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java
index e9087a46e401bc99b73c2cf2731fdac3e68719f8..e054edf9e7c4eef231e155516433c6faeb2ca540 100644
index a68bf10353e5c19adfa86c2dd6290f2386af9a9d..38bc19edc2dcfa33b3191cfa3b69f00de13a5c4a 100644
--- a/src/main/java/net/minecraft/world/level/block/CropBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/CropBlock.java
@@ -164,7 +164,7 @@ public class CropBlock extends BushBlock implements BonemealableBlock {
@@ -31,10 +31,10 @@ index e9087a46e401bc99b73c2cf2731fdac3e68719f8..e054edf9e7c4eef231e155516433c6fa
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index cfc14462c566096fb6eb2e037da11967c80334f0..fb16a3541c86f73ea4922baa4e34788ee3c9112d 100644
index 24940550e9f0778630d9f1ffa80638d39b94bb10..5eab9497e568c86cbc795b78cb6a07406f329d6b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1654,6 +1654,7 @@ public class PurpurWorldConfig {
@@ -1644,6 +1644,7 @@ public class PurpurWorldConfig {
public double ravagerMaxHealth = 100.0D;
public boolean ravagerBypassMobGriefing = false;
public boolean ravagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index cfc14462c566096fb6eb2e037da11967c80334f0..fb16a3541c86f73ea4922baa4e34788e
private void ravagerSettings() {
ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable);
ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater);
@@ -1666,6 +1667,23 @@ public class PurpurWorldConfig {
@@ -1656,6 +1657,23 @@ public class PurpurWorldConfig {
ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth);
ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing);
ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 415b6c2bbf11c5a2ac75d18f52b93f80b9e14fe4..a0e5ec1a3129fdb4facfbef936b68c43d2d2f710 100644
index 7572f6d03d315ab4639be211c5ffc7682b326362..87e3c63ac67f2cbabcae55d76ecb5d5067479704 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -603,7 +603,7 @@ public class ServerPlayerGameMode {
@@ -567,7 +567,7 @@ public class ServerPlayerGameMode {
boolean flag1 = player.isSecondaryUseActive() && flag;
ItemStack itemstack1 = stack.copy();
@@ -18,10 +18,10 @@ index 415b6c2bbf11c5a2ac75d18f52b93f80b9e14fe4..a0e5ec1a3129fdb4facfbef936b68c43
if (enuminteractionresult.consumesAction()) {
diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
index fb8b8a9733ac50096d8406487ab1ae167ef5f7b1..16598ca0fd953b6af98dfcdb6716e2e128d14bab 100644
index 2b1983d61fd3ed856770146de5cdfd33b4f63a46..9315c819a0c113313a8e6f97e02b4d13c2cf62c0 100644
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
@@ -217,16 +217,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
@@ -220,16 +220,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
ItemStack itemstack = player.getItemInHand(hand);
if (i < 8 && ComposterBlock.COMPOSTABLES.containsKey(itemstack.getItem())) {
@@ -52,7 +52,7 @@ index fb8b8a9733ac50096d8406487ab1ae167ef5f7b1..16598ca0fd953b6af98dfcdb6716e2e1
return InteractionResult.sidedSuccess(world.isClientSide);
} else if (i == 8) {
ComposterBlock.extractProduce(state, world, pos, (Entity) null); // CraftBukkit - no event for players
@@ -236,6 +241,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
@@ -239,6 +244,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
}
}
@@ -75,7 +75,7 @@ index fb8b8a9733ac50096d8406487ab1ae167ef5f7b1..16598ca0fd953b6af98dfcdb6716e2e1
int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fb16a3541c86f73ea4922baa4e34788ee3c9112d..7a7fbc0f8d5f6e40c209666a83de9f7371f3e4d3 100644
index 5eab9497e568c86cbc795b78cb6a07406f329d6b..cc1074cee651e0a3b06943474fe2525dda3b0aa1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -462,6 +462,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 09800a0c113e1e70ad773e55bd370e7b3c36d463..285927ca0c196c554df725403ea2cfd6d84013db 100644
index b1a3615d3b9d27ca7c7d7a84d213ef16a984e3a8..678dd3f82c3e842450b9d701909bd69298dd8015 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -607,7 +607,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -621,7 +621,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
long j;
@@ -18,7 +18,7 @@ index 09800a0c113e1e70ad773e55bd370e7b3c36d463..285927ca0c196c554df725403ea2cfd6
j = this.levelData.getDayTime() + 24000L;
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime());
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7a7fbc0f8d5f6e40c209666a83de9f7371f3e4d3..2ef12f92c5f002294bc3bf81e429b60378bbd75f 100644
index cc1074cee651e0a3b06943474fe2525dda3b0aa1..a7c7b9607c53cc2735ce0d9a8003621a30fec0a5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -348,6 +348,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add config for villager trading
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 c926a513490b91e83802ab1aea6db90b93acd206..f810e1d00c084e9a1edaa367752c040032a58d75 100644
index 7962332c16f8cd83e5a05176b34674a3b3ff6a4b..ebc2a2f0518423dbc527d2b622d71320a56a34a9 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -372,7 +372,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -365,7 +365,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
return tryRide(player, hand); // Purpur
} else {
if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
@@ -31,10 +31,10 @@ index 6dd8856816bebb2766203589048cc68b3f5c8f5c..8d6930868a42b9fc98d7672bff433ec5
this.openTradingScreen(player, this.getDisplayName(), 1);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2ef12f92c5f002294bc3bf81e429b60378bbd75f..a1969d56e5c3088812737c591d6a59fd8875e6b9 100644
index a7c7b9607c53cc2735ce0d9a8003621a30fec0a5..454c2537b03add477174e01b8c4f0b74c512f3d6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2056,6 +2056,7 @@ public class PurpurWorldConfig {
@@ -2044,6 +2044,7 @@ public class PurpurWorldConfig {
public boolean villagerClericFarmersThrowWarts = true;
public boolean villagerBypassMobGriefing = false;
public boolean villagerTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index 2ef12f92c5f002294bc3bf81e429b60378bbd75f..a1969d56e5c3088812737c591d6a59fd
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2078,6 +2079,7 @@ public class PurpurWorldConfig {
@@ -2064,6 +2065,7 @@ public class PurpurWorldConfig {
villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts);
villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing);
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
@@ -50,7 +50,7 @@ index 2ef12f92c5f002294bc3bf81e429b60378bbd75f..a1969d56e5c3088812737c591d6a59fd
}
public boolean vindicatorRidable = false;
@@ -2107,6 +2109,7 @@ public class PurpurWorldConfig {
@@ -2093,6 +2095,7 @@ public class PurpurWorldConfig {
public boolean wanderingTraderFollowEmeraldBlock = false;
public boolean wanderingTraderCanBeLeashed = false;
public boolean wanderingTraderTakeDamageFromWater = false;
@@ -58,7 +58,7 @@ index 2ef12f92c5f002294bc3bf81e429b60378bbd75f..a1969d56e5c3088812737c591d6a59fd
private void wanderingTraderSettings() {
wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable);
wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater);
@@ -2120,6 +2123,7 @@ public class PurpurWorldConfig {
@@ -2106,6 +2109,7 @@ public class PurpurWorldConfig {
wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock);
wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed);
wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow infinity on crossbows
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index c0c211c7227f4ce5d1e0e433419425e6bb13046f..9122ce42d8349aabe31ab2bb025813963c72b8e4 100644
index 3b8629d31dc7bc66debe9c56593fbd071a6ddd11..25a95a64dfb79ef80e9d21f551d0cc5a50906d36 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -114,7 +114,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
@@ -112,7 +112,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
// Paper end
int i = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.MULTISHOT, projectile);
int j = i == 0 ? 1 : 3;
@@ -17,7 +17,7 @@ index c0c211c7227f4ce5d1e0e433419425e6bb13046f..9122ce42d8349aabe31ab2bb02581396
ItemStack itemstack1 = shooter.getProjectile(projectile);
ItemStack itemstack2 = itemstack1.copy();
@@ -305,7 +305,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
@@ -303,7 +303,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
for (int i = 0; i < list.size(); ++i) {
ItemStack itemstack1 = (ItemStack) list.get(i);
@@ -65,7 +65,7 @@ index 6f6106ca4d74d50a7b74b086adc96c58c7906cb6..d6417c1e77ac8823e18a179dc9f61757
public abstract boolean canEnchant(Item item);
diff --git a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
index 11c1eb0e0bc326b28dc0cab16f67c413cc52e98c..7073985656ae5b17a7489518747dc8584487e46e 100644
index d94ca202033edff679d9471cb33a314735f57be7..e883e966811ef47137a16f42969f7ff539a69265 100644
--- a/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
+++ b/src/main/java/org/bukkit/craftbukkit/enchantments/CraftEnchantment.java
@@ -59,6 +59,7 @@ public class CraftEnchantment extends Enchantment {
@@ -77,10 +77,10 @@ index 11c1eb0e0bc326b28dc0cab16f67c413cc52e98c..7073985656ae5b17a7489518747dc858
return null;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 7a2cb685dbf10b8a0c69e393b855c001a24d1767..e1c4af38a7eac438b3304f11121c754e451c5bd6 100644
index cd2474c2bb19ef83a469daf8b28af7f9c14f0d81..88ab4288b0853369d62ea6c5a87a49954147699e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -279,6 +279,7 @@ public class PurpurConfig {
@@ -277,6 +277,7 @@ public class PurpurConfig {
}
public static boolean allowInfinityMending = false;
@@ -88,7 +88,7 @@ index 7a2cb685dbf10b8a0c69e393b855c001a24d1767..e1c4af38a7eac438b3304f11121c754e
private static void enchantmentSettings() {
if (version < 5) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
@@ -286,6 +287,7 @@ public class PurpurConfig {
@@ -284,6 +285,7 @@ public class PurpurConfig {
set("settings.enchantment.allow-infinite-and-mending-together", null);
}
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 1c996ff06017c178064877c5dd6bff591fa170f3..91bbb0b3d5a3d702a5b68e7b8a4146d7ec0f47b5 100644
index a7bd8be272376c4ec15603ee1dbc90cbbf455416..9b90757dbe6689366b9ad03264a21b608e6ec55c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3016,7 +3016,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -3027,7 +3027,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
public int getMaxAirSupply() {
@@ -18,10 +18,10 @@ index 1c996ff06017c178064877c5dd6bff591fa170f3..91bbb0b3d5a3d702a5b68e7b8a4146d7
public int getAirSupply() {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 3f4b6fad360d56738066046feefce64a08947c0d..6155573d5e4ebee45ebbcacf71577c7a029d1b29 100644
index 12610d678830e92d90f42a518a7eda251be9c936..1d2536b5c410997b3a584b179f4c41a13fcbcfca 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -421,7 +421,7 @@ public abstract class LivingEntity extends Entity {
@@ -425,7 +425,7 @@ public abstract class LivingEntity extends Entity {
if (flag1) {
this.setAirSupply(this.decreaseAirSupply(this.getAirSupply()));
@@ -30,7 +30,7 @@ index 3f4b6fad360d56738066046feefce64a08947c0d..6155573d5e4ebee45ebbcacf71577c7a
this.setAirSupply(0);
Vec3 vec3d = this.getDeltaMovement();
@@ -433,7 +433,7 @@ public abstract class LivingEntity extends Entity {
@@ -437,7 +437,7 @@ public abstract class LivingEntity extends Entity {
this.level.addParticle(ParticleTypes.BUBBLE, this.getX() + d2, this.getY() + d3, this.getZ() + d4, vec3d.x, vec3d.y, vec3d.z);
}
@@ -40,7 +40,7 @@ index 3f4b6fad360d56738066046feefce64a08947c0d..6155573d5e4ebee45ebbcacf71577c7a
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a1969d56e5c3088812737c591d6a59fd8875e6b9..4f913ecf1d259badb7eaf584da57ff8327e0e66b 100644
index 454c2537b03add477174e01b8c4f0b74c512f3d6..0a76aefd53a52ab582ef2bf5f9c55f46e7439d34 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -158,6 +158,15 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index a0e5ec1a3129fdb4facfbef936b68c43d2d2f710..464e304c532c1af48914d3cfad86380e8b4a096d 100644
index 87e3c63ac67f2cbabcae55d76ecb5d5067479704..12d11659134410b2720a00297b796bba3357c89a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -430,6 +430,7 @@ public class ServerPlayerGameMode {
@@ -391,6 +391,7 @@ public class ServerPlayerGameMode {
}
return false;
}
@@ -47,10 +47,10 @@ index 18b603d646081926343dea108b55d641df1c2c34..fdbbd2e5d4fd970a4593b55f16bd0f82
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4f913ecf1d259badb7eaf584da57ff8327e0e66b..036b6f987a8fc966539795ab22bdf505e48bdd1f 100644
index 0a76aefd53a52ab582ef2bf5f9c55f46e7439d34..7a7a5ffbee371d92899beb3defee9e6ebf8a9e71 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -582,6 +582,11 @@ public class PurpurWorldConfig {
@@ -577,6 +577,11 @@ public class PurpurWorldConfig {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
}

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Config to disable hostile mob spawn on ice
diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java
index 1d66588cfe94d190a34dc376b4b5bff9461a3529..9459255dd06d71dc1728e440e501cb3c2dde616c 100644
index 37539f7680013ab99ed3313b82f9829617d17a71..01eb60c7086be32c64f119a1c492a11cd070a073 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Monster.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java
@@ -88,6 +88,14 @@ public abstract class Monster extends PathfinderMob implements Enemy {
@@ -89,6 +89,14 @@ public abstract class Monster extends PathfinderMob implements Enemy {
}
public static boolean isDarkEnoughToSpawn(ServerLevelAccessor world, BlockPos pos, Random random) {
public static boolean isDarkEnoughToSpawn(ServerLevelAccessor world, BlockPos pos, RandomSource random) {
+ // Purpur start
+ if (!world.getMinecraftWorld().purpurConfig.mobsSpawnOnPackedIce || !world.getMinecraftWorld().purpurConfig.mobsSpawnOnBlueIce) {
+ net.minecraft.world.level.block.state.BlockState spawnBlock = world.getBlockState(pos.below());
@@ -22,21 +22,22 @@ index 1d66588cfe94d190a34dc376b4b5bff9461a3529..9459255dd06d71dc1728e440e501cb3c
+ // Purpur end
if (world.getBrightness(LightLayer.SKY, pos) > random.nextInt(32)) {
return false;
} else if (world.getBrightness(LightLayer.BLOCK, pos) > (world.getLevel().paperConfig.maxBlockLightForMonsterSpawning >= 0 ? world.getLevel().paperConfig.maxBlockLightForMonsterSpawning : 0)) { // Paper - configurable max block light level
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 77ad69e86deb7b55d5d5bd96c92dc93b02c28be0..5f86eaacb5f2b17bdd145a188001807469e87393 100644
index 7a7a5ffbee371d92899beb3defee9e6ebf8a9e71..28cfb198b936c24bdad05ce5603847811335d911 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -541,8 +541,12 @@ public class PurpurWorldConfig {
@@ -540,6 +540,13 @@ public class PurpurWorldConfig {
furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath);
}
public boolean snowOnBlueIce = true;
+ public boolean mobsSpawnOnPackedIce = true;
+ public boolean mobsSpawnOnBlueIce = true;
private void iceSettings() {
snowOnBlueIce = getBoolean("blocks.blue_ice.allow-snow-formation", snowOnBlueIce);
+ private void iceSettings() {
+ mobsSpawnOnPackedIce = getBoolean("blocks.packed_ice.allow-mob-spawns", mobsSpawnOnPackedIce);
+ mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce);
}
+ }
+
public boolean lavaInfinite = false;
public int lavaInfiniteRequiredSources = 2;
public int lavaSpeedNether = 10;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config to show Armor Stand arms on spawn
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index e9e24435057cff9c0af758ca2aa822c3b1c3593d..8634431cabae82b71f409f02c84dda2d8eca8504 100644
index 1865fa0173dbd9362ba8186f0726f14d149d7602..fefb8c81df91c8ba30b0cf48735b47ab4f24f0a7 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -113,6 +113,7 @@ public class ArmorStand extends LivingEntity {
@@ -17,7 +17,7 @@ index e9e24435057cff9c0af758ca2aa822c3b1c3593d..8634431cabae82b71f409f02c84dda2d
public ArmorStand(Level world, double x, double y, double z) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5f86eaacb5f2b17bdd145a188001807469e87393..7857b39673a19474ebc22da92b7132682b8ca896 100644
index 28cfb198b936c24bdad05ce5603847811335d911..cbee1bd44f6eef66a6b2073e8a8bf051e1aca9fa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -101,6 +101,7 @@ public class PurpurWorldConfig {

View File

@@ -36,7 +36,7 @@ index 4abfeffa72bc70fd26908252ed596e816b4b9eb2..e5c20f40a63e8db215876c03ba6de972
} else {
DoorBlock blockdoor = (DoorBlock) iblockdata.getBlock();
diff --git a/src/main/java/net/minecraft/world/level/block/DoorBlock.java b/src/main/java/net/minecraft/world/level/block/DoorBlock.java
index 1df52a9c86c01696a8bc9f84a2082387160b3eeb..a4b9c5da133e2e8ad45d447e3f184cb12884961e 100644
index aa5289f652392515952cc10f70627ed2cdc6c398..d1d3323559f12f60ef0564e2218ca15313ab225f 100644
--- a/src/main/java/net/minecraft/world/level/block/DoorBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/DoorBlock.java
@@ -169,6 +169,7 @@ public class DoorBlock extends Block {
@@ -67,7 +67,7 @@ index 1df52a9c86c01696a8bc9f84a2082387160b3eeb..a4b9c5da133e2e8ad45d447e3f184cb1
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3871c1fe25309c1bc0a0361e640c16de4fbd4c1d..490b1147688313660a779997ae07c33da04a1676 100644
index cbee1bd44f6eef66a6b2073e8a8bf051e1aca9fa..3bcdbd82230d54f64a560882fbc85439af5e425f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -487,6 +487,16 @@ public class PurpurWorldConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config to allow for unsafe enchants
diff --git a/src/main/java/net/minecraft/server/commands/EnchantCommand.java b/src/main/java/net/minecraft/server/commands/EnchantCommand.java
index 514cc0e8805045549eacde6c280859aa2dc4a91d..f43fe5becfdbe9973b1cfa43c71bbad2ad61daac 100644
index 7c012f1e37b0085c0939797b0dae8996b4953ab8..155b0a1aa58b891e98a55e10f112f611ff0b35c5 100644
--- a/src/main/java/net/minecraft/server/commands/EnchantCommand.java
+++ b/src/main/java/net/minecraft/server/commands/EnchantCommand.java
@@ -44,7 +44,7 @@ public class EnchantCommand {
@@ -27,7 +27,7 @@ index 514cc0e8805045549eacde6c280859aa2dc4a91d..f43fe5becfdbe9973b1cfa43c71bbad2
++i;
} else if (targets.size() == 1) {
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
index 75e1f6b593a23c88f34cc25db580930066bfb7bb..6cb145ce59d26d8c743962166ff7478887dd4eef 100644
index 10cd589e427f847936f29e33edee3923a4661210..46fc3f504828e402dda50791d6867cb595de766b 100644
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
@@ -208,7 +208,7 @@ public class AnvilMenu extends ItemCombinerMenu {
@@ -58,10 +58,10 @@ index 75e1f6b593a23c88f34cc25db580930066bfb7bb..6cb145ce59d26d8c743962166ff74788
((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get()));
}
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index d823e4ceba2128ee588b2b344cc8f91cd6de1d13..4098ed7542fe484ee066c3cdc4720e61cc9acae0 100644
index 5b79adf2e036b4e9c2abd7cea53f1ef064252d7a..520c76a7a2baa3091224c96580a861a635ea11f2 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1157,6 +1157,12 @@ public final class ItemStack {
@@ -1153,6 +1153,12 @@ public final class ItemStack {
return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false;
}
@@ -75,10 +75,10 @@ index d823e4ceba2128ee588b2b344cc8f91cd6de1d13..4098ed7542fe484ee066c3cdc4720e61
this.getOrCreateTag().put(key, element);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 956be9847fc4f34643d9d563c0edc16dfa5ccbbe..12c0774967881168e7abc6fcb8db315458bbce8d 100644
index 88ab4288b0853369d62ea6c5a87a49954147699e..d3f793b285b8afbf030dd32b8829c986ee10eada 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -280,6 +280,8 @@ public class PurpurConfig {
@@ -278,6 +278,8 @@ public class PurpurConfig {
public static boolean allowInfinityMending = false;
public static boolean allowCrossbowInfinity = false;
@@ -87,7 +87,7 @@ index 956be9847fc4f34643d9d563c0edc16dfa5ccbbe..12c0774967881168e7abc6fcb8db3154
private static void enchantmentSettings() {
if (version < 5) {
boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false);
@@ -288,6 +290,8 @@ public class PurpurConfig {
@@ -286,6 +288,8 @@ public class PurpurConfig {
}
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity);

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Configurable sponge absorption
Allows the total area and radius of water blocks the sponge can absorb to be changed.
diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
index 11b40defd5f5362346fd8a70a1141cd6425cefa7..fe4fdd21ae22970ddd8c7f5cd72bdf88b9be0a20 100644
index 7304b2659eb45bc4bc9fa7c43e6ca07221d0fc73..d96e3fbc0fd4275c29e7e6154ef66e9ed1a5d829 100644
--- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
@@ -76,13 +76,13 @@ public class SpongeBlock extends Block {
@@ -43,10 +43,10 @@ index 11b40defd5f5362346fd8a70a1141cd6425cefa7..fe4fdd21ae22970ddd8c7f5cd72bdf88
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 490b1147688313660a779997ae07c33da04a1676..d31159c88273c0910c52db82853678102815192f 100644
index 3bcdbd82230d54f64a560882fbc85439af5e425f..3c8e0d9c26473759bc4b2428b17b995eeb8f9182 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -608,6 +608,13 @@ public class PurpurWorldConfig {
@@ -606,6 +606,13 @@ public class PurpurWorldConfig {
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
}
@@ -57,6 +57,6 @@ index 490b1147688313660a779997ae07c33da04a1676..d31159c88273c0910c52db8285367810
+ spongeAbsorptionRadius = getInt("blocks.sponge.absorption.radius", spongeAbsorptionRadius);
+ }
+
public float stonecutterDamage = 0.0F;
private void stonecutterSettings() {
stonecutterDamage = (float) getDouble("blocks.stonecutter.damage", stonecutterDamage);
public boolean turtleEggsBreakFromExpOrbs = true;
public boolean turtleEggsBreakFromItems = true;
public boolean turtleEggsBreakFromMinecarts = true;

View File

@@ -18,10 +18,10 @@ index 33df0ca406dc8321b76b393f317bbd1c8ebe6366..220513d3fd5645322886522ea4f6b8c5
entityarrow.setCritArrow(true);
}
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index 9122ce42d8349aabe31ab2bb025813963c72b8e4..ab8c02a9f619a9e8f9f19943d9262ff6b29ba225 100644
index 25a95a64dfb79ef80e9d21f551d0cc5a50906d36..2d30300de78de957358cfddac12294b308062e2a 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -65,7 +65,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
@@ -63,7 +63,7 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
ItemStack itemstack = user.getItemInHand(hand);
if (CrossbowItem.isCharged(itemstack)) {
@@ -96,7 +96,7 @@ index 5beaafec0759543d3bddf99028c97d0d005be209..086f746cc632a90c67a6c30ea9197c5b
entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 848fe557a3adf3cf6e66056bc14f4dd5f961355f..3efe20bf5a808c9a6a1d71a8ec6907ca96d9cda9 100644
index 3c8e0d9c26473759bc4b2428b17b995eeb8f9182..c185c158f8173fd3c675a699281ec2083f7dd675 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -417,6 +417,23 @@ public class PurpurWorldConfig {

View File

@@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b
} else {
int j = pos.getX();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3efe20bf5a808c9a6a1d71a8ec6907ca96d9cda9..b0439ccc8094637cb041370c5a37024f4f24d2d4 100644
index c185c158f8173fd3c675a699281ec2083f7dd675..57b8e78a8b625a8024eb780bf4136723970d94ef 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -594,6 +594,11 @@ public class PurpurWorldConfig {
@@ -592,6 +592,11 @@ public class PurpurWorldConfig {
powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing);
}

View File

@@ -18,23 +18,23 @@ Difficulties:
3 - hard
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
index 13a367d2b5f245f4dd92df03288dc40b81e19603..bd593ec55fcccc1e02cf5683891c5586d989952c 100644
index 352568607e16be8f0e5942acd0097b4b2cf13bbc..68de09debf05853bb4a2e74ad34d0af221eb5161 100644
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
@@ -55,7 +55,7 @@ public class NetherPortalBlock extends Block {
@Override
public void randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random) {
public void randomTick(BlockState state, ServerLevel world, BlockPos pos, RandomSource random) {
- if (world.spigotConfig.enableZombiePigmenPortalSpawns && world.dimensionType().natural() && world.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && random.nextInt(2000) < world.getDifficulty().getId()) { // Spigot
+ if (world.spigotConfig.enableZombiePigmenPortalSpawns && world.dimensionType().natural() && world.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && random.nextInt(world.purpurConfig.piglinPortalSpawnModifier) < world.getDifficulty().getId()) { // Spigot // Purpur
while (world.getBlockState(pos).is((Block) this)) {
pos = pos.below();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e53dc52d78f8aa4bd36c156f4e3f7caed77b1758..eb7faf2a5cf909f0570435bf8656421a44a50ff9 100644
index 57b8e78a8b625a8024eb780bf4136723970d94ef..b6edbf3b08ab571928d0d9f049a5131f786401df 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1595,6 +1595,7 @@ public class PurpurWorldConfig {
@@ -1588,6 +1588,7 @@ public class PurpurWorldConfig {
public double piglinMaxHealth = 16.0D;
public boolean piglinBypassMobGriefing = false;
public boolean piglinTakeDamageFromWater = false;
@@ -42,7 +42,7 @@ index e53dc52d78f8aa4bd36c156f4e3f7caed77b1758..eb7faf2a5cf909f0570435bf8656421a
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -1607,6 +1608,7 @@ public class PurpurWorldConfig {
@@ -1600,6 +1601,7 @@ public class PurpurWorldConfig {
piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth);
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config to change max number of bees
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
index 483dc52c793d9f90a35b1d091dd8ce71115e4640..9a6bf2159e2ad6a2204d81fd44e2b1888cd60c0c 100644
index 41c9f074203915c31c1ae7a160ce509c13383f84..a16a1df28258d605cf5908dbe19bda5d71ad4f45 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
@@ -42,7 +42,7 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -43,7 +43,7 @@ public class BeehiveBlockEntity extends BlockEntity {
private final List<BeehiveBlockEntity.BeeData> stored = Lists.newArrayList();
@Nullable
public BlockPos savedFlowerPos;
@@ -18,10 +18,10 @@ index 483dc52c793d9f90a35b1d091dd8ce71115e4640..9a6bf2159e2ad6a2204d81fd44e2b188
public BeehiveBlockEntity(BlockPos pos, BlockState state) {
super(BlockEntityType.BEEHIVE, pos, state);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 12c0774967881168e7abc6fcb8db315458bbce8d..bd996beb468823c3b7957038eff28382d8b2c2ee 100644
index d3f793b285b8afbf030dd32b8829c986ee10eada..d0ee748947cbe0d6f5747177b0ade0bc62bd99e0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -245,6 +245,7 @@ public class PurpurConfig {
@@ -243,6 +243,7 @@ public class PurpurConfig {
public static boolean enderChestSixRows = false;
public static boolean enderChestPermissionRows = false;
public static boolean cryingObsidianValidForPortalFrame = false;
@@ -29,7 +29,7 @@ index 12c0774967881168e7abc6fcb8db315458bbce8d..bd996beb468823c3b7957038eff28382
private static void blockSettings() {
if (version < 3) {
boolean oldValue = getBoolean("settings.barrel.packed-barrels", true);
@@ -276,6 +277,7 @@ public class PurpurConfig {
@@ -274,6 +275,7 @@ public class PurpurConfig {
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame);

View File

@@ -18,10 +18,10 @@ index a66e9826b8283366cec5adb54f79efee47d9df22..6cf8b12e94c17a8111eef5cc0157e4df
if (!event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d3e9b9c680a71b4e9cb3d1cb3a91a195cad336ba..894f9d48c54ca251e872ec514b6568a420a0b4f9 100644
index b6edbf3b08ab571928d0d9f049a5131f786401df..31e05cf3dbc075062d358150232cc681ae1eddc1 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2222,6 +2222,7 @@ public class PurpurWorldConfig {
@@ -2204,6 +2204,7 @@ public class PurpurWorldConfig {
public boolean witherBypassMobGriefing = false;
public boolean witherTakeDamageFromWater = false;
public boolean witherCanRideVehicles = false;
@@ -29,7 +29,7 @@ index d3e9b9c680a71b4e9cb3d1cb3a91a195cad336ba..894f9d48c54ca251e872ec514b6568a4
private void witherSettings() {
witherRidable = getBoolean("mobs.wither.ridable", witherRidable);
witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater);
@@ -2242,6 +2243,7 @@ public class PurpurWorldConfig {
@@ -2224,6 +2225,7 @@ public class PurpurWorldConfig {
witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing);
witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater);
witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Gamemode extra permissions
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
index 9d884da26e6515a85b0a8f8f611fafc17c19debc..cfceccc35ba1cc161f47b462504027d74a23b000 100644
index 25b38ae65250a0b3c34dfbf2d853f65368fd916f..82f4438032a42c35ed8940d850a35f64859a572e 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -195,6 +195,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
@@ -203,6 +203,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
}
// CraftBukkit end
@@ -31,10 +31,10 @@ index 9d884da26e6515a85b0a8f8f611fafc17c19debc..cfceccc35ba1cc161f47b462504027d7
return this.worldPosition;
}
diff --git a/src/main/java/net/minecraft/server/commands/GameModeCommand.java b/src/main/java/net/minecraft/server/commands/GameModeCommand.java
index 79f6089b934124c3309c6bee2e48b36b937252e0..d1e6ac2dcff3f058dc147c8ed4d16d273b7c40a9 100644
index 7882ee2b7813d437d3b7580f046f38e79fc9e7b6..afdf86826efc1c8c73a722d7709641b3fa16d542 100644
--- a/src/main/java/net/minecraft/server/commands/GameModeCommand.java
+++ b/src/main/java/net/minecraft/server/commands/GameModeCommand.java
@@ -49,6 +49,18 @@ public class GameModeCommand {
@@ -47,6 +47,18 @@ public class GameModeCommand {
}
private static int setMode(CommandContext<CommandSourceStack> context, Collection<ServerPlayer> targets, GameType gameMode) {
@@ -75,10 +75,10 @@ index 045ebc5533de7486d1975efe9d51ab368969178a..bfd82778acd2849a9f75b20b78a9a3f3
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands);
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index bd996beb468823c3b7957038eff28382d8b2c2ee..dd6468098ca71bfc4e4a41e019a5315dcada1e78 100644
index d0ee748947cbe0d6f5747177b0ade0bc62bd99e0..ba5570a33768b114d2123cc828cd6e705c7e974b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -228,6 +228,7 @@ public class PurpurConfig {
@@ -226,6 +226,7 @@ public class PurpurConfig {
public static String commandTPSBarTextColorMedium = "<gradient:#ffff55:#ffaa00><text></gradient>";
public static String commandTPSBarTextColorLow = "<gradient:#ff5555:#aa0000><text></gradient>";
public static int commandTPSBarTickInterval = 20;
@@ -86,7 +86,7 @@ index bd996beb468823c3b7957038eff28382d8b2c2ee..dd6468098ca71bfc4e4a41e019a5315d
private static void commandSettings() {
commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle);
commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name()));
@@ -239,6 +240,7 @@ public class PurpurConfig {
@@ -237,6 +238,7 @@ public class PurpurConfig {
commandTPSBarTextColorMedium = getString("settings.command.tpsbar.text-color.medium", commandTPSBarTextColorMedium);
commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow);
commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for changing the blocks that turn into dirt paths
diff --git a/src/main/java/net/minecraft/world/item/ShovelItem.java b/src/main/java/net/minecraft/world/item/ShovelItem.java
index e5562b407bba35ab93bf8bc3c22ac9d45e8353cb..c688bb73cd062f36524cfc231cb691f29f7998c2 100644
index 32995cb5efdad0bc34ecacacb78cccd21220ba8d..ee1ed9262e4f2a8f1889feb7b2d4f64a2efa63a5 100644
--- a/src/main/java/net/minecraft/world/item/ShovelItem.java
+++ b/src/main/java/net/minecraft/world/item/ShovelItem.java
@@ -33,7 +33,7 @@ public class ShovelItem extends DiggerItem {
@@ -34,7 +34,7 @@ public class ShovelItem extends DiggerItem {
return InteractionResult.PASS;
} else {
Player player = context.getPlayer();
@@ -18,7 +18,7 @@ index e5562b407bba35ab93bf8bc3c22ac9d45e8353cb..c688bb73cd062f36524cfc231cb691f2
if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) {
level.playSound(player, blockPos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d282948eac093a3a6bfebe9416c76339f629bc25..043c7c945b200e4731dc7947f6e0ffe34d77e8af 100644
index 31e05cf3dbc075062d358150232cc681ae1eddc1..04bb336f57476cd0234feb1e8f17daad5b2a10e3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -434,6 +434,21 @@ public class PurpurWorldConfig {

View File

@@ -36,11 +36,11 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 043c7c945b200e4731dc7947f6e0ffe34d77e8af..340ec59f0c02b4f10dc4664dcc6d1f4c7685af1e 100644
index 04bb336f57476cd0234feb1e8f17daad5b2a10e3..fccb81528dc58c1d3e204954f610e2e04165e958 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -611,6 +611,11 @@ public class PurpurWorldConfig {
magmaBlockDamageWithFrostWalker = getBoolean("blocks.magma-block.damage-with-frost-walker", magmaBlockDamageWithFrostWalker);
@@ -602,6 +602,11 @@ public class PurpurWorldConfig {
lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether);
}
+ public int pistonBlockPushLimit = 12;

View File

@@ -5,34 +5,34 @@ Subject: [PATCH] Configurable broadcast settings
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
index 048413655ef636b3dae687452fc5a95780058a22..f7f10a523cd08fddf1f14968cb1abd4aea56f421 100644
index 161a2b122843318a1bc411ea09ef83bc56bff0d1..fb1f9574235aec9e6b2e0fa289ce0853d352ff61 100644
--- a/src/main/java/net/minecraft/server/PlayerAdvancements.java
+++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java
@@ -301,6 +301,7 @@ public class PlayerAdvancements {
@@ -300,6 +300,7 @@ public class PlayerAdvancements {
advancement.getRewards().grant(this.player);
// Paper start - Add Adventure message to PlayerAdvancementDoneEvent
if (message != null && this.player.level.getGameRules().getBoolean(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)) {
+ if (org.purpurmc.purpur.PurpurConfig.advancementOnlyBroadcastToAffectedPlayer) this.player.sendMessage(message); else // Purpur
this.playerList.broadcastMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message), ChatType.SYSTEM, Util.NIL_UUID);
this.playerList.broadcastSystemMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(message), ChatType.SYSTEM);
// Paper end
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index ac93883c891c641169434e883387388394b39cbd..7eeaecfe6e1619d48af59982c75352c634ebc123 100644
index 1b6a8932972862a5f2c4f0614362b5c3cf37b096..ee95f92443a313852ebb880af302899c18394a15 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -915,6 +915,7 @@ public class ServerPlayer extends Player {
@@ -923,6 +923,7 @@ public class ServerPlayer extends Player {
});
Team scoreboardteambase = this.getTeam();
+ if (org.purpurmc.purpur.PurpurConfig.deathMessageOnlyBroadcastToAffectedPlayer) this.sendMessage(ichatbasecomponent); else // Purpur
if (scoreboardteambase != null && scoreboardteambase.getDeathMessageVisibility() != Team.Visibility.ALWAYS) {
if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) {
this.server.getPlayerList().broadcastToTeam(this, ichatbasecomponent);
this.server.getPlayerList().broadcastSystemToTeam(this, ichatbasecomponent);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index dd6468098ca71bfc4e4a41e019a5315dcada1e78..28033b120ef5abebca97f477f88afe8c17b89bda 100644
index ba5570a33768b114d2123cc828cd6e705c7e974b..01df902edf8cf11a6d66dcb6d5b59f633bc97f7a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -198,6 +198,18 @@ public class PurpurConfig {
@@ -196,6 +196,18 @@ public class PurpurConfig {
deathMsgRunWithScissors = getString("settings.messages.death-message.run-with-scissors", deathMsgRunWithScissors);
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Configurable mob blindness
Ported from https://github.com/raltsmc/mobblindness
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 82ef5fa5ca09fafff3c1720072158a3098b54496..4be548422d14ae4d8800e73c4e91f55f67a1bfee 100644
index 1d2536b5c410997b3a584b179f4c41a13fcbcfca..5a742e95da47208366e791a10ce1e82d0c3524b4 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -988,6 +988,17 @@ public abstract class LivingEntity extends Entity {
@@ -1013,6 +1013,17 @@ public abstract class LivingEntity extends Entity {
if (entitytypes == EntityType.SKELETON && itemstack.is(Items.SKELETON_SKULL) || entitytypes == EntityType.ZOMBIE && itemstack.is(Items.ZOMBIE_HEAD) || entitytypes == EntityType.CREEPER && itemstack.is(Items.CREEPER_HEAD)) {
d0 *= 0.5D;
}
@@ -28,7 +28,7 @@ index 82ef5fa5ca09fafff3c1720072158a3098b54496..4be548422d14ae4d8800e73c4e91f55f
return d0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index c5d82e9b51fd629219728cd78716d753de650ea6..fb33eb38503d9eb74ad65edfc2b75d0e2e558422 100644
index fccb81528dc58c1d3e204954f610e2e04165e958..ed7006fd22c9a9bbb519e75f8d4578b9bab3831e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -126,6 +126,7 @@ public class PurpurWorldConfig {

View File

@@ -59,10 +59,10 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..2cba35dcc479ed9ad3e698aa2e02b4aa
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index d3a26894b75a7222c6cd8208667fbb0d41d25118..48efc0d9cd8d55cb58e63115be8755af0d1d31d1 100644
index 01df902edf8cf11a6d66dcb6d5b59f633bc97f7a..a388dd5495b6021bf7e13ef3d5591e750ab9b9e5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -241,6 +241,7 @@ public class PurpurConfig {
@@ -239,6 +239,7 @@ public class PurpurConfig {
public static String commandTPSBarTextColorLow = "<gradient:#ff5555:#aa0000><text></gradient>";
public static int commandTPSBarTickInterval = 20;
public static boolean commandGamemodeRequiresPermission = false;
@@ -70,7 +70,7 @@ index d3a26894b75a7222c6cd8208667fbb0d41d25118..48efc0d9cd8d55cb58e63115be8755af
private static void commandSettings() {
commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle);
commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name()));
@@ -253,6 +254,7 @@ public class PurpurConfig {
@@ -251,6 +252,7 @@ public class PurpurConfig {
commandTPSBarTextColorLow = getString("settings.command.tpsbar.text-color.low", commandTPSBarTextColorLow);
commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval);
commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config for health to impact Creeper explosion radius
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index cf585d2eaf743d38e06084609ff4c220e096cf71..b0e5146f0cf33f8fbc97c4c51edee252ad06e6a9 100644
index ca66ac64fd8fac10622e9458faecc4f05b9b629c..09d41e2adef76a4d3fb68b3a3002572144c9044c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -366,9 +366,10 @@ public class Creeper extends Monster implements PowerableMob {
@@ -21,10 +21,10 @@ index cf585d2eaf743d38e06084609ff4c220e096cf71..b0e5146f0cf33f8fbc97c4c51edee252
if (!event.isCancelled()) {
this.dead = true;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index fb33eb38503d9eb74ad65edfc2b75d0e2e558422..6dfba9bbc2c25044e8c5a676259f439a2a5348ef 100644
index ed7006fd22c9a9bbb519e75f8d4578b9bab3831e..1d6f9204cc25eb882db5da5dbd1f67ef257a07ed 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -899,6 +899,7 @@ public class PurpurWorldConfig {
@@ -885,6 +885,7 @@ public class PurpurWorldConfig {
public boolean creeperBypassMobGriefing = false;
public boolean creeperTakeDamageFromWater = false;
public boolean creeperExplodeWhenKilled = false;
@@ -32,7 +32,7 @@ index fb33eb38503d9eb74ad65edfc2b75d0e2e558422..6dfba9bbc2c25044e8c5a676259f439a
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -914,6 +915,7 @@ public class PurpurWorldConfig {
@@ -900,6 +901,7 @@ public class PurpurWorldConfig {
creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing);
creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater);
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Iron golem calm anger options
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..1fcc7c27e905851871357423fc8185c882f838d8 100644
index 1f87f6879b9c23526a2d1b490959d60606657e02..6e4cb77ed0f0aefb2ce403f8ede0d3c04ebef833 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -101,6 +101,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -100,6 +100,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
protected void registerGoals() {
if (level.purpurConfig.ironGolemCanSwim) this.goalSelector.addGoal(0, new net.minecraft.world.entity.ai.goal.FloatGoal(this)); // Purpur
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -16,7 +16,7 @@ index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..1fcc7c27e905851871357423fc8185c8
this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.0D, true));
this.goalSelector.addGoal(2, new MoveTowardsTargetGoal(this, 0.9D, 32.0F));
this.goalSelector.addGoal(2, new MoveBackToVillageGoal(this, 0.6D, false));
@@ -313,6 +314,8 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -324,6 +325,8 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
itemstack.shrink(1);
}
@@ -26,10 +26,10 @@ index 13cdc3a97c7707c9cb41e3da6395b0022fd661aa..1fcc7c27e905851871357423fc8185c8
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6dfba9bbc2c25044e8c5a676259f439a2a5348ef..55686e45f7d8a92c5363f411548157236543e36a 100644
index 1d6f9204cc25eb882db5da5dbd1f67ef257a07ed..cf1cb69dbd020cd0e44c760d10a6aa3c7bd36c1e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1344,6 +1344,8 @@ public class PurpurWorldConfig {
@@ -1330,6 +1330,8 @@ public class PurpurWorldConfig {
public boolean ironGolemCanSwim = false;
public double ironGolemMaxHealth = 100.0D;
public boolean ironGolemTakeDamageFromWater = false;
@@ -38,7 +38,7 @@ index 6dfba9bbc2c25044e8c5a676259f439a2a5348ef..55686e45f7d8a92c5363f41154815723
private void ironGolemSettings() {
ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable);
ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater);
@@ -1356,6 +1358,8 @@ public class PurpurWorldConfig {
@@ -1342,6 +1344,8 @@ public class PurpurWorldConfig {
}
ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth);
ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Breedable parrots
diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
index c266028b96dcdb4d6dbb161a5f16be0d38827a91..661d8ce472a5f57107035ec32158aea30e1d181b 100644
index 11291851f11127f6781b3c77c0d59534606eb9dd..4f4df0f5459e3f62db4b15c57a536dc298b02877 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java
@@ -223,6 +223,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -224,6 +224,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
this.goalSelector.addGoal(0, new FloatGoal(this));
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
this.goalSelector.addGoal(1, new PanicGoal(this, 1.25D)); // Purpur
@@ -16,7 +16,7 @@ index c266028b96dcdb4d6dbb161a5f16be0d38827a91..661d8ce472a5f57107035ec32158aea3
this.goalSelector.addGoal(1, new LookAtPlayerGoal(this, Player.class, 8.0F));
this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this));
this.goalSelector.addGoal(2, new FollowOwnerGoal(this, 1.0D, 5.0F, 1.0F, true));
@@ -337,6 +338,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -338,6 +339,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
}
}
@@ -24,7 +24,7 @@ index c266028b96dcdb4d6dbb161a5f16be0d38827a91..661d8ce472a5f57107035ec32158aea3
return InteractionResult.sidedSuccess(this.level.isClientSide);
} else if (itemstack.is(Parrot.POISONOUS_FOOD)) {
if (!player.getAbilities().instabuild) {
@@ -362,7 +364,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -363,7 +365,7 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@Override
public boolean isFood(ItemStack stack) {
@@ -32,8 +32,8 @@ index c266028b96dcdb4d6dbb161a5f16be0d38827a91..661d8ce472a5f57107035ec32158aea3
+ return this.level.purpurConfig.parrotBreedable && Parrot.TAME_FOOD.contains(stack.getItem()); // Purpur
}
public static boolean checkParrotSpawnRules(EntityType<Parrot> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, Random random) {
@@ -379,13 +381,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
public static boolean checkParrotSpawnRules(EntityType<Parrot> type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
@@ -380,13 +382,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@Override
public boolean canMate(Animal other) {
@@ -50,10 +50,10 @@ index c266028b96dcdb4d6dbb161a5f16be0d38827a91..661d8ce472a5f57107035ec32158aea3
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 55686e45f7d8a92c5363f411548157236543e36a..90d0cbe43c6feffb3ab8d0c7be970a3a4219f869 100644
index cf1cb69dbd020cd0e44c760d10a6aa3c7bd36c1e..7485c50a148c08597ae21b0c0c4951cf5df99ae8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1514,6 +1514,7 @@ public class PurpurWorldConfig {
@@ -1500,6 +1500,7 @@ public class PurpurWorldConfig {
public double parrotMaxY = 320D;
public double parrotMaxHealth = 6.0D;
public boolean parrotTakeDamageFromWater = false;
@@ -61,7 +61,7 @@ index 55686e45f7d8a92c5363f411548157236543e36a..90d0cbe43c6feffb3ab8d0c7be970a3a
private void parrotSettings() {
parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable);
parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater);
@@ -1526,6 +1527,7 @@ public class PurpurWorldConfig {
@@ -1512,6 +1513,7 @@ public class PurpurWorldConfig {
}
parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth);
parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable powered rail boost modifier
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
index dac3f948481e444b3b641ab00eabca0cc8f17fa8..9645ae9425333025ced53d7c5ddc88f17c6be428 100644
index e3cf90b1506b5c6b96140799bc51c495ef5657ac..e2c75a715a1c2180344c19e5206a4586c15fb732 100644
--- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
+++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecart.java
@@ -712,7 +712,7 @@ public abstract class AbstractMinecart extends Entity {
@@ -714,7 +714,7 @@ public abstract class AbstractMinecart extends Entity {
if (d18 > 0.01D) {
double d20 = 0.06D;
@@ -18,7 +18,7 @@ index dac3f948481e444b3b641ab00eabca0cc8f17fa8..9645ae9425333025ced53d7c5ddc88f1
Vec3 vec3d5 = this.getDeltaMovement();
double d21 = vec3d5.x;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 90d0cbe43c6feffb3ab8d0c7be970a3a4219f869..28af6e298e78811ce4e53de5bdb3fb384a966924 100644
index 7485c50a148c08597ae21b0c0c4951cf5df99ae8..81db1f714160bad239648a6e77e2436a430947da 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -265,6 +265,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add config change multiplier critical damage 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
index 648eff612fa85430d90903d80325c99af5684ab0..b83695996d966310a2fe687baeaed66019754998 100644
index 120ac554b5ffd677731ed959f01da7478d37e2f3..fa3a2ef8ec1f2b7c22a27acfddda12cb5e666fe9 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1271,7 +1271,7 @@ public abstract class Player extends LivingEntity {
@@ -1314,7 +1314,7 @@ public abstract class Player extends LivingEntity {
flag2 = flag2 && !level.paperConfig.disablePlayerCrits; // Paper
flag2 = flag2 && !this.isSprinting();
if (flag2) {
@@ -18,7 +18,7 @@ index 648eff612fa85430d90903d80325c99af5684ab0..b83695996d966310a2fe687baeaed660
f += f1;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 28af6e298e78811ce4e53de5bdb3fb384a966924..32245cea169762eaccd076a953cfb3c67678b958 100644
index 81db1f714160bad239648a6e77e2436a430947da..f9075c3d3a0bf7da8c3969606f07129671833a2e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -364,6 +364,7 @@ public class PurpurWorldConfig {

View File

@@ -19,7 +19,7 @@ index 7e1edcc7b9f170b7c649437c2f0dd78c0bab9be4..5f8ac1fdac2c334951261f2b9702f5e7
BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 845a530c2c11615714e54303e5ef361cb2e1f296..de1b73bea9d61b14df93bfdb7cf86c242e475d8b 100644
index f9075c3d3a0bf7da8c3969606f07129671833a2e..2f77797e267a9da4327137c6abb68a9a9edf9ce8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -535,6 +535,11 @@ public class PurpurWorldConfig {

View File

@@ -5,20 +5,20 @@ Subject: [PATCH] Config for unverified username message
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index befcb501b4b1b6330bf3cd53e00e30b01efade6f..03eb7933f309b30fa8c243f4dd0a292b850bfda0 100644
index 9311130b5401cda69c62b5b5c23718554b94ab84..6ee6a35006a3d479ce916b3be297e3c1e38d7a8c 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -342,7 +342,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
@@ -402,7 +402,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
ServerLoginPacketListenerImpl.this.gameProfile = ServerLoginPacketListenerImpl.this.createFakeProfile(gameprofile);
ServerLoginPacketListenerImpl.this.state = ServerLoginPacketListenerImpl.State.READY_TO_ACCEPT;
} else {
- ServerLoginPacketListenerImpl.this.disconnect(new TranslatableComponent("multiplayer.disconnect.unverified_username"));
+ ServerLoginPacketListenerImpl.this.disconnect(org.purpurmc.purpur.PurpurConfig.unverifiedUsername.equals("default") ? new TranslatableComponent("multiplayer.disconnect.unverified_username") : io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(org.purpurmc.purpur.PurpurConfig.unverifiedUsername))); // Purpur
- ServerLoginPacketListenerImpl.this.disconnect(Component.translatable("multiplayer.disconnect.unverified_username"));
+ ServerLoginPacketListenerImpl.this.disconnect(org.purpurmc.purpur.PurpurConfig.unverifiedUsername.equals("default") ? Component.translatable("multiplayer.disconnect.unverified_username") : io.papermc.paper.adventure.PaperAdventure.asVanilla(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(org.purpurmc.purpur.PurpurConfig.unverifiedUsername))); // Purpur
ServerLoginPacketListenerImpl.LOGGER.error("Username '{}' tried to join with an invalid session", gameprofile.getName());
}
} catch (AuthenticationUnavailableException authenticationunavailableexception) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 7500d4b32b6d9f9996f6b382e88cf8b14beefea9..799340bb7e603805d009357cabe6bb9ff2219d88 100644
index a388dd5495b6021bf7e13ef3d5591e750ab9b9e5..8cd0f1ce58694922d186b483f16ccc45ebd8858d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -178,6 +178,7 @@ public class PurpurConfig {
@@ -36,4 +36,4 @@ index 7500d4b32b6d9f9996f6b382e88cf8b14beefea9..799340bb7e603805d009357cabe6bb9f
+ unverifiedUsername = getString("settings.messages.unverified-username", unverifiedUsername);
}
public static String deathMsgStonecutter = "<player> has sawed themself in half";
public static String deathMsgRunWithScissors = "<player> slipped and fell on their shears";

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Make anvil cumulative cost configurable
diff --git a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
index 6cb145ce59d26d8c743962166ff7478887dd4eef..605489718d38b0888c6d1954ab4ed2d67af51664 100644
index 46fc3f504828e402dda50791d6867cb595de766b..308bf5525775ab097dddc164e8a08122d571dc1e 100644
--- a/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AnvilMenu.java
@@ -341,7 +341,7 @@ public class AnvilMenu extends ItemCombinerMenu {
@@ -18,10 +18,10 @@ index 6cb145ce59d26d8c743962166ff7478887dd4eef..605489718d38b0888c6d1954ab4ed2d6
public void setItemName(String newItemName) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 799340bb7e603805d009357cabe6bb9ff2219d88..611fbde429a6742715c54dfd61f8b0a9877c18da 100644
index 8cd0f1ce58694922d186b483f16ccc45ebd8858d..d98f82fa5270c469526457d3b91413a8d9f35036 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -264,6 +264,7 @@ public class PurpurConfig {
@@ -262,6 +262,7 @@ public class PurpurConfig {
public static boolean enderChestPermissionRows = false;
public static boolean cryingObsidianValidForPortalFrame = false;
public static int beeInsideBeeHive = 3;
@@ -29,7 +29,7 @@ index 799340bb7e603805d009357cabe6bb9ff2219d88..611fbde429a6742715c54dfd61f8b0a9
private static void blockSettings() {
if (version < 3) {
boolean oldValue = getBoolean("settings.barrel.packed-barrels", true);
@@ -296,6 +297,7 @@ public class PurpurConfig {
@@ -294,6 +295,7 @@ public class PurpurConfig {
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame);
beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive);

View File

@@ -9,10 +9,10 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for
creative players) instead of routing it through the LootableBuilder.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 464e304c532c1af48914d3cfad86380e8b4a096d..302203e64277932ecb224edd3768dace07bd9d94 100644
index 12d11659134410b2720a00297b796bba3357c89a..95f047e6eb523d07e2b29c8f48e4b0d59d140144 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -461,7 +461,7 @@ public class ServerPlayerGameMode {
@@ -422,7 +422,7 @@ public class ServerPlayerGameMode {
ItemStack mainHandStack = null; // Paper
boolean isCorrectTool = false; // Paper
@@ -22,10 +22,10 @@ index 464e304c532c1af48914d3cfad86380e8b4a096d..302203e64277932ecb224edd3768dace
} else {
ItemStack itemstack = this.player.getMainHandItem();
diff --git a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
index ca5fb9d69ced45bbbdc1d5580b1aec4cf9f6e999..a9ad97f15c1a40cc20b08b7db955f81add70bf94 100644
index 0ca6d495005bded447c3f940dfd571a003301cb0..f4c47f7a7f2572dedbaee4890c98e1f3589a40c2 100644
--- a/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/ShulkerBoxBlock.java
@@ -122,7 +122,7 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
@@ -120,7 +120,7 @@ public class ShulkerBoxBlock extends BaseEntityBlock {
public void playerWillDestroy(Level world, BlockPos pos, BlockState state, Player player) {
BlockEntity blockEntity = world.getBlockEntity(pos);
if (blockEntity instanceof ShulkerBoxBlockEntity shulkerBoxBlockEntity) {
@@ -35,10 +35,10 @@ index ca5fb9d69ced45bbbdc1d5580b1aec4cf9f6e999..a9ad97f15c1a40cc20b08b7db955f81a
blockEntity.saveToItem(itemStack);
if (shulkerBoxBlockEntity.hasCustomName()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6ccfbcf813fb2262f4cdf33513cf9d208a7d2a00..476b6018dc378599902d895f05e3e5babcec1a9d 100644
index 2f77797e267a9da4327137c6abb68a9a9edf9ce8..93ae0620013ceef2f52ecd57a97e6397dcbc8e96 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -653,6 +653,11 @@ public class PurpurWorldConfig {
@@ -644,6 +644,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Bee can work when raining or at night
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 ff9ec34962cdcd018a56bd39310b345d0adaf5cd..ca7225e80e1612120ac9b197e0188a06df8049a7 100644
index 15b8992ef9f77153885cb27e305e854f8d775864..e8302e054b74ba6793b4b0928f0e87edb645d450 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
@@ -409,7 +409,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -410,7 +410,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
boolean wantsToEnterHive() {
if (this.stayOutOfHiveCountdown <= 0 && !this.beePollinateGoal.isPollinating() && !this.hasStung() && this.getTarget() == null) {
@@ -18,10 +18,10 @@ index ff9ec34962cdcd018a56bd39310b345d0adaf5cd..ca7225e80e1612120ac9b197e0188a06
return flag && !this.isHiveNearFire();
} else {
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
index 9a6bf2159e2ad6a2204d81fd44e2b1888cd60c0c..9eee0366ab790e3bd183eacdc3940ab5e10f01e2 100644
index a16a1df28258d605cf5908dbe19bda5d71ad4f45..7b82842b97ce795745cf6ee6399f618c55acbbf3 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
@@ -201,7 +201,7 @@ public class BeehiveBlockEntity extends BlockEntity {
@@ -203,7 +203,7 @@ public class BeehiveBlockEntity extends BlockEntity {
}
private static boolean releaseBee(Level world, BlockPos blockposition, BlockState iblockdata, BeehiveBlockEntity.BeeData tileentitybeehive_hivebee, @Nullable List<Entity> list, BeehiveBlockEntity.BeeReleaseStatus tileentitybeehive_releasestatus, @Nullable BlockPos blockposition1, boolean force) {
@@ -31,10 +31,10 @@ index 9a6bf2159e2ad6a2204d81fd44e2b1888cd60c0c..9eee0366ab790e3bd183eacdc3940ab5
return false;
} else {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 476b6018dc378599902d895f05e3e5babcec1a9d..020b86d6237745f45285f99b5bc2f6c9912c8277 100644
index 93ae0620013ceef2f52ecd57a97e6397dcbc8e96..15796f7fac9105433fc4bbae688d5683e9c3ba40 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -759,6 +759,8 @@ public class PurpurWorldConfig {
@@ -745,6 +745,8 @@ public class PurpurWorldConfig {
public double beeMaxHealth = 10.0D;
public int beeBreedingTicks = 6000;
public boolean beeTakeDamageFromWater = false;
@@ -43,7 +43,7 @@ index 476b6018dc378599902d895f05e3e5babcec1a9d..020b86d6237745f45285f99b5bc2f6c9
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -772,6 +774,8 @@ public class PurpurWorldConfig {
@@ -758,6 +760,8 @@ public class PurpurWorldConfig {
beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);

View File

@@ -6,33 +6,35 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 87e1a9aefa0c048c7f1619ad002538f7e2694bd7..affbe839ad996722b2b4b93f82c12f4bbe055f85 100644
index 9b90757dbe6689366b9ad03264a21b608e6ec55c..36d8613464803d84fa4c233613acc6921886962b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4509,5 +4509,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -4463,5 +4463,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
public boolean canSaveToDisk() {
return true;
}
+
+ // Purpur start - copied from Mob
+ public boolean isSunBurnTick() {
+ if (this.level.isDay()) {
+ float brightness = this.getBrightness();
+ BlockPos pos = new BlockPos(this.getX(), this.getEyeY(), this.getZ());
+ if (this.level.isDay() && !this.level.isClientSide) {
+ float f = this.getLightLevelDependentMagicValue();
+ BlockPos blockposition = new BlockPos(this.getX(), this.getEyeY(), this.getZ());
+ boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow;
+ if (brightness > 0.5F && this.random.nextFloat() * 30.0F < (brightness - 0.4F) * 2.0F && !flag && this.level.canSeeSky(pos)) {
+
+ if (f > 0.5F && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && !flag && this.level.canSeeSky(blockposition)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
// Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index f3d64418b8c3d441532e0504cf182d0a16fb700e..2e5f22c74ff2c8a3fdae7d507280875a7d15e423 100644
index 5a742e95da47208366e791a10ce1e82d0c3524b4..b2036c0bd97126290c581b0c48e25d8f9d809584 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -263,6 +263,7 @@ public abstract class LivingEntity extends Entity {
@@ -266,6 +266,7 @@ public abstract class LivingEntity extends Entity {
public boolean bukkitPickUpLoot;
public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper
public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event
@@ -40,7 +42,7 @@ index f3d64418b8c3d441532e0504cf182d0a16fb700e..2e5f22c74ff2c8a3fdae7d507280875a
@Override
public float getBukkitYaw() {
@@ -765,6 +766,7 @@ public abstract class LivingEntity extends Entity {
@@ -790,6 +791,7 @@ public abstract class LivingEntity extends Entity {
dataresult.resultOrPartial(logger::error).ifPresent((nbtbase) -> {
nbt.put("Brain", nbtbase);
});
@@ -48,7 +50,7 @@ index f3d64418b8c3d441532e0504cf182d0a16fb700e..2e5f22c74ff2c8a3fdae7d507280875a
}
@Override
@@ -840,6 +842,11 @@ public abstract class LivingEntity extends Entity {
@@ -865,6 +867,11 @@ public abstract class LivingEntity extends Entity {
this.brain = this.makeBrain(new Dynamic(NbtOps.INSTANCE, nbt.get("Brain")));
}
@@ -60,7 +62,7 @@ index f3d64418b8c3d441532e0504cf182d0a16fb700e..2e5f22c74ff2c8a3fdae7d507280875a
}
// CraftBukkit start
@@ -3447,6 +3454,27 @@ public abstract class LivingEntity extends Entity {
@@ -3458,6 +3465,27 @@ public abstract class LivingEntity extends Entity {
this.hurt(DamageSource.DROWN, 1.0F);
}
@@ -89,15 +91,15 @@ index f3d64418b8c3d441532e0504cf182d0a16fb700e..2e5f22c74ff2c8a3fdae7d507280875a
public boolean isSensitiveToWater() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 6d11daac5f0d0d119fb6854089457d158ab6550e..d016e5c833a68d4c0d2eba72b7a11f7d400a26de 100644
index ce72ba463449958ddc798feea3824a97fbba0bed..f689085fae18cd7d8c9187fdeb1b684b17b98afc 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1659,17 +1659,7 @@ public abstract class Mob extends LivingEntity {
@@ -1673,17 +1673,7 @@ public abstract class Mob extends LivingEntity {
}
public boolean isSunBurnTick() {
- if (this.level.isDay() && !this.level.isClientSide) {
- float f = this.getBrightness();
- float f = this.getLightLevelDependentMagicValue();
- BlockPos blockposition = new BlockPos(this.getX(), this.getEyeY(), this.getZ());
- boolean flag = this.isInWaterRainOrBubble() || this.isInPowderSnow || this.wasInPowderSnow;
-
@@ -112,10 +114,10 @@ index 6d11daac5f0d0d119fb6854089457d158ab6550e..d016e5c833a68d4c0d2eba72b7a11f7d
@Override
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 a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a287bce0c 100644
index 4188d8b564999ba3befa53e78f103a6d2777845f..fffdea563dbe48ce8c1b13cbe0d052940fa9f571 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -64,6 +64,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -65,6 +65,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
protected AbstractSkeleton(EntityType<? extends AbstractSkeleton> type, Level world) {
super(type, world);
this.reassessWeaponGoal();
@@ -123,7 +125,7 @@ index a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a
}
@Override
@@ -99,35 +100,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -100,35 +101,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
}
// Paper start
@@ -161,7 +163,7 @@ index a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a
super.aiStep();
}
@@ -188,7 +168,6 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -191,7 +171,6 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
} else {
this.goalSelector.addGoal(4, this.meleeGoal);
}
@@ -169,7 +171,7 @@ index a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a
}
}
@@ -232,7 +211,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -235,7 +214,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
this.reassessWeaponGoal();
// Paper start
if (nbt.contains("Paper.ShouldBurnInDay")) {
@@ -178,7 +180,7 @@ index a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a
}
// Paper end
}
@@ -241,7 +220,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -244,7 +223,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@Override
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
@@ -188,7 +190,7 @@ index a60ca5d69a9734c7979f953bd56c05c7016356d2..193622015c6d3dbff787061e13fa098a
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java
index 065005c13c2bff341402fc962d19148da27bc3c2..e394b6427329f48a85a277eeb8336b12499525ee 100644
index 47e4f62d177c14ceffeb13a3fee5bfa342da7184..bcbce83f9e304809fb946f80c9dd32c4a17a7afb 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Husk.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java
@@ -20,6 +20,7 @@ public class Husk extends Zombie {
@@ -273,7 +275,7 @@ index e7e4d87fb8a5276fd617afc4e0b925100abf3f76..42919b2267eed71e29830a96afdd3be1
// Paper end
private static enum AttackPhase {
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 52e6eb5269249e586683de647c350651e2c96c91..2e9eaa19aaf643c09bc1fea04fe37388c02845e7 100644
index a68bced3a278f082680994a13920f97d82cdbd42..8f88e320d7165cb56172d6a1bfa4bf3c5c2a9162 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -93,11 +93,12 @@ public class Zombie extends Monster {
@@ -349,10 +351,10 @@ index 52e6eb5269249e586683de647c350651e2c96c91..2e9eaa19aaf643c09bc1fea04fe37388
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 83c8889137e566322ec4337b0e6d8b940cc2edbe..d575da51b4f1318734ebf26a3730871134e28102 100644
index 51325f67c49680417b8b843135ec0e91481fe7fc..e24261f2ddc3de614feb9ae38e7e04c57ea7364b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -199,6 +199,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -203,6 +203,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
this.entity = entity;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config MobEffect by world
diff --git a/src/main/java/net/minecraft/world/effect/MobEffect.java b/src/main/java/net/minecraft/world/effect/MobEffect.java
index 8bbb9bdcf95989f1737714655f6f6a269d46d7f2..8d569eb2ec1b2bdbd415094ae04ae531dfdeafae 100644
index 17ffab92f4ae2c06fa9f9249a474d4b6c9c55090..bb15cf2aa35ce8754bba56f5b312d92b1a50c9f8 100644
--- a/src/main/java/net/minecraft/world/effect/MobEffect.java
+++ b/src/main/java/net/minecraft/world/effect/MobEffect.java
@@ -49,16 +49,16 @@ public class MobEffect {
@@ -61,16 +61,16 @@ public class MobEffect {
public void applyEffectTick(LivingEntity entity, int amplifier) {
if (this == MobEffects.REGENERATION) {
if (entity.getHealth() < entity.getMaxHealth()) {
@@ -30,7 +30,7 @@ index 8bbb9bdcf95989f1737714655f6f6a269d46d7f2..8d569eb2ec1b2bdbd415094ae04ae531
} else if (this == MobEffects.SATURATION && entity instanceof Player) {
if (!entity.level.isClientSide) {
// CraftBukkit start
@@ -68,7 +68,7 @@ public class MobEffect {
@@ -80,7 +80,7 @@ public class MobEffect {
org.bukkit.event.entity.FoodLevelChangeEvent event = CraftEventFactory.callFoodLevelChangeEvent(entityhuman, amplifier + 1 + oldFoodLevel);
if (!event.isCancelled()) {
@@ -40,7 +40,7 @@ index 8bbb9bdcf95989f1737714655f6f6a269d46d7f2..8d569eb2ec1b2bdbd415094ae04ae531
((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8c41f8e4c88596ad225cfa48e69fa0ecf6d10766..5c403c34d4a741d4a4624d76554991f248fbc717 100644
index 15796f7fac9105433fc4bbae688d5683e9c3ba40..a444bbe09709a01dc8785449eacfe6364b3cdf95 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -321,6 +321,21 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Beacon Activation Range Configurable
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
index 8d5c9813010a0256bd2712a1eabbc91f0f473a41..97b106ccac4e37260444468f4f774efcfb61788d 100644
index 5f6eeb36f57bd342b18590c8f0ffb668d2bf273c..59259dd3d8d8fd02c02d7435a4443779984fe33f 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BeaconBlockEntity.java
@@ -83,6 +83,16 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider {
@@ -82,6 +82,16 @@ public class BeaconBlockEntity extends BlockEntity implements MenuProvider {
public double getEffectRange() {
if (this.effectRange < 0) {
@@ -26,7 +26,7 @@ index 8d5c9813010a0256bd2712a1eabbc91f0f473a41..97b106ccac4e37260444468f4f774efc
} else {
return effectRange;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1f4857e05643942b44a2506aa22301903f2e9d37..42db30881bda2917783e14210df3f74c72f12193 100644
index a444bbe09709a01dc8785449eacfe6364b3cdf95..5d548c0e03e01aaf08b0a7f7368a7683c1e6eb2b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -507,6 +507,17 @@ public class PurpurWorldConfig {

View File

@@ -27,10 +27,10 @@ index 318ea6ebf4c13a984b3815f00bf6cb3856ff6fe0..ae35add70d25c6c202e24237d6626665
}
// Paper end - fix sand duping
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 42db30881bda2917783e14210df3f74c72f12193..1f864bdc1e6d8cc389c0c9bccafb9ef596ce366a 100644
index 5d548c0e03e01aaf08b0a7f7368a7683c1e6eb2b..19fca7b84002b023cd9b9b2493f37a4178b57b51 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -679,6 +679,11 @@ public class PurpurWorldConfig {
@@ -670,6 +670,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index affbe839ad996722b2b4b93f82c12f4bbe055f85..2c60091945aa3510d34c21b31827cb0b7f302ec2 100644
index 36d8613464803d84fa4c233613acc6921886962b..0457a83fef4147623c8478dcb3aafb52d64a55e8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2833,7 +2833,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -2847,7 +2847,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
}
this.processPortalCooldown();
@@ -18,7 +18,7 @@ index affbe839ad996722b2b4b93f82c12f4bbe055f85..2c60091945aa3510d34c21b31827cb0b
}
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index bd4f980f68330fc46a02a6f4bb4403fac3a91919..8601ea0575323ea7cf07c4909a495bf5b1d10162 100644
index 04bae5085756842ce88710646a17e9dc1aad5994..e7658fa9806701505e15cbf1d28ea3bd2ed6f113 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -61,6 +61,22 @@ public class EndPortalBlock extends BaseEntityBlock {
@@ -45,7 +45,7 @@ index bd4f980f68330fc46a02a6f4bb4403fac3a91919..8601ea0575323ea7cf07c4909a495bf5
entity.portalWorld = ((ServerLevel)world);
entity.portalBlock = pos.immutable();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1f864bdc1e6d8cc389c0c9bccafb9ef596ce366a..90fb53ea2de11f24024240fa35bd4dd4da333d0e 100644
index 19fca7b84002b023cd9b9b2493f37a4178b57b51..7459fb8fa0e3b14d58e8bb5e89bc4fc2237e2011 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -621,6 +621,11 @@ public class PurpurWorldConfig {
@@ -57,6 +57,6 @@ index 1f864bdc1e6d8cc389c0c9bccafb9ef596ce366a..90fb53ea2de11f24024240fa35bd4dd4
+ endPortalSafeTeleporting = getBoolean("blocks.end_portal.safe-teleporting", endPortalSafeTeleporting);
+ }
+
public boolean snowOnBlueIce = true;
public boolean mobsSpawnOnPackedIce = true;
public boolean mobsSpawnOnBlueIce = true;
private void iceSettings() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Flying Fall Damage API
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 b83695996d966310a2fe687baeaed66019754998..eda18bda0b8332c5b1d9c260e748cca86d32a875 100644
index fa3a2ef8ec1f2b7c22a27acfddda12cb5e666fe9..e8b1dd7f413a27fa5d495a03bc725cead85a2c34 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -182,6 +182,7 @@ public abstract class Player extends LivingEntity {
@@ -187,6 +187,7 @@ public abstract class Player extends LivingEntity {
public boolean affectsSpawning = true;
// Paper end
public int sixRowEnderchestSlotCount = -1; // Purpur
@@ -16,7 +16,7 @@ index b83695996d966310a2fe687baeaed66019754998..eda18bda0b8332c5b1d9c260e748cca8
// CraftBukkit start
public boolean fauxSleeping;
@@ -1745,7 +1746,7 @@ public abstract class Player extends LivingEntity {
@@ -1793,7 +1794,7 @@ public abstract class Player extends LivingEntity {
@Override
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
@@ -26,10 +26,10 @@ index b83695996d966310a2fe687baeaed66019754998..eda18bda0b8332c5b1d9c260e748cca8
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index bb0d196dc2e2ff6a2ccfda8b55a04fd6eaad0a97..d1e4c0253800ca0aaf83f106353cfb4c5b99b3f8 100644
index 1948eda5fd4d6b8d8a9bdb8ee36fd9f12764525a..3747a3b47735a26a86651677579c20a5eb6a915f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2848,5 +2848,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2819,5 +2819,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -5,23 +5,23 @@ Subject: [PATCH] Make lightning rod range configurable
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 285927ca0c196c554df725403ea2cfd6d84013db..24b800d99fda57154c23352b1c8889f7cd2cba36 100644
index 678dd3f82c3e842450b9d701909bd69298dd8015..e584bcdca9ed8e3ccb3969b45011df3eb7624689 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -915,7 +915,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return villageplacetype == PoiType.LIGHTNING_ROD;
@@ -913,7 +913,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return holder.is(PoiTypes.LIGHTNING_ROD);
}, (blockposition1) -> {
return blockposition1.getY() == this.getLevel().getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;
return blockposition1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;
- }, pos, 128, PoiManager.Occupancy.ANY);
+ }, pos, org.purpurmc.purpur.PurpurConfig.lightningRodRange, PoiManager.Occupancy.ANY);
return optional.map((blockposition1) -> {
return blockposition1.above(1);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 611fbde429a6742715c54dfd61f8b0a9877c18da..792255c3f9499180a746175bf07f2890577332b5 100644
index d98f82fa5270c469526457d3b91413a8d9f35036..8b1299a15c886585904271d50925283e505ee4e4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -265,6 +265,7 @@ public class PurpurConfig {
@@ -263,6 +263,7 @@ public class PurpurConfig {
public static boolean cryingObsidianValidForPortalFrame = false;
public static int beeInsideBeeHive = 3;
public static boolean anvilCumulativeCost = true;
@@ -29,7 +29,7 @@ index 611fbde429a6742715c54dfd61f8b0a9877c18da..792255c3f9499180a746175bf07f2890
private static void blockSettings() {
if (version < 3) {
boolean oldValue = getBoolean("settings.barrel.packed-barrels", true);
@@ -298,6 +299,7 @@ public class PurpurConfig {
@@ -296,6 +297,7 @@ public class PurpurConfig {
cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame);
beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive);
anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Burp after eating food fills hunger bar completely
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 eda18bda0b8332c5b1d9c260e748cca86d32a875..d4d909d5e72911005030c1eb4053778a6c00290e 100644
index e8b1dd7f413a27fa5d495a03bc725cead85a2c34..f8c196dc452fb1f79c6a6c2dea479fc98870728e 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -195,6 +195,8 @@ public abstract class Player extends LivingEntity {
@@ -200,6 +200,8 @@ public abstract class Player extends LivingEntity {
// CraftBukkit end
// Purpur start
@@ -17,7 +17,7 @@ index eda18bda0b8332c5b1d9c260e748cca86d32a875..d4d909d5e72911005030c1eb4053778a
public abstract void resetLastActionTime();
public void setAfk(boolean afk) {
@@ -257,6 +259,12 @@ public abstract class Player extends LivingEntity {
@@ -264,6 +266,12 @@ public abstract class Player extends LivingEntity {
@Override
public void tick() {
@@ -30,7 +30,7 @@ index eda18bda0b8332c5b1d9c260e748cca86d32a875..d4d909d5e72911005030c1eb4053778a
this.noPhysics = this.isSpectator();
if (this.isSpectator()) {
this.onGround = false;
@@ -2314,7 +2322,7 @@ public abstract class Player extends LivingEntity {
@@ -2354,7 +2362,7 @@ public abstract class Player extends LivingEntity {
public ItemStack eat(Level world, ItemStack stack) {
this.getFoodData().eat(stack.getItem(), stack);
this.awardStat(Stats.ITEM_USED.get(stack.getItem()));
@@ -55,7 +55,7 @@ index 2934b6de1f1fb914a532ee20184df99d1acd8e65..65421cfff05c0493f5fef1bdff03172c
public void eat(Item item, ItemStack stack) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 90fb53ea2de11f24024240fa35bd4dd4da333d0e..e6527157369e2babfbdfcf0cd3056ac0b450f4eb 100644
index 7459fb8fa0e3b14d58e8bb5e89bc4fc2237e2011..bfbbdd1d368b8c22204b4efcc33a4d252df7feac 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -380,6 +380,7 @@ public class PurpurWorldConfig {

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Allow player join full server by permission
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 795b3c765bf91fbf1df236060344830de9330b38..7574f8c60b69f5a9281a8c888b8e131e73bb1676 100644
index 9e7bcd0b0b736ef7b7b5aa78037d13438b47824b..59efd554048e766bd04442aa9720ef554d5dab25 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -773,7 +773,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(chatmessage)); // Paper - Adventure
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure
} else {
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? new ChatMessage("multiplayer.disconnect.server_full") : null;
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null;
- if (this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile)) {
+ if (this.players.size() >= this.maxPlayers && !(player.hasPermission("purpur.joinfullserver") || this.canBypassPlayerLimit(gameprofile))) { // Purpur
event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add permission bypass for portal waiting
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 35431662e92c9ba1f350df7113cdf0239a22d03d..75393ff3aafa01eaa911149d0173da28c236f7c2 100644
index f8c196dc452fb1f79c6a6c2dea479fc98870728e..64ab2ff61d5611574d11a32e7887e48e673a86c4 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {
@@ -188,6 +188,7 @@ public abstract class Player extends LivingEntity {
// Paper end
public int sixRowEnderchestSlotCount = -1; // Purpur
public boolean flyingFallDamage = false; // Purpur
@@ -16,7 +16,7 @@ index 35431662e92c9ba1f350df7113cdf0239a22d03d..75393ff3aafa01eaa911149d0173da28
// CraftBukkit start
public boolean fauxSleeping;
@@ -464,7 +465,7 @@ public abstract class Player extends LivingEntity {
@@ -472,7 +473,7 @@ public abstract class Player extends LivingEntity {
@Override
public int getPortalWaitTime() {
@@ -26,7 +26,7 @@ index 35431662e92c9ba1f350df7113cdf0239a22d03d..75393ff3aafa01eaa911149d0173da28
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index e7108dd70f1eb91f38e04ad71e595bc679560f75..9f326161e13155283acfc9d73b2d568fdc135168 100644
index 83c5314ed3a3f09162bca47902c4e749fab940a0..baec08d7d23bb71e0978f790b2e07ffab93d1c79 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -245,6 +245,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {

View File

@@ -13,10 +13,10 @@ Subject: [PATCH] Shulker spawn from bullet options
(7 - 1) / 5.0 = 1.2 1.0 - 1.2 = -0.2 0% (6 other shulkers)
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 ae22748c9cefd000986d50e12fa9cb2a545ad63c..edaa34c6c2c65df77c696b4654e64bcf37a3ff20 100644
index 2abdeb351fbabec7490c1ce806cebf8886b6be61..ada070d8e1a2d328c02455eb9e5ad056046bcd0a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java
@@ -506,13 +506,22 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -507,13 +507,22 @@ public class Shulker extends AbstractGolem implements Enemy {
Vec3 vec3d = this.position();
AABB axisalignedbb = this.getBoundingBox();
@@ -46,10 +46,10 @@ index ae22748c9cefd000986d50e12fa9cb2a545ad63c..edaa34c6c2c65df77c696b4654e64bcf
if (enumcolor != null) {
entityshulker.setColor(enumcolor);
diff --git a/src/main/java/net/minecraft/world/item/DyeColor.java b/src/main/java/net/minecraft/world/item/DyeColor.java
index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7eaf7e873 100644
index 2d3dbc228a6a7b88167a36ba739d9eb2f03472ba..35ba78df97a5d13a8495ca9a25f2b331310ff47b 100644
--- a/src/main/java/net/minecraft/world/item/DyeColor.java
+++ b/src/main/java/net/minecraft/world/item/DyeColor.java
@@ -109,4 +109,10 @@ public enum DyeColor implements StringRepresentable {
@@ -112,4 +112,10 @@ public enum DyeColor implements StringRepresentable {
public String getSerializedName() {
return this.name;
}
@@ -61,10 +61,10 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e6527157369e2babfbdfcf0cd3056ac0b450f4eb..7c4eac5536ee0577ff88bcf44c061448b7795a8d 100644
index bfbbdd1d368b8c22204b4efcc33a4d252df7feac..57abf9cd3f7c96c23a2c56fb414ceb68557581a4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1890,6 +1890,11 @@ public class PurpurWorldConfig {
@@ -1876,6 +1876,11 @@ public class PurpurWorldConfig {
public boolean shulkerControllable = true;
public double shulkerMaxHealth = 30.0D;
public boolean shulkerTakeDamageFromWater = false;
@@ -76,7 +76,7 @@ index e6527157369e2babfbdfcf0cd3056ac0b450f4eb..7c4eac5536ee0577ff88bcf44c061448
private void shulkerSettings() {
shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable);
shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater);
@@ -1901,6 +1906,11 @@ public class PurpurWorldConfig {
@@ -1887,6 +1892,11 @@ public class PurpurWorldConfig {
}
shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth);
shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Eating glow berries adds glow effect
diff --git a/src/main/java/net/minecraft/world/item/Items.java b/src/main/java/net/minecraft/world/item/Items.java
index 85329295afacad3edb6865846166aa56ebae0ed2..513343d225a71e242b0f237eefcd25147709d9d1 100644
index 21c9733065f6ecb265e4df8a7080697356c796ac..1ce51253b755c2ea4dca94c567935b074ffdbbd6 100644
--- a/src/main/java/net/minecraft/world/item/Items.java
+++ b/src/main/java/net/minecraft/world/item/Items.java
@@ -1070,7 +1070,7 @@ public class Items {
@@ -1117,7 +1117,7 @@ public class Items {
public static final Item LANTERN = registerBlock(Blocks.LANTERN, CreativeModeTab.TAB_DECORATIONS);
public static final Item SOUL_LANTERN = registerBlock(Blocks.SOUL_LANTERN, CreativeModeTab.TAB_DECORATIONS);
public static final Item SWEET_BERRIES = registerItem("sweet_berries", new ItemNameBlockItem(Blocks.SWEET_BERRY_BUSH, (new Item.Properties()).tab(CreativeModeTab.TAB_FOOD).food(Foods.SWEET_BERRIES)));
@@ -18,7 +18,7 @@ index 85329295afacad3edb6865846166aa56ebae0ed2..513343d225a71e242b0f237eefcd2514
public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE, CreativeModeTab.TAB_DECORATIONS);
public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT, CreativeModeTab.TAB_DECORATIONS);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 743ef4d887577b8fba8b43137650ae8e5d300a7f..15a586bc5249bc32d3bdfb0c973e07229b9d8c34 100644
index 57abf9cd3f7c96c23a2c56fb414ceb68557581a4..18e8f9a54235be5d887dacf7db05a6ddc240c78e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -212,6 +212,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Option to make drowned break doors
diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
index 195cbb1870caf48830ea8c3f294a258c3839431d..7e9c38d595c83bf482c701423d66c26a1ea1ea05 100644
index 037d77b47d0be69dfeda01f4a0d52ad72aea2c8d..6e0a575a95ac0bcbc9e3909178ea566a158dd561 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java
@@ -28,6 +28,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal;
@@ -29,6 +29,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal;
import net.minecraft.world.entity.ai.goal.RandomStrollGoal;
import net.minecraft.world.entity.ai.goal.RangedAttackGoal;
import net.minecraft.world.entity.ai.goal.ZombieAttackGoal;
@@ -34,10 +34,10 @@ index 195cbb1870caf48830ea8c3f294a258c3839431d..7e9c38d595c83bf482c701423d66c26a
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 08ebf171bae53b7140f3a572da3ef38df8fec480..1821bee2b071804016db70c180741839ecef9ca6 100644
index 18e8f9a54235be5d887dacf7db05a6ddc240c78e..cf3987ea985f5868f3904bed0a8f23ecbc978e02 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1037,6 +1037,7 @@ public class PurpurWorldConfig {
@@ -1023,6 +1023,7 @@ public class PurpurWorldConfig {
public double drownedJockeyChance = 0.05D;
public boolean drownedJockeyTryExistingChickens = true;
public boolean drownedTakeDamageFromWater = false;
@@ -45,7 +45,7 @@ index 08ebf171bae53b7140f3a572da3ef38df8fec480..1821bee2b071804016db70c180741839
private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1052,6 +1053,7 @@ public class PurpurWorldConfig {
@@ -1038,6 +1039,7 @@ public class PurpurWorldConfig {
drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance);
drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens);
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);

View File

@@ -18,10 +18,10 @@ index 65421cfff05c0493f5fef1bdff03172c9e33f33e..63584faeec4e5013be7a377e3203ec16
this.tickTimer = 0;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1821bee2b071804016db70c180741839ecef9ca6..10dcb1623caa995922bba0a96f73907e05772e9c 100644
index cf3987ea985f5868f3904bed0a8f23ecbc978e02..ccc7a7ab410389f5b7fba118b6ff893116f759a0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2524,4 +2524,9 @@ public class PurpurWorldConfig {
@@ -2506,4 +2506,9 @@ public class PurpurWorldConfig {
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
}

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Armor click equip options
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 302203e64277932ecb224edd3768dace07bd9d94..f9f7afa0bf2989aaef2f0e8456fe3c93a226b6d0 100644
index 95f047e6eb523d07e2b29c8f48e4b0d59d140144..5204b8157a45468a314bbcd2703896b9316128ac 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -520,7 +520,7 @@ public class ServerPlayerGameMode {
return interactionresultwrapper.getResult();
} else {
player.setItemInHand(hand, itemstack1);
@@ -484,7 +484,7 @@ public class ServerPlayerGameMode {
player.setItemInHand(hand, itemstack1);
}
- if (this.isCreative()) {
+ if (this.isCreative() && itemstack1 != ItemStack.EMPTY) { // Purpur
itemstack1.setCount(i);
@@ -58,7 +58,7 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2
return InteractionResultHolder.fail(itemStack);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 10dcb1623caa995922bba0a96f73907e05772e9c..d8fb8dc520ba0b88239c0d4c3f731c0567c422cd 100644
index ccc7a7ab410389f5b7fba118b6ff893116f759a0..d098f9a3ee2568c45b051586e36c1a9aea44dada 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -383,6 +383,8 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add uptime command
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index c137f5299e4a9e2f33aeef77818c62c3805bdc0d..9e7cc8bf867b6e4f86b55e1f1d3a1cb6233c90f1 100644
index 9db941587e870b2a9d0378652d62f4f2c2c385bd..174d4e18743f4388ac6aec6875adf6ac88f32bcd 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -210,6 +210,7 @@ public class Commands {
@@ -208,6 +208,7 @@ public class Commands {
org.purpurmc.purpur.command.CreditsCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur
@@ -17,10 +17,10 @@ index c137f5299e4a9e2f33aeef77818c62c3805bdc0d..9e7cc8bf867b6e4f86b55e1f1d3a1cb6
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 38eee8b34caaee7fb4e05dd08b1854afd0052368..a859c915117d7660673f580864b3ba2aeb1d9480 100644
index 8a6b839ce55bc352dd5a38883c2bf8240f7420bf..3cbfbfeccb6603dc8dc60d85b8db19b61a736b72 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -293,6 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -279,6 +279,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
//public ConsoleReader reader; // Paper
public static int currentTick = 0; // Paper - Further improve tick loop
@@ -29,7 +29,7 @@ index 38eee8b34caaee7fb4e05dd08b1854afd0052368..a859c915117d7660673f580864b3ba2a
public int autosavePeriod;
public Commands vanillaCommandDispatcher;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 792255c3f9499180a746175bf07f2890577332b5..f5a91db8035509ce42315a75205e9f0ae13ed127 100644
index 8b1299a15c886585904271d50925283e505ee4e4..12c8cd424668c2167c071b48d0c1f689ca363513 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -178,6 +178,7 @@ public class PurpurConfig {
@@ -48,7 +48,7 @@ index 792255c3f9499180a746175bf07f2890577332b5..f5a91db8035509ce42315a75205e9f0a
unverifiedUsername = getString("settings.messages.unverified-username", unverifiedUsername);
}
@@ -244,6 +246,15 @@ public class PurpurConfig {
@@ -242,6 +244,15 @@ public class PurpurConfig {
public static int commandTPSBarTickInterval = 20;
public static boolean commandGamemodeRequiresPermission = false;
public static boolean hideHiddenPlayersFromEntitySelector = false;
@@ -64,7 +64,7 @@ index 792255c3f9499180a746175bf07f2890577332b5..f5a91db8035509ce42315a75205e9f0a
private static void commandSettings() {
commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle);
commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name()));
@@ -257,6 +268,15 @@ public class PurpurConfig {
@@ -255,6 +266,15 @@ public class PurpurConfig {
commandTPSBarTickInterval = getInt("settings.command.tpsbar.tick-interval", commandTPSBarTickInterval);
commandGamemodeRequiresPermission = getBoolean("settings.command.gamemode.requires-specific-permission", commandGamemodeRequiresPermission);
hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector);

View File

@@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 1 Jul 2021 19:25:05 -0500
Subject: [PATCH] Structure seed options
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 12c8cd424668c2167c071b48d0c1f689ca363513..b2604ae34c141ce69b3e1df72543aa942a9c9f0e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -212,6 +212,23 @@ public class PurpurConfig {
deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer);
}
+ public static int seedStructureBuriedTreasure = -1;
+ public static int seedStructureMineshaft = -1;
+ private static void seedSettings() {
+ seedStructureBuriedTreasure = getInt("settings.seed.structure.buried_treasure", seedStructureBuriedTreasure);
+ seedStructureMineshaft = getInt("settings.seed.structure.mineshaft", seedStructureMineshaft);
+ if (version < 26) {
+ int stronghold = getInt("settings.seed.structure.stronghold", -1);
+ set("settings.seed.structure.stronghold", null);
+ if (stronghold != -1) {
+ org.spigotmc.SpigotConfig.config.set("world-settings.default.seed-stronghold", stronghold);
+ org.spigotmc.SpigotConfig.save();
+ }
+ }
+ // hide these from timings report
+ if (!TimingsManager.hiddenConfigs.contains("settings.seed")) TimingsManager.hiddenConfigs.add("settings.seed");
+ }
+
public static String serverModName = "Purpur";
private static void serverModName() {
serverModName = getString("settings.server-mod-name", serverModName);

Some files were not shown because too many files have changed in this diff Show More