re-add persistent-tileentity-display-names-and-lore as two options

This commit is contained in:
granny
2024-05-01 00:53:07 -07:00
parent 37b9ad3bd7
commit a90a4730d6
78 changed files with 323 additions and 379 deletions

View File

@@ -179,7 +179,7 @@ index c097f5d5fbd51cbbc01bbd54101905c59b3f3a4c..66a3b28d7b943d443ff66fdcfbce6e52
.withRequiredArg()
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..be3b733d7a641a7651ace1b3bd5ac56f26db5947
index 0000000000000000000000000000000000000000..19161d9736b626811423deefedd045abe60360cc
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -0,0 +1,175 @@
@@ -260,8 +260,8 @@ index 0000000000000000000000000000000000000000..be3b733d7a641a7651ace1b3bd5ac56f
+ commands = new HashMap<>();
+ commands.put("purpur", new PurpurCommand("purpur"));
+
+ version = getInt("config-version", 34);
+ set("config-version", 34);
+ version = getInt("config-version", 35);
+ set("config-version", 35);
+
+ readConfig(PurpurConfig.class, null);
+

View File

@@ -0,0 +1,164 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Date: Wed, 30 Sep 2020 14:32:46 -0700
Subject: [PATCH] Persistent BlockEntity Lore and DisplayName
Makes it so that when a BlockEntity is placed in the world and then broken,
the dropped ItemStack retains any original custom display name/lore.
diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java
index 2649188930653610b8aaaeb18797c80879cd572a..7572c289758001c7417a192f0e6e994ffa8408b3 100644
--- a/src/main/java/net/minecraft/world/item/BlockItem.java
+++ b/src/main/java/net/minecraft/world/item/BlockItem.java
@@ -157,7 +157,16 @@ public class BlockItem extends Item {
}
protected boolean updateCustomBlockEntityTag(BlockPos pos, Level world, @Nullable Player player, ItemStack stack, BlockState state) {
- return BlockItem.updateCustomBlockEntityTag(world, player, pos, stack);
+ // Purpur start
+ boolean handled = updateCustomBlockEntityTag(world, player, pos, stack);
+ if (world.purpurConfig.persistentTileEntityLore) {
+ BlockEntity blockEntity1 = world.getBlockEntity(pos);
+ if (blockEntity1 != null) {
+ blockEntity1.setPersistentLore(stack.getOrDefault(DataComponents.LORE, net.minecraft.world.item.component.ItemLore.EMPTY));
+ }
+ }
+ return handled;
+ // Purpur end
}
@Nullable
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 6f7e90d406b088fee0eb254f8042bd404d8f36fa..7ffe51eedc9d086424cf450026bdc260249864c4 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -312,7 +312,7 @@ public class Block extends BlockBehaviour implements ItemLike {
public static void dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity) {
if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity).forEach((itemstack) -> {
- Block.popResource((ServerLevel) world, pos, itemstack);
+ Block.popResource((ServerLevel) world, pos, applyLoreFromTile(itemstack, blockEntity)); // Purpur
});
state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true);
}
@@ -331,7 +331,7 @@ public class Block extends BlockBehaviour implements ItemLike {
event.setExpToDrop(block.getExpDrop(state, serverLevel, pos, net.minecraft.world.item.ItemStack.EMPTY, true)); // Paper - Properly handle xp dropping
event.callEvent();
for (org.bukkit.inventory.ItemStack drop : event.getDrops()) {
- popResource(serverLevel, pos, org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(drop));
+ popResource(serverLevel, pos, applyLoreFromTile(org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(drop), blockEntity)); // Purpur
}
state.spawnAfterBreak(serverLevel, pos, ItemStack.EMPTY, false); // Paper - Properly handle xp dropping
block.popExperience(serverLevel, pos, event.getExpToDrop()); // Paper - Properly handle xp dropping
@@ -348,13 +348,32 @@ public class Block extends BlockBehaviour implements ItemLike {
// Paper end - Properly handle xp dropping
if (world instanceof ServerLevel) {
Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> {
- Block.popResource(world, pos, itemstack1);
+ Block.popResource(world, pos, applyLoreFromTile(itemstack1, blockEntity)); // Purpur
});
state.spawnAfterBreak((ServerLevel) world, pos, tool, dropExperience); // Paper - Properly handle xp dropping
}
}
+ // Purpur start
+ private static ItemStack applyLoreFromTile(ItemStack stack, @Nullable BlockEntity blockEntity) {
+ if (stack.getItem() instanceof BlockItem) {
+ if (blockEntity != null && blockEntity.getLevel() instanceof ServerLevel) {
+ net.minecraft.world.item.component.ItemLore lore = blockEntity.getPersistentLore();
+ net.minecraft.core.component.DataComponentPatch.Builder builder = net.minecraft.core.component.DataComponentPatch.builder();
+ if (blockEntity.getLevel().purpurConfig.persistentTileEntityLore && lore != null) {
+ builder.set(net.minecraft.core.component.DataComponents.LORE, lore);
+ }
+ if (!blockEntity.getLevel().purpurConfig.persistentTileEntityDisplayName) {
+ builder.remove(net.minecraft.core.component.DataComponents.CUSTOM_NAME);
+ }
+ stack.applyComponents(builder.build());
+ }
+ }
+ return stack;
+ }
+ // Purpur end
+
public static void popResource(Level world, BlockPos pos, ItemStack stack) {
double d0 = (double) EntityType.ITEM.getHeight() / 2.0D;
double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D);
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
index 7963afff4b32a0e46be9bdeb413657718cfc14f5..5168e8e9ebb54b6c00acb7f2939262eb06a7426d 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
@@ -87,6 +87,12 @@ public abstract class BlockEntity {
if (persistentDataTag instanceof CompoundTag) {
this.persistentDataContainer.putAll((CompoundTag) persistentDataTag);
}
+ // Purpur start
+ if (nbt.contains("Purpur.persistentLore")) {
+ net.minecraft.world.item.component.ItemLore.CODEC.decode(net.minecraft.nbt.NbtOps.INSTANCE, nbt.getCompound("Purpur.persistentLore")).result()
+ .ifPresent(tag -> this.persistentLore = tag.getFirst());
+ }
+ // Purpur end
}
// CraftBukkit end
@@ -103,6 +109,15 @@ public abstract class BlockEntity {
this.loadAdditional(nbt, registryLookup);
}
+ // Purpur start
+ protected void saveAdditional(CompoundTag nbt) {
+ if (this.persistentLore != null) {
+ net.minecraft.world.item.component.ItemLore.CODEC.encodeStart(net.minecraft.nbt.NbtOps.INSTANCE, this.persistentLore).result()
+ .ifPresent(tag -> nbt.put("Purpur.persistentLore", tag));
+ }
+ }
+ // Purpur end
+
protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) {}
public final CompoundTag saveWithFullMetadata(HolderLookup.Provider registryLookup) {
@@ -397,4 +412,16 @@ public abstract class BlockEntity {
<T> T getOrDefault(DataComponentType<? extends T> type, T fallback);
}
+ // Purpur start
+ @Nullable
+ private net.minecraft.world.item.component.ItemLore persistentLore = null;
+
+ public void setPersistentLore(net.minecraft.world.item.component.ItemLore lore) {
+ this.persistentLore = lore;
+ }
+
+ public @org.jetbrains.annotations.Nullable net.minecraft.world.item.component.ItemLore getPersistentLore() {
+ return this.persistentLore;
+ }
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8d4c3c4a06d40841e8446485364393e36e686fdd..abe3614f2286db8945bc6c4eadd01ec8a7f93555 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -130,6 +130,8 @@ public class PurpurWorldConfig {
public boolean milkCuresBadOmen = true;
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = true;
+ public boolean persistentTileEntityLore = false;
+ public boolean persistentTileEntityDisplayName = true;
public boolean projectilesBypassMobGriefing = false;
public boolean tickFluids = true;
public double mobsBlindnessMultiplier = 1;
@@ -153,6 +155,14 @@ public class PurpurWorldConfig {
imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove);
+ if (PurpurConfig.version < 35) {
+ boolean oldVal = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityLore);
+ set("gameplay-mechanics.persistent-tileentity-display-names-and-lore", null);
+ set("gameplay-mechanics.persistent-tileentity-lore", oldVal);
+ set("gameplay-mechanics.persistent-tileentity-display-name", !oldVal);
+ }
+ persistentTileEntityLore = getBoolean("gameplay-mechanics.persistent-tileentity-lore", persistentTileEntityLore);
+ persistentTileEntityDisplayName = getBoolean("gameplay-mechanics.persistent-tileentity-display-name", persistentTileEntityDisplayName);
persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames);
projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing);
tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids);

View File

@@ -135,7 +135,7 @@ index 3dec5a082606ee35a8c8d7f746480262d6a189c5..b2f6ccae9576c176263e51a232e17a08
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 64c62e4abefb7e95e881fa1d8918e43ae48eb1dd..a1fa16fca204098fd2211a4c206299356fc97724 100644
index f79d0e3907dd89ff0abf8220392bb4e23cf9003e..9ded52a0022e33a6b69191b5fa758d6cc7eb076f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -312,6 +312,10 @@ public class PurpurConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Grindstone API
diff --git a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
index e9451ab9635b3040490a3cbbf0a2bdeb63fd3338..4ab03c778bff9c23eafb36e97fadc0ee416e89f0 100644
index 5824636332eb35ae6bee9cc0661ee95901bb8c4b..1d181de9c8fd45b4d9f0230f80d5752ff5c1a432 100644
--- a/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/GrindstoneMenu.java
@@ -95,9 +95,11 @@ public class GrindstoneMenu extends AbstractContainerMenu {

View File

@@ -74,10 +74,10 @@ index acbd60a2f162fe0e254e36d0e8e7face3fc8a7b3..da1c7999ca64199387054de46489d3ff
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b493eb542c3284ce1e748ca8f61312c6e0913991..b82024428de95ba18a21b4294ecc0fc52ad89fee 100644
index 6e4990ef903e7a492da953662a2a2a99b051baca..d766e9da3cc01c82681c7d96426b705c9449724d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -538,6 +538,8 @@ public class PurpurWorldConfig {
@@ -548,6 +548,8 @@ public class PurpurWorldConfig {
public Map<Block, Weatherable> axeWeatherables = new HashMap<>();
public Map<Block, Tillable> hoeTillables = new HashMap<>();
public Map<Block, Flattenable> shovelFlattenables = new HashMap<>();
@@ -86,7 +86,7 @@ index b493eb542c3284ce1e748ca8f61312c6e0913991..b82024428de95ba18a21b4294ecc0fc5
private void toolSettings() {
axeStrippables.clear();
axeWaxables.clear();
@@ -805,6 +807,8 @@ public class PurpurWorldConfig {
@@ -815,6 +817,8 @@ public class PurpurWorldConfig {
});
shovelFlattenables.put(block, new Flattenable(into, drops));
});

View File

@@ -18,10 +18,10 @@ index 0c732cfbd9ce50198a3f85ae8ef2263d7ae0bc1a..2f0e8aeb9c45853fca12ddd78a7d5181
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b82024428de95ba18a21b4294ecc0fc52ad89fee..f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc 100644
index d766e9da3cc01c82681c7d96426b705c9449724d..e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1060,11 +1060,13 @@ public class PurpurWorldConfig {
@@ -1070,11 +1070,13 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromItems = false;
public boolean turtleEggsBreakFromMinecarts = false;
public boolean turtleEggsBypassMobGriefing = false;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 28718b44dc2bd98a5144ebcfd8be195a4715ccd7..24f002e44a7a485026a814c898b8569998805da8 100644
index 549579f2bc2e1fd23ece1ead543e3e5242f52ce0..119d2e57995fa20f34b88963b93c945ff87e0cab 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1071,9 +1071,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -32,10 +32,10 @@ index 28718b44dc2bd98a5144ebcfd8be195a4715ccd7..24f002e44a7a485026a814c898b85699
// Purpur start
if (entity instanceof LivingEntity entityliving) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46e07b93f1 100644
index e4c1fe03e5ca7fa91ca7fc26eb0ba12e18d009a4..efcf075ec700e0d9f85a2e8b86580bc693dedf71 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1354,6 +1354,7 @@ public class PurpurWorldConfig {
@@ -1364,6 +1364,7 @@ public class PurpurWorldConfig {
public boolean creeperExplodeWhenKilled = false;
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
@@ -43,7 +43,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1371,6 +1372,7 @@ public class PurpurWorldConfig {
@@ -1381,6 +1382,7 @@ public class PurpurWorldConfig {
creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled);
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
@@ -51,7 +51,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
}
public boolean dolphinRidable = false;
@@ -2157,6 +2159,7 @@ public class PurpurWorldConfig {
@@ -2167,6 +2169,7 @@ public class PurpurWorldConfig {
public boolean piglinTakeDamageFromWater = false;
public int piglinPortalSpawnModifier = 2000;
public boolean piglinAlwaysDropExp = false;
@@ -59,7 +59,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -2171,6 +2174,7 @@ public class PurpurWorldConfig {
@@ -2181,6 +2184,7 @@ public class PurpurWorldConfig {
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
@@ -67,7 +67,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
}
public boolean piglinBruteRidable = false;
@@ -2430,6 +2434,7 @@ public class PurpurWorldConfig {
@@ -2440,6 +2444,7 @@ public class PurpurWorldConfig {
public double skeletonMaxHealth = 20.0D;
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
@@ -75,7 +75,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2442,6 +2447,7 @@ public class PurpurWorldConfig {
@@ -2452,6 +2457,7 @@ public class PurpurWorldConfig {
skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
@@ -83,7 +83,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
}
public boolean skeletonHorseRidable = false;
@@ -2976,6 +2982,7 @@ public class PurpurWorldConfig {
@@ -2986,6 +2992,7 @@ public class PurpurWorldConfig {
public boolean zombieBypassMobGriefing = false;
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
@@ -91,7 +91,7 @@ index f0718c62cc9c2efaaf70b006c712d1cdbb54ccfc..0c3fec906da62b627f2570f78f2d3d46
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -2994,6 +3001,7 @@ public class PurpurWorldConfig {
@@ -3004,6 +3011,7 @@ public class PurpurWorldConfig {
zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing);
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);

View File

@@ -17,7 +17,7 @@ index 0bd191acb9596d3aa21c337230d26f09d26f6888..20211f40aeeade9217ece087688974bd
return false;
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index a1fa16fca204098fd2211a4c206299356fc97724..107852247029b748a3e6e17b0ddbecdb50ce6d29 100644
index 9ded52a0022e33a6b69191b5fa758d6cc7eb076f..cd27c2a3343133d688592791bec2a031410ff93f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -452,4 +452,11 @@ public class PurpurConfig {

View File

@@ -139,7 +139,7 @@ index 754eb747179d9318bc5a3883e5622cc400c4e06c..4e929539cb093d58f3311d5f6a62bd1a
this.generateShearedMushrooms(drops::add);
return drops;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 107852247029b748a3e6e17b0ddbecdb50ce6d29..19e54e22ca2e024074c28dda3bbdf75ce9f1b083 100644
index cd27c2a3343133d688592791bec2a031410ff93f..91d5c175752f6ee850adada6802c8af8f833d9c7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -391,6 +391,7 @@ public class PurpurConfig {

View File

@@ -17,10 +17,10 @@ index 926c30db9b28a30fe5d6c8d20f3972dec0d7b4d0..221c0051c7a0e20c1b7a464df26eb63c
++this.timeSinceSting;
if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0c3fec906da62b627f2570f78f2d3d46e07b93f1..252a1ab0c8cd7aaaf21a0683dc0611f9e6f0733c 100644
index efcf075ec700e0d9f85a2e8b86580bc693dedf71..32bf6874734bc1a34675298c473ef0b87a232010 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1155,6 +1155,7 @@ public class PurpurWorldConfig {
@@ -1165,6 +1165,7 @@ public class PurpurWorldConfig {
public boolean beeCanWorkAtNight = false;
public boolean beeCanWorkInRain = false;
public boolean beeAlwaysDropExp = false;
@@ -28,7 +28,7 @@ index 0c3fec906da62b627f2570f78f2d3d46e07b93f1..252a1ab0c8cd7aaaf21a0683dc0611f9
private void beeSettings() {
beeRidable = getBoolean("mobs.bee.ridable", beeRidable);
beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater);
@@ -1171,6 +1172,7 @@ public class PurpurWorldConfig {
@@ -1181,6 +1182,7 @@ public class PurpurWorldConfig {
beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp);

View File

@@ -29,7 +29,7 @@ index 29af03b8690e4d402d1e4e4516e4dc731b7b4323..56c6800ae5696397ffba2dc2e0393019
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 19e54e22ca2e024074c28dda3bbdf75ce9f1b083..2d32b5aaa2b2f33b773f9157aee4f7461c48147a 100644
index 91d5c175752f6ee850adada6802c8af8f833d9c7..0d6b99822a3a743fe50362702afdca52f6a4a88e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -434,6 +434,11 @@ public class PurpurConfig {

View File

@@ -35,10 +35,10 @@ index 12a0c69f8fec30fad64cbb00af2ca1bbf0ea5153..d0ec0722496ed931b48c4e7076fddbb1
org.bukkit.event.Cancellable cancellable;
if (entity instanceof Player) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 252a1ab0c8cd7aaaf21a0683dc0611f9e6f0733c..9a920c2bb3efa5754245b76aa13a81ca01028fc1 100644
index 32bf6874734bc1a34675298c473ef0b87a232010..d2eed1d2695b0baf3bec82cb4220f2f9390b3228 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -958,6 +958,7 @@ public class PurpurWorldConfig {
@@ -968,6 +968,7 @@ public class PurpurWorldConfig {
public boolean farmlandTramplingDisabled = false;
public boolean farmlandTramplingOnlyPlayers = false;
public boolean farmlandTramplingFeatherFalling = false;
@@ -46,7 +46,7 @@ index 252a1ab0c8cd7aaaf21a0683dc0611f9e6f0733c..9a920c2bb3efa5754245b76aa13a81ca
private void farmlandSettings() {
farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing);
farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow);
@@ -965,6 +966,7 @@ public class PurpurWorldConfig {
@@ -975,6 +976,7 @@ public class PurpurWorldConfig {
farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled);
farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers);
farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling);

View File

@@ -35,10 +35,10 @@ index 0460bdb52ce6b29cf57ef8f2d7f430e761c82d85..845c4af5d5d38d54de4a1b20fe32bf5d
} else if (!entity.isRemoved()) {
this.touch(entity);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9a920c2bb3efa5754245b76aa13a81ca01028fc1..e687752dafb2daa5ecc638171e4e8730e7d877c7 100644
index d2eed1d2695b0baf3bec82cb4220f2f9390b3228..62c1ca38ab9f5fe748ac802b9cd15576736fd16f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -418,6 +418,7 @@ public class PurpurWorldConfig {
@@ -428,6 +428,7 @@ public class PurpurWorldConfig {
public boolean playerRidableInWater = false;
public boolean playerRemoveBindingWithWeakness = false;
public int shiftRightClickRepairsMendingPoints = 0;
@@ -46,7 +46,7 @@ index 9a920c2bb3efa5754245b76aa13a81ca01028fc1..e687752dafb2daa5ecc638171e4e8730
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -443,6 +444,7 @@ public class PurpurWorldConfig {
@@ -453,6 +454,7 @@ public class PurpurWorldConfig {
playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater);
playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness);
shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints);

View File

@@ -18,10 +18,10 @@ index 42db3e64b120b753e98a0fd7e3f56c7d28256fd2..ae2b9732b2795ea7faec96af4c27ccb0
}
// Paper end - Fix merchant inventory not closing on entity removal
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e687752dafb2daa5ecc638171e4e8730e7d877c7..1cce789eedff397dc3c2a1edcd2991bc9925f5cb 100644
index 62c1ca38ab9f5fe748ac802b9cd15576736fd16f..72d97b4ee263f52b91bb901a9443c7fcbd0ad458 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -419,6 +419,7 @@ public class PurpurWorldConfig {
@@ -429,6 +429,7 @@ public class PurpurWorldConfig {
public boolean playerRemoveBindingWithWeakness = false;
public int shiftRightClickRepairsMendingPoints = 0;
public int playerExpPickupDelay = 2;
@@ -29,7 +29,7 @@ index e687752dafb2daa5ecc638171e4e8730e7d877c7..1cce789eedff397dc3c2a1edcd2991bc
private void playerSettings() {
if (PurpurConfig.version < 19) {
boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer);
@@ -445,6 +446,7 @@ public class PurpurWorldConfig {
@@ -455,6 +456,7 @@ public class PurpurWorldConfig {
playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness);
shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints);
playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay);

View File

@@ -22,10 +22,10 @@ index 0d81540d048cd4a08962bd24d3bdd49db708f83f..26077bd6eeedbdae84613188cb0f336a
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1cce789eedff397dc3c2a1edcd2991bc9925f5cb..ae0ad49d5efc06550a27c40c49f3c4b9cbcc63dd 100644
index 72d97b4ee263f52b91bb901a9443c7fcbd0ad458..5b2cce70f98cd381bf0745bbc267d38a394afc74 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2097,6 +2097,8 @@ public class PurpurWorldConfig {
@@ -2107,6 +2107,8 @@ public class PurpurWorldConfig {
public boolean phantomFlamesOnSwoop = false;
public boolean phantomTakeDamageFromWater = false;
public boolean phantomAlwaysDropExp = false;
@@ -34,7 +34,7 @@ index 1cce789eedff397dc3c2a1edcd2991bc9925f5cb..ae0ad49d5efc06550a27c40c49f3c4b9
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -2133,6 +2135,13 @@ public class PurpurWorldConfig {
@@ -2143,6 +2145,13 @@ public class PurpurWorldConfig {
phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop);
phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater);
phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp);

View File

@@ -31,7 +31,7 @@ index 58d28b6c1cc7da7d786f78308db971f7502ad844..9f274048be29ed54dd91983447beadf0
}
// Paper end - Buffer joins to world
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 2d32b5aaa2b2f33b773f9157aee4f7461c48147a..42a916e89b838868967391b9c042ce5143d862d0 100644
index 0d6b99822a3a743fe50362702afdca52f6a4a88e..5879af630bc3711a17d51f455585ccd31f7a6d88 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -456,8 +456,10 @@ public class PurpurConfig {

View File

@@ -40,10 +40,10 @@ index 0efc8d997b34302c3e0a5d7ec73a11a940dbeefe..af157881d440b34cfe79fbc9b03cc9ef
public ItemStack assemble() {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ae0ad49d5efc06550a27c40c49f3c4b9cbcc63dd..95382bac24be84f0232930373e8d6128b76a8554 100644
index 5b2cce70f98cd381bf0745bbc267d38a394afc74..a4bfd2b0e9b98c64c4309a7f660ed01c30ef09f0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2778,6 +2778,7 @@ public class PurpurWorldConfig {
@@ -2788,6 +2788,7 @@ public class PurpurWorldConfig {
public boolean villagerTakeDamageFromWater = false;
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
@@ -51,7 +51,7 @@ index ae0ad49d5efc06550a27c40c49f3c4b9cbcc63dd..95382bac24be84f0232930373e8d6128
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2798,6 +2799,7 @@ public class PurpurWorldConfig {
@@ -2808,6 +2809,7 @@ public class PurpurWorldConfig {
villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater);
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);

View File

@@ -104,10 +104,10 @@ index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 95382bac24be84f0232930373e8d6128b76a8554..158d802ce38a9ae6c222cfa9e4a70806bd6eff51 100644
index a4bfd2b0e9b98c64c4309a7f660ed01c30ef09f0..62de4877eb54fcb11a4f29e08b1b738a0fcd4076 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2779,6 +2779,9 @@ public class PurpurWorldConfig {
@@ -2789,6 +2789,9 @@ public class PurpurWorldConfig {
public boolean villagerAllowTrading = true;
public boolean villagerAlwaysDropExp = false;
public int villagerMinimumDemand = 0;
@@ -117,7 +117,7 @@ index 95382bac24be84f0232930373e8d6128b76a8554..158d802ce38a9ae6c222cfa9e4a70806
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2800,6 +2803,18 @@ public class PurpurWorldConfig {
@@ -2810,6 +2813,18 @@ public class PurpurWorldConfig {
villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading);
villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp);
villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand);

View File

@@ -17,10 +17,10 @@ index 18dad0825616c4167a0a7555689ee64910a87e09..6945992491027d43eca4f1ca697ad45c
&& this.lookTime > 0
&& entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 158d802ce38a9ae6c222cfa9e4a70806bd6eff51..5c2639e142d04fee6c467292b1173917213a537c 100644
index 62de4877eb54fcb11a4f29e08b1b738a0fcd4076..cc004ccc5bf2e2c2f908fc6d59f3cb7647da3fc9 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2782,6 +2782,7 @@ public class PurpurWorldConfig {
@@ -2792,6 +2792,7 @@ public class PurpurWorldConfig {
public boolean villagerLobotomizeEnabled = false;
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
@@ -28,7 +28,7 @@ index 158d802ce38a9ae6c222cfa9e4a70806bd6eff51..5c2639e142d04fee6c467292b1173917
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2815,6 +2816,7 @@ public class PurpurWorldConfig {
@@ -2825,6 +2826,7 @@ public class PurpurWorldConfig {
villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled);
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);

View File

@@ -17,10 +17,10 @@ index 6f22705072fecbe91196e4966fca2eeec060f120..ed2ae44f7cef5aed17d10cc8a7df0a22
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5c2639e142d04fee6c467292b1173917213a537c..ffdc11fd8c5b2059ac9fc6b9ec47f373c6329b63 100644
index cc004ccc5bf2e2c2f908fc6d59f3cb7647da3fc9..3388478292e8e445f6da2ede9c44884467d551b7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1047,8 +1047,10 @@ public class PurpurWorldConfig {
@@ -1057,8 +1057,10 @@ public class PurpurWorldConfig {
}
public boolean spawnerDeactivateByRedstone = false;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Config for mob last hurt by player time
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 24f002e44a7a485026a814c898b8569998805da8..580e01281f27a4cd1d3a243a7d4791b88910b5bb 100644
index 119d2e57995fa20f34b88963b93c945ff87e0cab..36022a0ab50655363d26be7dba765e2261baccdf 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1561,13 +1561,13 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -38,10 +38,10 @@ index 1a8a76aa31bd1d1670be6e9cada162c540084cf9..b452ebbe11145987fb5e66b399938984
// Paper end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ffdc11fd8c5b2059ac9fc6b9ec47f373c6329b63..6dd04e6b344f1cfc32f3161832c9012ef5b83ee8 100644
index 3388478292e8e445f6da2ede9c44884467d551b7..8f5ec67822c4e1619784e6efbc70d726692d13c5 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -141,6 +141,7 @@ public class PurpurWorldConfig {
@@ -143,6 +143,7 @@ public class PurpurWorldConfig {
public boolean mobsIgnoreRails = false;
public boolean rainStopsAfterSleep = true;
public boolean thunderStopsAfterSleep = true;
@@ -49,7 +49,7 @@ index ffdc11fd8c5b2059ac9fc6b9ec47f373c6329b63..6dd04e6b344f1cfc32f3161832c9012e
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
@@ -165,6 +166,7 @@ public class PurpurWorldConfig {
@@ -175,6 +176,7 @@ public class PurpurWorldConfig {
mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails);
rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep);
thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep);

View File

@@ -63,10 +63,10 @@ index 923357251ad950ec4f893e8771fcfa99de8a60c5..78a341ac80806f86f2ca0bd895fb091a
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
if (world.isClientSide) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 6dd04e6b344f1cfc32f3161832c9012ef5b83ee8..4b70ba95de6c238f6d085b343e97a4cdc521eaf7 100644
index 8f5ec67822c4e1619784e6efbc70d726692d13c5..8e66301da7706679c480f29843a6828bb5d93c07 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -819,9 +819,13 @@ public class PurpurWorldConfig {
@@ -829,9 +829,13 @@ public class PurpurWorldConfig {
public boolean anvilAllowColors = false;
public boolean anvilColorsUseMiniMessage;

View File

@@ -24,10 +24,10 @@ index 2f0e8aeb9c45853fca12ddd78a7d51813a600e67..08ba90f760abb9fb62311dddd7b5bdbd
return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING);
// Purpur end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4b70ba95de6c238f6d085b343e97a4cdc521eaf7..1c9ecab6a0fe5da259fa1c080374dab8bd446911 100644
index 8e66301da7706679c480f29843a6828bb5d93c07..8d5cedccedc8c8bcd32a4313c95bfa4f738c5259 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1075,12 +1075,14 @@ public class PurpurWorldConfig {
@@ -1085,12 +1085,14 @@ public class PurpurWorldConfig {
public boolean turtleEggsBreakFromMinecarts = false;
public boolean turtleEggsBypassMobGriefing = false;
public int turtleEggsRandomTickCrackChance = 500;

View File

@@ -59,7 +59,7 @@ index af18de11dd55938b6091f5ab183bd3fe4e8df152..2c741860afa1fa4d5798c68b84ec3fe1
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 42a916e89b838868967391b9c042ce5143d862d0..af79332c9c54ca314c59c6e503478e52c5970e31 100644
index 5879af630bc3711a17d51f455585ccd31f7a6d88..7462474f7eff9f50644d0b7ceac341f237c93df0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -398,6 +398,7 @@ public class PurpurConfig {

View File

@@ -18,10 +18,10 @@ index dd74825c04543ae8c0bb1ab5eef6c8a152b621fd..dcf580d852ede8ea01f5d91944a224ec
AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D);
List<Villager> list = world.getEntitiesOfClass(Villager.class, axisalignedbb);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1c9ecab6a0fe5da259fa1c080374dab8bd446911..e115fe44b20b1e6231d752770c27c4354f2a942c 100644
index 8d5cedccedc8c8bcd32a4313c95bfa4f738c5259..78ce078a2b85f68d5c43fdf39ed4d60c8f10f65f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2793,6 +2793,8 @@ public class PurpurWorldConfig {
@@ -2803,6 +2803,8 @@ public class PurpurWorldConfig {
public int villagerLobotomizeCheckInterval = 100;
public boolean villagerLobotomizeWaitUntilTradeLocked = false;
public boolean villagerDisplayTradeItem = true;
@@ -30,7 +30,7 @@ index 1c9ecab6a0fe5da259fa1c080374dab8bd446911..e115fe44b20b1e6231d752770c27c435
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2827,6 +2829,8 @@ public class PurpurWorldConfig {
@@ -2837,6 +2839,8 @@ public class PurpurWorldConfig {
villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval);
villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked);
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);

View File

@@ -54,7 +54,7 @@ index 894668c96ac36e737910a25cf89651236246200c..812091bf6efc067b21b9723b8241360d
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
index 32c0a2df609acc1ecdd5a0a98a997b2f33525621..f0568c3d731afaf610ac2f45db53148d38338cdf 100644
index 13b596a1e06fa66396c43a6c72659d4342bf6549..5ffe772e29dfd422b664e8123e7f5cf396158674 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
@@ -45,12 +45,14 @@ public class DamageSources {
@@ -128,7 +128,7 @@ index a49193a023bbd9b65bcd3652dc9c241720500755..6fed586c9a778f7a57e1b4ca2e6f2dbc
} else if (source.is(DamageTypes.HOT_FLOOR)) {
cause = DamageCause.HOT_FLOOR;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index af79332c9c54ca314c59c6e503478e52c5970e31..07d6455c781b8743a833cbc04576015433686c4b 100644
index 7462474f7eff9f50644d0b7ceac341f237c93df0..cb8f67f0ad3531b110613c0ffb3c0cc23da23529 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -209,8 +209,10 @@ public class PurpurConfig {
@@ -143,10 +143,10 @@ index af79332c9c54ca314c59c6e503478e52c5970e31..07d6455c781b8743a833cbc045760154
public static boolean advancementOnlyBroadcastToAffectedPlayer = false;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index e115fe44b20b1e6231d752770c27c4354f2a942c..97d7a74c1e6879b2a67c4243b03c35e998773faf 100644
index 78ce078a2b85f68d5c43fdf39ed4d60c8f10f65f..d1fd7727b7ada1ac1390a7eb1832c35706d8b209 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1070,6 +1070,11 @@ public class PurpurWorldConfig {
@@ -1080,6 +1080,11 @@ public class PurpurWorldConfig {
spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud);
}

View File

@@ -18,10 +18,10 @@ index 77bbdc15472d656fd40e841a70e34d3d31580819..55ae530fac54236ea5614f8e92c30feb
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 97d7a74c1e6879b2a67c4243b03c35e998773faf..3d06c206b65a1288c72817f82cfa5b9e5ae026ee 100644
index d1fd7727b7ada1ac1390a7eb1832c35706d8b209..1d0accb74cedf842fb6f8e726943b9ddee582e4a 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1016,6 +1016,13 @@ public class PurpurWorldConfig {
@@ -1026,6 +1026,13 @@ public class PurpurWorldConfig {
pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit);
}

View File

@@ -22,10 +22,10 @@ index 93e8e5107ac047c1f2579b4fe6b0a202edb695f6..f82d275aac7bf3949d3dcc412c7e39e1
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3d06c206b65a1288c72817f82cfa5b9e5ae026ee..dd72530cfa9f1790ebab063e094c255d597dba8a 100644
index 1d0accb74cedf842fb6f8e726943b9ddee582e4a..335cb3101af8fdf7b8518f847cf54d06e079459e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -997,9 +997,11 @@ public class PurpurWorldConfig {
@@ -1007,9 +1007,11 @@ public class PurpurWorldConfig {
public boolean mobsSpawnOnPackedIce = true;
public boolean mobsSpawnOnBlueIce = true;

View File

@@ -94,10 +94,10 @@ index 1aae461eed332fe31c1449c47d0928f655c740da..9eb6ed001bfc578311300977dda6f3f1
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dd72530cfa9f1790ebab063e094c255d597dba8a..66c9464f6c4241c3a14a4057a216418fd5ab067e 100644
index 335cb3101af8fdf7b8518f847cf54d06e079459e..3745acb6de975db70c78493907eb8784d3a10d75 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2476,6 +2476,7 @@ public class PurpurWorldConfig {
@@ -2486,6 +2486,7 @@ public class PurpurWorldConfig {
public boolean skeletonTakeDamageFromWater = false;
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
@@ -105,7 +105,7 @@ index dd72530cfa9f1790ebab063e094c255d597dba8a..66c9464f6c4241c3a14a4057a216418f
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2489,6 +2490,7 @@ public class PurpurWorldConfig {
@@ -2499,6 +2500,7 @@ public class PurpurWorldConfig {
skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater);
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);

View File

@@ -137,10 +137,10 @@ index d47bc2f54c4722a0b8c419b99ee57eb3cb25d750..fdeabdcc781b605d6f3ee18528fd380f
+ // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 66c9464f6c4241c3a14a4057a216418fd5ab067e..8ad6437173dd39aa7415709efc8f65404abf7bd9 100644
index 3745acb6de975db70c78493907eb8784d3a10d75..71795b553145ae497c31947f5fbb03574a860767 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1513,6 +1513,11 @@ public class PurpurWorldConfig {
@@ -1523,6 +1523,11 @@ public class PurpurWorldConfig {
elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp);
}

View File

@@ -18,7 +18,7 @@ index 395ad65503c87250c0e2fa8112208f26fd3681be..7b28ec1c6d87bad32b46c6ac6cf9e97d
voxelshape1 = (VoxelShape) iterator.next();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 07d6455c781b8743a833cbc04576015433686c4b..d038e62a0151e3b5c9dee06f1b2682684d0b496e 100644
index cb8f67f0ad3531b110613c0ffb3c0cc23da23529..620f1207fc773f8602b748128557f1c73f0319fb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -461,9 +461,11 @@ public class PurpurConfig {

View File

@@ -18,10 +18,10 @@ index b6b367492ebe2af3e63381bef935c6077f6ddb27..09f34c30d9a03751ed826b26375ac5ae
@Override
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 8ad6437173dd39aa7415709efc8f65404abf7bd9..0811baed3de98fa011f191afeedb5cccd1a0ef4b 100644
index 71795b553145ae497c31947f5fbb03574a860767..c94463436d3bb8c6658f489746db450896fd14fa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1056,6 +1056,11 @@ public class PurpurWorldConfig {
@@ -1066,6 +1066,11 @@ public class PurpurWorldConfig {
}
}

View File

@@ -29,10 +29,10 @@ index 81fe0dea8e6e23c4a78f07fc2f9c0d68cd683f11..bff97b7d3909f2ec9e58a341b901b374
int i = aenumdirection.length;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 0811baed3de98fa011f191afeedb5cccd1a0ef4b..2e7b471b23694cdce1b8017c14e1f2ca62b90538 100644
index c94463436d3bb8c6658f489746db450896fd14fa..7b447d350029ecdb5a6539e15d3adbc4dcb05c59 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -903,6 +903,11 @@ public class PurpurWorldConfig {
@@ -913,6 +913,11 @@ public class PurpurWorldConfig {
composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess);
}

View File

@@ -33,10 +33,10 @@ index b86676ebcd6c301e5dd857d8e84e1db2c1da416b..cb950ba3ee3bdfe0ff7acdb94c7ee233
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 2e7b471b23694cdce1b8017c14e1f2ca62b90538..da2bde5acf5a2e79ad2885f4727844e85de5ca0d 100644
index 7b447d350029ecdb5a6539e15d3adbc4dcb05c59..add6e4eb827831478b33502aeb74a230bcd072fb 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -202,9 +202,11 @@ public class PurpurWorldConfig {
@@ -212,9 +212,11 @@ public class PurpurWorldConfig {
public int entityLifeSpan = 0;
public float entityLeftHandedChance = 0.05f;

View File

@@ -1211,7 +1211,7 @@ index 68e8f9913055219486ce19d95dcf9d7c76e08082..2c3ad553272ad651e6ca26917719e6d9
}
} else {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 580e01281f27a4cd1d3a243a7d4791b88910b5bb..5e979618feda785d3f36cf085e72eed23bdd3f22 100644
index 36022a0ab50655363d26be7dba765e2261baccdf..09cbc472d89d7d8730aedb76ef584b1ff159756b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -423,7 +423,7 @@ public abstract class LivingEntity extends Entity implements Attackable {

View File

@@ -18,10 +18,10 @@ index 35e94c06361795d032f995e8282f8b35c075dae7..0f90a6803851eba51e164772c984b1cd
if (entityhuman != null) {
double d2 = entityhuman.distanceToSqr(d0, (double) i, d1);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index da2bde5acf5a2e79ad2885f4727844e85de5ca0d..d678fbb4ea310b4f833f131618ed5901f1eebd7e 100644
index add6e4eb827831478b33502aeb74a230bcd072fb..79577d858edda20329e91520e0c0f66254272838 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -375,6 +375,7 @@ public class PurpurWorldConfig {
@@ -385,6 +385,7 @@ public class PurpurWorldConfig {
public boolean phantomSpawning;
public boolean villagerTraderSpawning;
public boolean villageSiegeSpawning;
@@ -29,7 +29,7 @@ index da2bde5acf5a2e79ad2885f4727844e85de5ca0d..d678fbb4ea310b4f833f131618ed5901
private void mobSpawnerSettings() {
// values of "default" or null will default to true only if the world environment is normal (aka overworld)
Predicate<Boolean> predicate = (bool) -> (bool != null && bool) || (bool == null && environment == World.Environment.NORMAL);
@@ -383,6 +384,7 @@ public class PurpurWorldConfig {
@@ -393,6 +394,7 @@ public class PurpurWorldConfig {
phantomSpawning = getBoolean("gameplay-mechanics.mob-spawning.phantoms", predicate);
villagerTraderSpawning = getBoolean("gameplay-mechanics.mob-spawning.wandering-traders", predicate);
villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate);

View File

@@ -18,10 +18,10 @@ index 8515e6360c1630385884a60f652f65fdefeaf540..e80307198b051cbcd9f72b36e4592768
org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper
if (event.isCancelled()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index d678fbb4ea310b4f833f131618ed5901f1eebd7e..af8be03143ea89af74ba86b6c0777c13e2eb7121 100644
index 79577d858edda20329e91520e0c0f66254272838..4cf4d2c3fef588cc4fbda4d27a08c7e34f11c1e6 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2496,6 +2496,8 @@ public class PurpurWorldConfig {
@@ -2506,6 +2506,8 @@ public class PurpurWorldConfig {
public boolean skeletonAlwaysDropExp = false;
public double skeletonHeadVisibilityPercent = 0.5D;
public int skeletonFeedWitherRoses = 0;
@@ -30,7 +30,7 @@ index d678fbb4ea310b4f833f131618ed5901f1eebd7e..af8be03143ea89af74ba86b6c0777c13
private void skeletonSettings() {
skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable);
skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater);
@@ -2510,6 +2512,18 @@ public class PurpurWorldConfig {
@@ -2520,6 +2522,18 @@ public class PurpurWorldConfig {
skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp);
skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent);
skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses);

View File

@@ -60,7 +60,7 @@ index 826b7e2bb897609a084555632f691ddb38882058..42a623254bd2886d09eb0cfeb01dd12d
// Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index d038e62a0151e3b5c9dee06f1b2682684d0b496e..b94f7b882405345f6154383beaef8d89673726c9 100644
index 620f1207fc773f8602b748128557f1c73f0319fb..62612451c23bb146e82f4082ca8677e5dc57a08f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -182,6 +182,8 @@ public class PurpurConfig {

View File

@@ -86,7 +86,7 @@ index cfe953bc924f46b570e37395ac0f05ebcb82eb39..5500e7ada2dd783cc1317968a3e54696
if (context.hasParam(LootContextParams.LOOTING_MOD)) {
i = context.getParamOrNull(LootContextParams.LOOTING_MOD);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index b94f7b882405345f6154383beaef8d89673726c9..9cda9416f015356a57c28fa5e4f62987f72c15f1 100644
index 62612451c23bb146e82f4082ca8677e5dc57a08f..3b3d5bd9e645f440e033abd3c234a017972efa59 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -497,4 +497,9 @@ public class PurpurConfig {

View File

@@ -18,7 +18,7 @@ index 3c1091f2a729b7d06ba6e21c37f788edb2ad1775..031fc626d2075cbe0941fecc18840671
protected final SoundType soundType;
protected final float friction;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 9cda9416f015356a57c28fa5e4f62987f72c15f1..bddf643f229d2a62746d89133e7013f1a3fafb45 100644
index 3b3d5bd9e645f440e033abd3c234a017972efa59..b2207e2baed339adb1594f19f9a3d4a709669935 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -502,4 +502,19 @@ public class PurpurConfig {

View File

@@ -18,7 +18,7 @@ index 549e3dd09a91ddf319fe0c1ec09924cbb600c1b8..a4a988ab1399702b943019e9c4e2cde3
@Override
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 6f7e90d406b088fee0eb254f8042bd404d8f36fa..c6ed00f89127a2857dfb9ce9e04513e5cf510dfb 100644
index 7ffe51eedc9d086424cf450026bdc260249864c4..5ae3decf100d21f7d4a471c155eaf5e00e996580 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -89,6 +89,10 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -32,7 +32,7 @@ index 6f7e90d406b088fee0eb254f8042bd404d8f36fa..c6ed00f89127a2857dfb9ce9e04513e5
// Paper start
public final boolean isDestroyable() {
return io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowPermanentBlockBreakExploits ||
@@ -467,7 +471,7 @@ public class Block extends BlockBehaviour implements ItemLike {
@@ -486,7 +490,7 @@ public class Block extends BlockBehaviour implements ItemLike {
}
public void fallOn(Level world, BlockState state, BlockPos pos, Entity entity, float fallDistance) {
@@ -54,7 +54,7 @@ index ef364aa171a48482a45bc18cfe730ec20c3f7be6..74971d90506aa253d5ee821b5390fb25
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index bddf643f229d2a62746d89133e7013f1a3fafb45..05c90e15cd487335840c7841874ebb99c576e1cc 100644
index b2207e2baed339adb1594f19f9a3d4a709669935..508b094272bede66826ad0f4908f115454b7d4f2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -517,4 +517,50 @@ public class PurpurConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Milk Keeps Beneficial Effects
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 5e979618feda785d3f36cf085e72eed23bdd3f22..fa698cfefccdddf5e5e9938a2959004c70f743a7 100644
index 09cbc472d89d7d8730aedb76ef584b1ff159756b..53ff232129443ba3242cfc57fc57026bf76d96e8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1154,6 +1154,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -30,7 +30,7 @@ index 62f5e5cfe5745deced2811d14d0c7ebb2c2c6948..c1e573758539a151452b12466339ccf8
this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this));
this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index af8be03143ea89af74ba86b6c0777c13e2eb7121..af8819ef2c6edc91e6ba2c11f31b677bf136117e 100644
index 4cf4d2c3fef588cc4fbda4d27a08c7e34f11c1e6..80b329b028f5224ce6a9d9ea64c92c633548fcb8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -128,6 +128,7 @@ public class PurpurWorldConfig {
@@ -40,12 +40,12 @@ index af8be03143ea89af74ba86b6c0777c13e2eb7121..af8819ef2c6edc91e6ba2c11f31b677b
+ public boolean milkClearsBeneficialEffects = true;
public boolean noteBlockIgnoreAbove = false;
public boolean persistentDroppableEntityDisplayNames = true;
public boolean projectilesBypassMobGriefing = false;
@@ -153,6 +154,7 @@ public class PurpurWorldConfig {
public boolean persistentTileEntityLore = false;
@@ -155,6 +156,7 @@ public class PurpurWorldConfig {
fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing);
imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways);
milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
+ milkClearsBeneficialEffects = getBoolean("gameplay-mechanics.milk-clears-beneficial-effects", milkClearsBeneficialEffects);
noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove);
persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames);
projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing);
if (PurpurConfig.version < 35) {
boolean oldVal = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityLore);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add log suppression for LibraryLoader
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 05c90e15cd487335840c7841874ebb99c576e1cc..33011a76cf02d7fa2860432ad13a8666e6094b4a 100644
index 508b094272bede66826ad0f4908f115454b7d4f2..16273aec24a4824557c0cfb2af2ac782a7a7ab75 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -470,11 +470,14 @@ public class PurpurConfig {

View File

@@ -24,10 +24,10 @@ index 137ec75ee803789deb7b1ca93dd9369c9af362b9..ca95d25af3e9a0536868b0c7fd8e7d2f
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index af8819ef2c6edc91e6ba2c11f31b677bf136117e..a3da09a662603d90da4e343e400227e317b4bf24 100644
index 80b329b028f5224ce6a9d9ea64c92c633548fcb8..396721bdc1a2bc58bd9d475d454d8f558299ac03 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1403,6 +1403,7 @@ public class PurpurWorldConfig {
@@ -1413,6 +1413,7 @@ public class PurpurWorldConfig {
public boolean creeperHealthRadius = false;
public boolean creeperAlwaysDropExp = false;
public double creeperHeadVisibilityPercent = 0.5D;
@@ -35,7 +35,7 @@ index af8819ef2c6edc91e6ba2c11f31b677bf136117e..a3da09a662603d90da4e343e400227e3
private void creeperSettings() {
creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable);
creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater);
@@ -1421,6 +1422,7 @@ public class PurpurWorldConfig {
@@ -1431,6 +1432,7 @@ public class PurpurWorldConfig {
creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius);
creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp);
creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent);

View File

@@ -17,10 +17,10 @@ index 7a27388b5155e7b2478b0daa02cb616829a5d4a2..3aae4fa4176c0bf170f4532ae187e312
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index a3da09a662603d90da4e343e400227e317b4bf24..f7eba6f2e188ee5504db11feb6b433c46b82f374 100644
index 396721bdc1a2bc58bd9d475d454d8f558299ac03..4ec1c7efc14edc4245c141bf75f00066dd329ecf 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -415,6 +415,7 @@ public class PurpurWorldConfig {
@@ -425,6 +425,7 @@ public class PurpurWorldConfig {
public String playerDeathExpDropEquation = "expLevel * 7";
public int playerDeathExpDropMax = 100;
public boolean teleportIfOutsideBorder = false;
@@ -28,7 +28,7 @@ index a3da09a662603d90da4e343e400227e317b4bf24..f7eba6f2e188ee5504db11feb6b433c4
public boolean totemOfUndyingWorksInInventory = false;
public boolean playerFixStuckPortal = false;
public boolean creativeOnePunch = false;
@@ -442,6 +443,7 @@ public class PurpurWorldConfig {
@@ -452,6 +453,7 @@ public class PurpurWorldConfig {
playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation);
playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax);
teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder);

View File

@@ -17,10 +17,10 @@ index 8c6ce06a1845832c8b0de654657788d2daf6b71b..15ca426701f1fc821da94a4dee577fdb
// Purpur start
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index f7eba6f2e188ee5504db11feb6b433c46b82f374..1c31adc9bebd8a282719ecc16d60bd45672507fe 100644
index 4ec1c7efc14edc4245c141bf75f00066dd329ecf..c2a1038235d4883bf4440c90e13c2d9fc399178b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -946,6 +946,7 @@ public class PurpurWorldConfig {
@@ -956,6 +956,7 @@ public class PurpurWorldConfig {
public double basedEndCrystalExplosionPower = 6.0D;
public boolean basedEndCrystalExplosionFire = false;
public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
@@ -28,7 +28,7 @@ index f7eba6f2e188ee5504db11feb6b433c46b82f374..1c31adc9bebd8a282719ecc16d60bd45
private void endCrystalSettings() {
if (PurpurConfig.version < 31) {
if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) {
@@ -973,6 +974,7 @@ public class PurpurWorldConfig {
@@ -983,6 +984,7 @@ public class PurpurWorldConfig {
log(Level.SEVERE, "Unknown value for `blocks.end-crystal.base.explosion-effect`! Using default of `BLOCK`");
basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
}

View File

@@ -36,10 +36,10 @@ index 2b9cc89a2e71b523c90bbfa987b0f8352efff95a..5ad48d2003fbd83e60f6faa685324961
BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT);
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 1c31adc9bebd8a282719ecc16d60bd45672507fe..9702ce32484954ec0aa4828315df443c1f518ec2 100644
index c2a1038235d4883bf4440c90e13c2d9fc399178b..5b54dcf2d352aa4f998d887fe2d8455b396794a2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -845,11 +845,13 @@ public class PurpurWorldConfig {
@@ -855,11 +855,13 @@ public class PurpurWorldConfig {
public int beaconLevelTwo = 30;
public int beaconLevelThree = 40;
public int beaconLevelFour = 50;

View File

@@ -39,7 +39,7 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 33011a76cf02d7fa2860432ad13a8666e6094b4a..7f57982ffdd3e571937e9f4a2fa4ac0ea88373f8 100644
index 16273aec24a4824557c0cfb2af2ac782a7a7ab75..e7bce4121f7bc2fe0acd8860a73c58dfed73330b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -506,6 +506,16 @@ public class PurpurConfig {

View File

@@ -27,10 +27,10 @@ index 6379b3b8e633d1a16532b4664e53fa5afa616ab6..69d8ff6a97335b6fe4b20a8229a77f25
}
// CraftBukkit end
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 9702ce32484954ec0aa4828315df443c1f518ec2..b0bfe3b3db03e36bdf837ed4a4a4f12ad887a5fd 100644
index 5b54dcf2d352aa4f998d887fe2d8455b396794a2..77308b060ef41c4782ef8fa92556e41c4bc8dcb0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -211,6 +211,11 @@ public class PurpurWorldConfig {
@@ -221,6 +221,11 @@ public class PurpurWorldConfig {
entitySharedRandom = getBoolean("settings.entity.shared-random", entitySharedRandom);
}

View File

@@ -137,10 +137,10 @@ index c48c622e92cedeaa46b929c7adfedec98dd5a3fb..6449b5c424443b5f0ee7e3fce8034494
+ // Purpur end
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index b0bfe3b3db03e36bdf837ed4a4a4f12ad887a5fd..3ad00e226f40685bc68fdb16712876b37a98f5d9 100644
index 77308b060ef41c4782ef8fa92556e41c4bc8dcb0..7af01c62e227e4a82b97b14aec8194f5b7cf481f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -899,8 +899,20 @@ public class PurpurWorldConfig {
@@ -909,8 +909,20 @@ public class PurpurWorldConfig {
}
public boolean cactusBreaksFromSolidNeighbors = true;

View File

@@ -27,7 +27,7 @@ index ce608784e0e35b67dde377436aaf42c956ce0644..f5debc8ddc496cd3e2d8b253511ee5cc
public int getValue() {
return this.value;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 3ad00e226f40685bc68fdb16712876b37a98f5d9..ea64ee3480b12e1c711e55705a2b792c0f473f32 100644
index 7af01c62e227e4a82b97b14aec8194f5b7cf481f..7fe4cb6bea84ad24ec2f1d7fe2f21fecbb0fc348 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -119,6 +119,7 @@ public class PurpurWorldConfig {
@@ -38,7 +38,7 @@ index 3ad00e226f40685bc68fdb16712876b37a98f5d9..ea64ee3480b12e1c711e55705a2b792c
public boolean alwaysTameInCreative = false;
public boolean boatEjectPlayersOnLand = false;
public boolean boatsDoFallDamage = false;
@@ -145,6 +146,7 @@ public class PurpurWorldConfig {
@@ -147,6 +148,7 @@ public class PurpurWorldConfig {
public int mobLastHurtByPlayerTime = 100;
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);

View File

@@ -42,10 +42,10 @@ index f1f352ec0e51f5db59254841a06c176c5a876fc9..dff0e7b08b973a1b29f916e63d3e4778
+ // Purpur end - Shears can defuse TNT
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index ea64ee3480b12e1c711e55705a2b792c0f473f32..71d22e8966e24120dc00f79810251341fd243fc1 100644
index 7fe4cb6bea84ad24ec2f1d7fe2f21fecbb0fc348..15e0e921e60e11d74b0a58135c81a040731f5c7e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -3267,4 +3267,11 @@ public class PurpurWorldConfig {
@@ -3277,4 +3277,11 @@ public class PurpurWorldConfig {
cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance);
cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance);
}

View File

@@ -18,10 +18,10 @@ index 5668aca08732e317c7bccacf1cfaae7d8666bce6..07dc8a43f4e8c54a94696b84896d32f6
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 71d22e8966e24120dc00f79810251341fd243fc1..bb965615c778f38e0de6853b4271e39af436e384 100644
index 15e0e921e60e11d74b0a58135c81a040731f5c7e..bab93aaa84e4cd0a8c6e3a6dede84fd497d63d03 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2082,6 +2082,7 @@ public class PurpurWorldConfig {
@@ -2092,6 +2092,7 @@ public class PurpurWorldConfig {
public int ocelotBreedingTicks = 6000;
public boolean ocelotTakeDamageFromWater = false;
public boolean ocelotAlwaysDropExp = false;
@@ -29,7 +29,7 @@ index 71d22e8966e24120dc00f79810251341fd243fc1..bb965615c778f38e0de6853b4271e39a
private void ocelotSettings() {
ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable);
ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater);
@@ -2095,6 +2096,7 @@ public class PurpurWorldConfig {
@@ -2105,6 +2106,7 @@ public class PurpurWorldConfig {
ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks);
ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater);
ocelotAlwaysDropExp = getBoolean("mobs.ocelot.always-drop-exp", ocelotAlwaysDropExp);

View File

@@ -29,10 +29,10 @@ index e25af9af8f87e6762716749c367658bf6bda9e34..b7d5c0b0e3741fcf04c4bac21a82fc41
piglin.getBrain().eraseMemory(MemoryModuleType.WALK_TARGET);
piglin.getNavigation().stop();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index bb965615c778f38e0de6853b4271e39af436e384..dc85580bd895babb6e10cefe1ab9eee3d3178959 100644
index bab93aaa84e4cd0a8c6e3a6dede84fd497d63d03..3092afc7ed608a36edddc6a149b25742ffd38fb8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2251,6 +2251,7 @@ public class PurpurWorldConfig {
@@ -2261,6 +2261,7 @@ public class PurpurWorldConfig {
public int piglinPortalSpawnModifier = 2000;
public boolean piglinAlwaysDropExp = false;
public double piglinHeadVisibilityPercent = 0.5D;
@@ -40,7 +40,7 @@ index bb965615c778f38e0de6853b4271e39af436e384..dc85580bd895babb6e10cefe1ab9eee3
private void piglinSettings() {
piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable);
piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater);
@@ -2266,6 +2267,7 @@ public class PurpurWorldConfig {
@@ -2276,6 +2277,7 @@ public class PurpurWorldConfig {
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
piglinHeadVisibilityPercent = getDouble("mobs.piglin.head-visibility-percent", piglinHeadVisibilityPercent);

View File

@@ -31,7 +31,7 @@ index 812091bf6efc067b21b9723b8241360d4b4c79e7..25e614be19b2b29b36af136b823f27f8
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 7f57982ffdd3e571937e9f4a2fa4ac0ea88373f8..d7df39dc0937f37746b17bbad810478d11736f4b 100644
index e7bce4121f7bc2fe0acd8860a73c58dfed73330b..6e0e871153e0ec85fd40ddf0581b6ed2932b9f99 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -576,4 +576,9 @@ public class PurpurConfig {

View File

@@ -18,10 +18,10 @@ index dd1bdb4bb87a3a59c229ba76b36841d199717624..54607cea2622f259aedfe425b60e2317
} else {
BlockPos blockposition1 = blockposition.above(); final BlockPos aboveBlockPosition = blockposition1; // Paper - OBFHELPER
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index dc85580bd895babb6e10cefe1ab9eee3d3178959..5d609c0d67d59c35d9c5ee96dcf2ff0c7afe85a8 100644
index 3092afc7ed608a36edddc6a149b25742ffd38fb8..fd596f0e27ecf722cdd90797f4c3ed5b8b4e10e3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -968,6 +968,7 @@ public class PurpurWorldConfig {
@@ -978,6 +978,7 @@ public class PurpurWorldConfig {
public boolean basedEndCrystalExplosionFire = false;
public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
public int endCrystalCramming = 0;
@@ -29,7 +29,7 @@ index dc85580bd895babb6e10cefe1ab9eee3d3178959..5d609c0d67d59c35d9c5ee96dcf2ff0c
private void endCrystalSettings() {
if (PurpurConfig.version < 31) {
if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) {
@@ -996,6 +997,7 @@ public class PurpurWorldConfig {
@@ -1006,6 +1007,7 @@ public class PurpurWorldConfig {
basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK;
}
endCrystalCramming = getInt("blocks.end-crystal.cramming-amount", endCrystalCramming);

View File

@@ -18,10 +18,10 @@ index daae7fd6e0148cfba8e359d990748a0c83a3376e..0e06b1bcd906e92c083dc74d56d6d0a2
return random.nextFloat() < f1 ? this.getNext(state) : Optional.empty();
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 5d609c0d67d59c35d9c5ee96dcf2ff0c7afe85a8..7ce389e6100b4e8a14ca712f4815350e317dc3f0 100644
index fd596f0e27ecf722cdd90797f4c3ed5b8b4e10e3..3bf9d778f826f30ed7ccdfc81336f21fa3307fcd 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -144,6 +144,7 @@ public class PurpurWorldConfig {
@@ -146,6 +146,7 @@ public class PurpurWorldConfig {
public boolean rainStopsAfterSleep = true;
public boolean thunderStopsAfterSleep = true;
public int mobLastHurtByPlayerTime = 100;
@@ -29,7 +29,7 @@ index 5d609c0d67d59c35d9c5ee96dcf2ff0c7afe85a8..7ce389e6100b4e8a14ca712f4815350e
private void miscGameplayMechanicsSettings() {
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
mendingMultiplier = getDouble("gameplay-mechanics.mending-multiplier", mendingMultiplier);
@@ -171,6 +172,7 @@ public class PurpurWorldConfig {
@@ -181,6 +182,7 @@ public class PurpurWorldConfig {
rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep);
thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep);
mobLastHurtByPlayerTime = getInt("gameplay-mechanics.mob-last-hurt-by-player-time", mobLastHurtByPlayerTime);

View File

@@ -32,7 +32,7 @@ index 8925440dbc35dbc4a7d59f13511d7afeda803260..411f1f8c6be072cfc5ba88cbec38dbc4
io.papermc.paper.plugin.PluginInitializerManager.load(optionset); // Paper
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index d7df39dc0937f37746b17bbad810478d11736f4b..046304d9149472eaffb3ff5f4fa22a230969de86 100644
index 6e0e871153e0ec85fd40ddf0581b6ed2932b9f99..f49108ed94f7787347c5e0a721646083d6dffafc 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -581,4 +581,9 @@ public class PurpurConfig {

View File

@@ -31,10 +31,10 @@ index 92731b6b593289e9f583c9b705b219e81fcd8e73..9104d7010bda6f9f73b478c11490ef9c
// Paper end - optimise POI access
if (path != null && path.canReach()) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 7ce389e6100b4e8a14ca712f4815350e317dc3f0..8704cc621937beda692bf484cf5ef11b2d7d7e4c 100644
index 3bf9d778f826f30ed7ccdfc81336f21fa3307fcd..7a9a5985b1429c25467db732678d0658aafcfafa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2881,6 +2881,8 @@ public class PurpurWorldConfig {
@@ -2891,6 +2891,8 @@ public class PurpurWorldConfig {
public boolean villagerDisplayTradeItem = true;
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@@ -43,7 +43,7 @@ index 7ce389e6100b4e8a14ca712f4815350e317dc3f0..8704cc621937beda692bf484cf5ef11b
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -2917,6 +2919,8 @@ public class PurpurWorldConfig {
@@ -2927,6 +2929,8 @@ public class PurpurWorldConfig {
villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem);
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);