diff --git a/gradle.properties b/gradle.properties index 41f4f1119..32dc4c64f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ version = 1.17.1-R0.1-SNAPSHOT mcVersion = 1.17.1 packageVersion = 1_17_R1 -paperCommit = a6151865026f70340268d4db1712a9b04e75b8c2 +paperCommit = 20903fcf5e227a1a03e2afd89f01bfe951b2b328 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index 53b9636f0..1b8fdda51 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -5749,10 +5749,10 @@ index 0e1dcfdf846f978340380352e092375ffa089cb0..7c51a6113bbf35f96693daf2988b6d59 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index db6c0917824b9127abd9f9250dc195a9f1d56f4f..89ad1c69456fb4aaf2ab8742c76343b30b74ecd0 100644 +index 31bbf018e3b7cafb1e186c7d00b421fb133331a3..18059a30b53f566dd1d2ed3af1460e5672d6e32f 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -537,6 +537,15 @@ public class CraftEventFactory { +@@ -541,6 +541,15 @@ public class CraftEventFactory { } craftServer.getPluginManager().callEvent(event); @@ -5768,7 +5768,7 @@ index db6c0917824b9127abd9f9250dc195a9f1d56f4f..89ad1c69456fb4aaf2ab8742c76343b3 return event; } -@@ -960,6 +969,7 @@ public class CraftEventFactory { +@@ -964,6 +973,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions); @@ -5776,7 +5776,7 @@ index db6c0917824b9127abd9f9250dc195a9f1d56f4f..89ad1c69456fb4aaf2ab8742c76343b3 } event.setCancelled(cancelled); -@@ -1045,6 +1055,7 @@ public class CraftEventFactory { +@@ -1049,6 +1059,7 @@ public class CraftEventFactory { if (!event.isCancelled()) { event.getEntity().setLastDamageCause(event); } @@ -5784,7 +5784,7 @@ index db6c0917824b9127abd9f9250dc195a9f1d56f4f..89ad1c69456fb4aaf2ab8742c76343b3 return event; } -@@ -1096,6 +1107,7 @@ public class CraftEventFactory { +@@ -1100,6 +1111,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); diff --git a/patches/server/0025-Silk-touch-spawners.patch b/patches/server/0025-Silk-touch-spawners.patch index 478dd47d6..8c454e398 100644 --- a/patches/server/0025-Silk-touch-spawners.patch +++ b/patches/server/0025-Silk-touch-spawners.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Silk touch spawners diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java -index f63b80a1120b2bf5f77f1c1edb928309a1272f79..363f94e86e3349d9ed03b692e136307fe9fa5e28 100644 +index 41762b5ed19b17ee524f79726eaa4cf38479ba96..9054268a0cf54b53f24084f304a3ef75ef17a16e 100644 --- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java -@@ -80,6 +80,7 @@ public final class PaperAdventure { +@@ -85,6 +85,7 @@ public final class PaperAdventure { }) .build(); public static final LegacyComponentSerializer LEGACY_SECTION_UXRC = LegacyComponentSerializer.builder().flattener(FLATTENER).hexColors().useUnusualXRepeatedCharacterHexFormat().build(); diff --git a/patches/server/0067-Add-canSaveToDisk-to-Entity.patch b/patches/server/0067-Add-canSaveToDisk-to-Entity.patch index b34e3265a..38a67e8fe 100644 --- a/patches/server/0067-Add-canSaveToDisk-to-Entity.patch +++ b/patches/server/0067-Add-canSaveToDisk-to-Entity.patch @@ -35,11 +35,11 @@ index f52420f27f51d9dbf214f96a0530c0f17f2bc5fc..12cd1b453150e098975c34e00ec9277f skull.setPosRaw(headX, headY, headZ); level.addFreshEntity(skull); diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -index 05af8f292a598a242a396afe4c2ddb2aa2c6b42e..47d138627286ef03339ac06b6c7f4a151bdcb823 100644 +index 916f93b097a65f95e830fe5e1567c85d304f808f..0ec5522e0233877792cb85e170a0d58883789d5d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java -@@ -92,6 +92,7 @@ public class EntityStorage implements EntityPersistentStorage { - ListTag listTag = new ListTag(); +@@ -109,6 +109,7 @@ public class EntityStorage implements EntityPersistentStorage { + final java.util.Map, Integer> savedEntityCounts = new java.util.HashMap<>(); // Paper dataList.getEntities().forEach((entity) -> { + if (!entity.canSaveToDisk()) return; // Purpur diff --git a/patches/server/0087-Configurable-feature-seed-settings.patch b/patches/server/0087-Configurable-feature-seed-settings.patch deleted file mode 100644 index 7a144a7d1..000000000 --- a/patches/server/0087-Configurable-feature-seed-settings.patch +++ /dev/null @@ -1,969 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Wed, 15 Jul 2020 11:49:36 -0500 -Subject: [PATCH] Configurable feature seed settings - - -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BambooFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BambooFeature.java -index 7f3792fce13fbc27364b7d881933f54138717f51..f16c2ea9c44bb9889f4b12cb89367ef90a9bf222 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BambooFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BambooFeature.java -@@ -27,7 +27,7 @@ public class BambooFeature extends Feature { - int i = 0; - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureBamboo); // Purpur - ProbabilityFeatureConfiguration probabilityFeatureConfiguration = context.config(); - BlockPos.MutableBlockPos mutableBlockPos = blockPos.mutable(); - BlockPos.MutableBlockPos mutableBlockPos2 = blockPos.mutable(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltColumnsFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltColumnsFeature.java -index 1949477637d826978e01547624bfccdb5048afb1..1af28ee54dc061d9ab1f06d07f4b8d58e7794677 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltColumnsFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltColumnsFeature.java -@@ -29,7 +29,7 @@ public class BasaltColumnsFeature extends Feature { - int i = context.chunkGenerator().getSeaLevel(); - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureBasaltColumns); // Purpur - ColumnFeatureConfiguration columnFeatureConfiguration = context.config(); - if (!canPlaceAt(worldGenLevel, i, blockPos.mutable())) { - return false; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltPillarFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltPillarFeature.java -index 94c01df47765c7e7e9cc4cd59b87e14ead4e4e86..39b6d627ff7c59b91ab22d5eba8658232784b50f 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltPillarFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BasaltPillarFeature.java -@@ -19,7 +19,7 @@ public class BasaltPillarFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureBasaltPillar); // Purpur - if (worldGenLevel.isEmptyBlock(blockPos) && !worldGenLevel.isEmptyBlock(blockPos.above())) { - BlockPos.MutableBlockPos mutableBlockPos = blockPos.mutable(); - BlockPos.MutableBlockPos mutableBlockPos2 = blockPos.mutable(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BaseDiskFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BaseDiskFeature.java -index 080bc62fa178bb84ad8672268e75be2ad554dfd2..b48084e3b63bda65ab58d5966dc5b0c94cef2992 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BaseDiskFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BaseDiskFeature.java -@@ -14,17 +14,20 @@ public class BaseDiskFeature extends Feature { - super(configCodec); - } - -+ protected net.minecraft.core.BlockPos origin; // Purpur -+ protected java.util.Random random; // Purpur -+ - @Override - public boolean place(FeaturePlaceContext context) { - DiskConfiguration diskConfiguration = context.config(); -- BlockPos blockPos = context.origin(); -+ BlockPos blockPos = this.origin; // Purpur - WorldGenLevel worldGenLevel = context.level(); - boolean bl = false; - int i = blockPos.getY(); - int j = i + diskConfiguration.halfHeight; - int k = i - diskConfiguration.halfHeight - 1; - boolean bl2 = diskConfiguration.state.getBlock() instanceof FallingBlock; -- int l = diskConfiguration.radius.sample(context.random()); -+ int l = diskConfiguration.radius.sample(this.random); // Purpur - - for(int m = blockPos.getX() - l; m <= blockPos.getX() + l; ++m) { - for(int n = blockPos.getZ() - l; n <= blockPos.getZ() + l; ++n) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BlockBlobFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BlockBlobFeature.java -index fb7002cbc3a80e390f3220e1e8a8c3ad85b97b52..455d6ac2824a8a6cfa8cc89f7f108d2c855c692c 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BlockBlobFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BlockBlobFeature.java -@@ -16,7 +16,7 @@ public class BlockBlobFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureForestRock); // Purpur - - BlockStateConfiguration blockStateConfiguration; - for(blockStateConfiguration = context.config(); blockPos.getY() > worldGenLevel.getMinBuildHeight() + 3; blockPos = blockPos.below()) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BlockPileFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BlockPileFeature.java -index 2cdb1f0dd3e5d184f4cf5f3807c0e76913e62be0..749577d6a8fc01cd89fef885961de2cf59145f75 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BlockPileFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BlockPileFeature.java -@@ -19,7 +19,7 @@ public class BlockPileFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureBlockPile); // Purpur - BlockPileConfiguration blockPileConfiguration = context.config(); - if (blockPos.getY() < worldGenLevel.getMinBuildHeight() + 5) { - return false; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BlueIceFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BlueIceFeature.java -index fd289d06417a96a95265f0da835b7ca868eba6b6..0c9ca3866caf870f07c6a1c84832a0efad4934a5 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BlueIceFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BlueIceFeature.java -@@ -19,7 +19,7 @@ public class BlueIceFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureBlueIce); // Purpur - if (blockPos.getY() > worldGenLevel.getSeaLevel() - 1) { - return false; - } else if (!worldGenLevel.getBlockState(blockPos).is(Blocks.WATER) && !worldGenLevel.getBlockState(blockPos.below()).is(Blocks.WATER)) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/BonusChestFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/BonusChestFeature.java -index f0897875e9b61a9e49f0acf31fdfac6237dc32b3..47f14f5b331c925222e363ef3b42a5539c1b626f 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/BonusChestFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/BonusChestFeature.java -@@ -24,7 +24,7 @@ public class BonusChestFeature extends Feature { - - @Override - public boolean place(FeaturePlaceContext context) { -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureBonusChest); // Purpur - WorldGenLevel worldGenLevel = context.level(); - ChunkPos chunkPos = new ChunkPos(context.origin()); - List list = IntStream.rangeClosed(chunkPos.getMinBlockX(), chunkPos.getMaxBlockX()).boxed().collect(Collectors.toList()); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/ChorusPlantFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/ChorusPlantFeature.java -index 6640061ecc11ec3e4a0203d8d6990489fcf10729..565f32a933090360412d9c98f8945f1719a768d3 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/ChorusPlantFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/ChorusPlantFeature.java -@@ -17,7 +17,7 @@ public class ChorusPlantFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureChorusPlant); // Purpur - if (worldGenLevel.isEmptyBlock(blockPos) && worldGenLevel.getBlockState(blockPos.below()).is(Blocks.END_STONE)) { - ChorusFlowerBlock.generatePlant(worldGenLevel, blockPos, random, 8); - return true; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java -index 17f603fe4508fd8b803a2e921a169eccf0d20585..76b32e7cb8ec952475a98478294806426ce5a667 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralClawFeature.java -@@ -17,6 +17,14 @@ public class CoralClawFeature extends CoralFeature { - super(configCodec); - } - -+ // Purpur start -+ @Override -+ public boolean place(FeaturePlaceContext context) { -+ this.random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureCoralClaw); -+ return super.place(context); -+ } -+ // Purpur end -+ - @Override - protected boolean placeFeature(LevelAccessor world, Random random, BlockPos pos, BlockState state) { - if (!this.placeCoralBlock(world, random, pos, state)) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralFeature.java -index 15b99d94b7d3e494a2fe4a205f9145b5fabbc125..650296b6526d06df0bca12262db90aec380d35f3 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralFeature.java -@@ -18,9 +18,11 @@ public abstract class CoralFeature extends Feature { - super(configCodec); - } - -+ protected Random random; // Purpur -+ - @Override - public boolean place(FeaturePlaceContext context) { -- Random random = context.random(); -+ //Random random = context.random(); // Purpur - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); - BlockState blockState = BlockTags.CORAL_BLOCKS.getRandomElement(random).defaultBlockState(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java -index 8c2b3a037bac75fcadafd368ff8416f5de00df7f..85522d9c8ac4893aedb208b0f054ff0016808e56 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralMushroomFeature.java -@@ -13,6 +13,14 @@ public class CoralMushroomFeature extends CoralFeature { - super(configCodec); - } - -+ // Purpur start -+ @Override -+ public boolean place(FeaturePlaceContext context) { -+ this.random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureCoralMushroom); -+ return super.place(context); -+ } -+ // Purpur end -+ - @Override - protected boolean placeFeature(LevelAccessor world, Random random, BlockPos pos, BlockState state) { - int i = random.nextInt(3) + 3; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java -index 8d1985c96277a50c39858ee7754ed3d34d10d8cb..4cb63f98aca829154c67f354c64d7bef4af095cb 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/CoralTreeFeature.java -@@ -16,6 +16,14 @@ public class CoralTreeFeature extends CoralFeature { - super(configCodec); - } - -+ // Purpur start -+ @Override -+ public boolean place(FeaturePlaceContext context) { -+ this.random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureCoralTree); -+ return super.place(context); -+ } -+ // Purpur end -+ - @Override - protected boolean placeFeature(LevelAccessor world, Random random, BlockPos pos, BlockState state) { - BlockPos.MutableBlockPos mutableBlockPos = pos.mutable(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java -index ae11f1ecf23b38b84ab09f66796d1509a21bfbd8..2d102ea80d3f8e8aad0d57626450a7f30bb6c346 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java -@@ -21,7 +21,7 @@ public class DecoratedFeature extends Feature { - WorldGenLevel worldGenLevel = context.level(); - DecoratedFeatureConfiguration decoratedFeatureConfiguration = context.config(); - ChunkGenerator chunkGenerator = context.chunkGenerator(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureDecorated); // Purpur - BlockPos blockPos = context.origin(); - ConfiguredFeature configuredFeature = decoratedFeatureConfiguration.feature.get(); - decoratedFeatureConfiguration.decorator.getPositions(new DecorationContext(worldGenLevel, chunkGenerator), random, blockPos).forEach((blockPosx) -> { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/DefaultFlowerFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/DefaultFlowerFeature.java -index 2bc983496d77058ecbb89d33c5614d798d321b85..4e715ba8c4cbffc681ec3c1256d286538a38bebd 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/DefaultFlowerFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/DefaultFlowerFeature.java -@@ -29,6 +29,7 @@ public class DefaultFlowerFeature extends AbstractFlowerFeature { - @Override - public boolean place(FeaturePlaceContext context) { - boolean bl = false; -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureDeltaFeature); // Purpur - WorldGenLevel worldGenLevel = context.level(); - DeltaFeatureConfiguration deltaFeatureConfiguration = context.config(); - BlockPos blockPos = context.origin(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/DiskReplaceFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/DiskReplaceFeature.java -index b29719a0af670261073ef2a1d87ca255f9de095b..a957765736a2c49a58254fb6bedbc8f961811224 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/DiskReplaceFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/DiskReplaceFeature.java -@@ -11,6 +11,8 @@ public class DiskReplaceFeature extends BaseDiskFeature { - - @Override - public boolean place(FeaturePlaceContext context) { -+ this.origin = context.origin(); // Purpur -+ this.random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureDisk); // Purpur - return !context.level().getFluidState(context.origin()).is(FluidTags.WATER) ? false : super.place(context); - } - } -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/DripstoneClusterFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/DripstoneClusterFeature.java -index eeda6ce19bef98f939a4ecd12e0e63c6bf6d3986..3f94aadc6216a83714be8af9e22ed56fb5bc1b93 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/DripstoneClusterFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/DripstoneClusterFeature.java -@@ -28,7 +28,7 @@ public class DripstoneClusterFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureEndIsland); // Purpur - BlockPos blockPos = context.origin(); - float f = (float)(random.nextInt(3) + 4); - -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/Feature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/Feature.java -index 66f97b70985ed728eadcf837f25e81a256c2033b..6120409ab412c1237b44862ed1c402c855ededf0 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/Feature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/Feature.java -@@ -118,6 +118,21 @@ public abstract class Feature { - return Registry.register(Registry.FEATURE, name, feature); - } - -+ // Purpur start -+ @org.jetbrains.annotations.Nullable -+ private java.util.Random rnd; -+ -+ protected java.util.Random getRnd(java.util.Random rand, int seed) { -+ if (seed == -1) { -+ return rand; -+ } -+ if(this.rnd == null) { -+ this.rnd = new java.util.Random(seed); -+ } -+ return this.rnd; -+ } -+ // Purpur end -+ - public Feature(Codec configCodec) { - this.configuredCodec = configCodec.fieldOf("config").xmap((config) -> { - return new ConfiguredFeature<>(this, config); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/FossilFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/FossilFeature.java -index 82ea6a21d5fe0853c8fe1ef245609f01e9dbadb7..5032d5d190835aa941dfe5a2203f5b22966f6f2f 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/FossilFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/FossilFeature.java -@@ -24,7 +24,7 @@ public class FossilFeature extends Feature { - - @Override - public boolean place(FeaturePlaceContext context) { -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureFossil); // Purpur - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); - Rotation rotation = Rotation.getRandom(random); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/GeodeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/GeodeFeature.java -index 74a0adf4adf2b701126724e08bb72fa4e8e8560a..37756eb9e84ad8d91e6ede9b6c9264b2dc8371d5 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/GeodeFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/GeodeFeature.java -@@ -34,7 +34,7 @@ public class GeodeFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - GeodeConfiguration geodeConfiguration = context.config(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureGeode); // Purpur - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); - int i = geodeConfiguration.minGenOffset; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/GlowLichenFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/GlowLichenFeature.java -index f8e72b9e68e0ce7611005650bee24842099973a7..817c3117f1d7f0fe2d627e87444f71f8c8fd06df 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/GlowLichenFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/GlowLichenFeature.java -@@ -23,7 +23,7 @@ public class GlowLichenFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureGlowLichen); // Purpur - GlowLichenConfiguration glowLichenConfiguration = context.config(); - if (!isAirOrWater(worldGenLevel.getBlockState(blockPos))) { - return false; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/GlowstoneFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/GlowstoneFeature.java -index df6229c8d2d8bc182d113fa1508da5a3948516e2..2a1337006f06f399dd8885c1b0380389c1dde493 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/GlowstoneFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/GlowstoneFeature.java -@@ -18,7 +18,7 @@ public class GlowstoneFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureGlowstoneBlob); // Purpur - if (!worldGenLevel.isEmptyBlock(blockPos)) { - return false; - } else { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/GrowingPlantFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/GrowingPlantFeature.java -index 6f0549c72d9fedae39da1427b6facbf938da5d3f..db22ef9d2a1529096b5b44cc76d909dfadc77e42 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/GrowingPlantFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/GrowingPlantFeature.java -@@ -17,7 +17,7 @@ public class GrowingPlantFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - LevelAccessor levelAccessor = context.level(); - GrowingPlantConfiguration growingPlantConfiguration = context.config(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureGrowingPlant); // Purpur - int i = growingPlantConfiguration.heightDistribution.getRandomValue(random).orElseThrow(IllegalStateException::new).sample(random); - BlockPos.MutableBlockPos mutableBlockPos = context.origin().mutable(); - BlockPos.MutableBlockPos mutableBlockPos2 = mutableBlockPos.mutable().move(growingPlantConfiguration.direction); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/HugeBrownMushroomFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/HugeBrownMushroomFeature.java -index 9261ca82851fb28ac17fc636bacd22cd02b1cbc5..e55594840a9cede00bc997ac667438a695acd74a 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/HugeBrownMushroomFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/HugeBrownMushroomFeature.java -@@ -15,6 +15,7 @@ public class HugeBrownMushroomFeature extends AbstractHugeMushroomFeature { - - @Override - protected void makeCap(LevelAccessor world, Random random, BlockPos start, int y, BlockPos.MutableBlockPos mutable, HugeMushroomFeatureConfiguration config) { -+ random = getRnd(random, net.pl3x.purpur.PurpurConfig.seedFeatureHugeBrownMushroom); // Purpur - int i = config.foliageRadius; - - for(int j = -i; j <= i; ++j) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/HugeFungusFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/HugeFungusFeature.java -index 44ae76882096cc6270a39754adf6070433c1e8d7..4f1cc232ec3e9a498308cf00749d7cda5ba60542 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/HugeFungusFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/HugeFungusFeature.java -@@ -24,7 +24,7 @@ public class HugeFungusFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureHugeFungus); // Purpur - ChunkGenerator chunkGenerator = context.chunkGenerator(); - HugeFungusConfiguration hugeFungusConfiguration = context.config(); - Block block = hugeFungusConfiguration.validBaseState.getBlock(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/HugeRedMushroomFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/HugeRedMushroomFeature.java -index c5e436fa3188bee2cd546a6bc59cdb6b90c5d816..27d4a21321729a52fb9879131cf413df12c1e25d 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/HugeRedMushroomFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/HugeRedMushroomFeature.java -@@ -15,6 +15,7 @@ public class HugeRedMushroomFeature extends AbstractHugeMushroomFeature { - - @Override - protected void makeCap(LevelAccessor world, Random random, BlockPos start, int y, BlockPos.MutableBlockPos mutable, HugeMushroomFeatureConfiguration config) { -+ random = getRnd(random, net.pl3x.purpur.PurpurConfig.seedFeatureHugeRedMushroom); // Purpur - for(int i = y - 3; i <= y; ++i) { - int j = i < y ? config.foliageRadius : config.foliageRadius - 1; - int k = config.foliageRadius - 2; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/IcePatchFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/IcePatchFeature.java -index 17b03939edeb0a51fdaa4cb5313a9b8e0c81471e..d415263abda0505acd0af16724a3501a0e00f7bc 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/IcePatchFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/IcePatchFeature.java -@@ -16,14 +16,19 @@ public class IcePatchFeature extends BaseDiskFeature { - @Override - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); -- ChunkGenerator chunkGenerator = context.chunkGenerator(); -- Random random = context.random(); -- DiskConfiguration diskConfiguration = context.config(); -+ // Purpur start -+ //ChunkGenerator chunkGenerator = context.chunkGenerator(); -+ this.random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureIcePatch); // Purpur -+ //DiskConfiguration diskConfiguration = context.config(); -+ // Purpur end - - BlockPos blockPos; - for(blockPos = context.origin(); worldGenLevel.isEmptyBlock(blockPos) && blockPos.getY() > worldGenLevel.getMinBuildHeight() + 2; blockPos = blockPos.below()) { - } - -- return !worldGenLevel.getBlockState(blockPos).is(Blocks.SNOW_BLOCK) ? false : super.place(new FeaturePlaceContext<>(worldGenLevel, chunkGenerator, random, blockPos, diskConfiguration)); -+ // Purpur start - lets not allocate _another_ context here... -+ this.origin = blockPos; -+ return !worldGenLevel.getBlockState(blockPos).is(Blocks.SNOW_BLOCK) ? false : super.place(context); -+ // Purpur end - } - } -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/IceSpikeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/IceSpikeFeature.java -index a580c19c4d6f00472da0a229808c5962322e5b7f..1fbf9b071e4253b860e863d3b79dfe4079e453a4 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/IceSpikeFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/IceSpikeFeature.java -@@ -17,7 +17,7 @@ public class IceSpikeFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureIceSpike); // Purpur - - WorldGenLevel worldGenLevel; - for(worldGenLevel = context.level(); worldGenLevel.isEmptyBlock(blockPos) && blockPos.getY() > worldGenLevel.getMinBuildHeight() + 2; blockPos = blockPos.below()) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/IcebergFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/IcebergFeature.java -index c12ce0d8e4e0e3caa7cb4a17787498a546d8bcca..0726174d6e1b4c4653ae53b25e22e36fb68f4cb3 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/IcebergFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/IcebergFeature.java -@@ -22,7 +22,7 @@ public class IcebergFeature extends Feature { - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); - blockPos = new BlockPos(blockPos.getX(), context.chunkGenerator().getSeaLevel(), blockPos.getZ()); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureIceberg); // Purpur - boolean bl = random.nextDouble() > 0.7D; - BlockState blockState = (context.config()).state; - double d = random.nextDouble() * 2.0D * Math.PI; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/KelpFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/KelpFeature.java -index ecf431bffe7da1f1a82b054213a736ad0fa17029..54a41a1536ada31402cdfe428c02492c0cc4b6fb 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/KelpFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/KelpFeature.java -@@ -20,7 +20,7 @@ public class KelpFeature extends Feature { - int i = 0; - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureKelp); // Purpur - int j = worldGenLevel.getHeight(Heightmap.Types.OCEAN_FLOOR, blockPos.getX(), blockPos.getZ()); - BlockPos blockPos2 = new BlockPos(blockPos.getX(), j, blockPos.getZ()); - if (worldGenLevel.getBlockState(blockPos2).is(Blocks.WATER)) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/LakeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/LakeFeature.java -index f3d9fc4b64089c5f406b346f92a2bcd00e98e370..5cc88872bf2eb54bb1ac04b1b837617a096b6f4f 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/LakeFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/LakeFeature.java -@@ -25,7 +25,7 @@ public class LakeFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureLake); // Purpur - - BlockStateConfiguration blockStateConfiguration; - for(blockStateConfiguration = context.config(); blockPos.getY() > worldGenLevel.getMinBuildHeight() + 5 && worldGenLevel.isEmptyBlock(blockPos); blockPos = blockPos.below()) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/LargeDripstoneFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/LargeDripstoneFeature.java -index 975e1f0fb37e1e289eba73cc6cb51adba7ba2667..523bbd94f4b83c0123873083267cf28fc64a2e33 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/LargeDripstoneFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/LargeDripstoneFeature.java -@@ -26,7 +26,7 @@ public class LargeDripstoneFeature extends Feature - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); - LargeDripstoneConfiguration largeDripstoneConfiguration = context.config(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureLargeDripstone); // Purpur - if (!DripstoneUtils.isEmptyOrWater(worldGenLevel, blockPos)) { - return false; - } else { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java -index d36b6208077254af5f0ebed8e8ce20fd45cbb79d..d60a6e06cd5730f1efbccde71834b0f1b619b66b 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/MonsterRoomFeature.java -@@ -34,7 +34,7 @@ public class MonsterRoomFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - Predicate predicate = Feature.isReplaceable(BlockTags.FEATURES_CANNOT_REPLACE.getName()); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureMonsterRoom); // Purpur - WorldGenLevel worldGenLevel = context.level(); - int i = 3; - int j = random.nextInt(2) + 2; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/NetherForestVegetationFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/NetherForestVegetationFeature.java -index c8af12a5989bb8d8800927c8b2d7988a5d26614c..3f90becb14be2cfd7467596da1b85ee4c8708421 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/NetherForestVegetationFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/NetherForestVegetationFeature.java -@@ -15,7 +15,8 @@ public class NetherForestVegetationFeature extends Feature context) { -- return place(context.level(), context.random(), context.origin(), context.config(), 8, 4); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureNetherFortressVegetation); // Purpur -+ return place(context.level(), random, context.origin(), context.config(), 8, 4); // Purpur - } - - public static boolean place(LevelAccessor world, Random random, BlockPos pos, BlockPileConfiguration config, int i, int j) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/OreFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/OreFeature.java -index dbe7d624aaaa8455217a5397a66ef6964a3e210f..a6f6a5481d360f8259a0fec84be7183885937d58 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/OreFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/OreFeature.java -@@ -22,7 +22,7 @@ public class OreFeature extends Feature { - - @Override - public boolean place(FeaturePlaceContext context) { -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureOre); // Purpur - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); - OreConfiguration oreConfiguration = context.config(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/RandomBooleanSelectorFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/RandomBooleanSelectorFeature.java -index e7c0f1ae6b526e0f22bc9f9abc59e1dccc3cc063..b7fee9c4a5a3dc22e4a095d2d07b64252a83a608 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/RandomBooleanSelectorFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/RandomBooleanSelectorFeature.java -@@ -14,7 +14,7 @@ public class RandomBooleanSelectorFeature extends Feature context) { -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureRandomBooleanSelector); // Purpur - RandomBooleanFeatureConfiguration randomBooleanFeatureConfiguration = context.config(); - WorldGenLevel worldGenLevel = context.level(); - ChunkGenerator chunkGenerator = context.chunkGenerator(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/RandomPatchFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/RandomPatchFeature.java -index 8dfa0a29fdf9977d9b6dd062821effd7fba47719..22d99ef44b9dc6c0fb095ea32afb552410e59962 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/RandomPatchFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/RandomPatchFeature.java -@@ -17,7 +17,7 @@ public class RandomPatchFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - RandomPatchConfiguration randomPatchConfiguration = context.config(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureRandomPatch); // Purpur - BlockPos blockPos = context.origin(); - WorldGenLevel worldGenLevel = context.level(); - BlockState blockState = randomPatchConfiguration.stateProvider.getState(random, blockPos); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/RandomSelectorFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/RandomSelectorFeature.java -index 3188de86c094f2c820e8dad3086df37f867add34..bcfd697bda3521722576e4b1fcc327971820b5e7 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/RandomSelectorFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/RandomSelectorFeature.java -@@ -15,7 +15,7 @@ public class RandomSelectorFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - RandomFeatureConfiguration randomFeatureConfiguration = context.config(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureRandomSelector); // Purpur - WorldGenLevel worldGenLevel = context.level(); - ChunkGenerator chunkGenerator = context.chunkGenerator(); - BlockPos blockPos = context.origin(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlobsFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlobsFeature.java -index efc970a27c556c3b8da6727ffdfda71c90f12556..6634bc093a3308d3b9bd491456ac115062fba2e4 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlobsFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlobsFeature.java -@@ -20,7 +20,7 @@ public class ReplaceBlobsFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - ReplaceSphereConfiguration replaceSphereConfiguration = context.config(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureNetherrackReplaceBlobs); // Purpur - Block block = replaceSphereConfiguration.targetState.getBlock(); - BlockPos blockPos = findTarget(worldGenLevel, context.origin().mutable().clamp(Direction.Axis.Y, worldGenLevel.getMinBuildHeight() + 1, worldGenLevel.getMaxBuildHeight() - 1), block); - if (blockPos == null) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlockFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlockFeature.java -index 72ed95adc043ba78979ba0518d975ff57b35d5e1..513ac0f8a98ae6e1ad6e554c2dd3b16888cb9b68 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlockFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/ReplaceBlockFeature.java -@@ -16,9 +16,10 @@ public class ReplaceBlockFeature extends Feature { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); - ReplaceBlockConfiguration replaceBlockConfiguration = context.config(); -+ java.util.Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureReplaceSingleBlock); // Purpur - - for(OreConfiguration.TargetBlockState targetBlockState : replaceBlockConfiguration.targetStates) { -- if (targetBlockState.target.test(worldGenLevel.getBlockState(blockPos), context.random())) { -+ if (targetBlockState.target.test(worldGenLevel.getBlockState(blockPos), random)) { // Purpur - worldGenLevel.setBlock(blockPos, targetBlockState.state, 2); - break; - } -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/RootSystemFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/RootSystemFeature.java -index 0ca15ac28c198e96ac21208e3c6bd46377df9b3b..a0c0bd2a5173e6629aa1422efb5be79881acf440 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/RootSystemFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/RootSystemFeature.java -@@ -26,7 +26,7 @@ public class RootSystemFeature extends Feature { - if (!worldGenLevel.getBlockState(blockPos).isAir()) { - return false; - } else { -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureRootSystem); // Purpur - BlockPos blockPos2 = context.origin(); - RootSystemConfiguration rootSystemConfiguration = context.config(); - BlockPos.MutableBlockPos mutableBlockPos = blockPos2.mutable(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java -index eb4abeee4009c8f271c51f6c711c03b7a7360937..eb8af78c3fa6bfd960644b419c4500bd37f9a8d4 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java -@@ -17,7 +17,7 @@ public class ScatteredOreFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureScatteredOre); // Purpur - OreConfiguration oreConfiguration = context.config(); - BlockPos blockPos = context.origin(); - int i = random.nextInt(oreConfiguration.size + 1); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SeaPickleFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SeaPickleFeature.java -index 5b1dd00cf379e07ac8770ab7b7ceb20a377fd586..415297785c83835333aef1da552cd510f2c8e4f7 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/SeaPickleFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SeaPickleFeature.java -@@ -18,7 +18,7 @@ public class SeaPickleFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - int i = 0; -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureSeaPickle); // Purpur - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); - int j = context.config().count().sample(random); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SeagrassFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SeagrassFeature.java -index fc5a9fba1ecfa8850d31ba68e92c537e65dbed78..f913486542f0ca35cd36eb19f25918505dd2e70a 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/SeagrassFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SeagrassFeature.java -@@ -19,7 +19,7 @@ public class SeagrassFeature extends Feature { - @Override - public boolean place(FeaturePlaceContext context) { - boolean bl = false; -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureSeagrass); // Purpur - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); - ProbabilityFeatureConfiguration probabilityFeatureConfiguration = context.config(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleBlockFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleBlockFeature.java -index 1aaa0d7b73e7b89202b3cedd284c3b739d1e3091..7bcde212bc61d6c883b443f97b4a5ae4d3990f39 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleBlockFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleBlockFeature.java -@@ -17,8 +17,9 @@ public class SimpleBlockFeature extends Feature { - SimpleBlockConfiguration simpleBlockConfiguration = context.config(); - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -+ java.util.Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureSimpleBlock); // Purpur - if ((simpleBlockConfiguration.placeOn.isEmpty() || simpleBlockConfiguration.placeOn.contains(worldGenLevel.getBlockState(blockPos.below()))) && (simpleBlockConfiguration.placeIn.isEmpty() || simpleBlockConfiguration.placeIn.contains(worldGenLevel.getBlockState(blockPos))) && (simpleBlockConfiguration.placeUnder.isEmpty() || simpleBlockConfiguration.placeUnder.contains(worldGenLevel.getBlockState(blockPos.above())))) { -- BlockState blockState = simpleBlockConfiguration.toPlace.getState(context.random(), blockPos); -+ BlockState blockState = simpleBlockConfiguration.toPlace.getState(random, blockPos); // Purpur - if (blockState.canSurvive(worldGenLevel, blockPos)) { - if (blockState.getBlock() instanceof DoublePlantBlock) { - if (!worldGenLevel.isEmptyBlock(blockPos.above())) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleRandomSelectorFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleRandomSelectorFeature.java -index 51ddafe889ebd3a78eaa31c8f32db4b2931f5a20..60eae6fb250840e689172fb639d79670c501b7bc 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleRandomSelectorFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SimpleRandomSelectorFeature.java -@@ -14,7 +14,7 @@ public class SimpleRandomSelectorFeature extends Feature context) { -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureSimpleRandomSelector); // Purpur - SimpleRandomFeatureConfiguration simpleRandomFeatureConfiguration = context.config(); - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SmallDripstoneFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SmallDripstoneFeature.java -index 7fe7009538b392ccb7547d0268ac8a1a6f682270..eb8bda1c3f73c3c2727ab893daa8b00008b1c117 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/SmallDripstoneFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SmallDripstoneFeature.java -@@ -18,7 +18,7 @@ public class SmallDripstoneFeature extends Feature - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureSmallDripstone); // Purpur - SmallDripstoneConfiguration smallDripstoneConfiguration = context.config(); - if (!DripstoneUtils.isEmptyOrWater(worldGenLevel, blockPos)) { - return false; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -index c03bf5bdb67b00c75f9fcfead882c4d944282244..5ad051dd62968fb861a4ed2ad5426d6429184173 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/SpikeFeature.java -@@ -36,7 +36,8 @@ public class SpikeFeature extends Feature { - } - - public static List getSpikesForLevel(WorldGenLevel world) { -- Random random = new Random(world.getSeed()); -+ int seed = net.pl3x.purpur.PurpurConfig.seedFeatureEndSpike; // Purpur -+ Random random = new Random(seed == -1 ? world.getSeed() : seed); // Purpur - long l = random.nextLong() & 65535L; - return SPIKE_CACHE.getUnchecked(l); - } -@@ -45,7 +46,7 @@ public class SpikeFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - SpikeConfiguration spikeConfiguration = context.config(); - WorldGenLevel worldGenLevel = context.level(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureEndSpike); // Purpur - BlockPos blockPos = context.origin(); - List list = spikeConfiguration.getSpikes(); - if (list.isEmpty()) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java -index 0be9ce0734e3ba72893a7349bb9f83a94f4af30c..2f71e80f6c9d37a97d1d03b7a1d893c825b315fa 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java -@@ -76,6 +76,7 @@ public class TreeFeature extends Feature { - } - - private boolean doPlace(WorldGenLevel world, Random random, BlockPos pos, BiConsumer trunkReplacer, BiConsumer foliageReplacer, TreeConfiguration config) { -+ random = getRnd(random, net.pl3x.purpur.PurpurConfig.seedFeatureTree); // Purpur - int i = config.trunkPlacer.getTreeHeight(random); - int j = config.foliagePlacer.foliageHeight(random, i, config); - int k = i - j; -@@ -88,8 +89,9 @@ public class TreeFeature extends Feature { - int m = this.getMaxFreeTreeHeight(world, i, pos, config); - if (m >= i || optionalInt.isPresent() && m >= optionalInt.getAsInt()) { - List list = config.trunkPlacer.placeTrunk(world, trunkReplacer, random, m, pos, config); -+ final Random finalrandom = random; // Purpur - list.forEach((foliageAttachment) -> { -- config.foliagePlacer.createFoliage(world, foliageReplacer, random, config, m, foliageAttachment, j, l); -+ config.foliagePlacer.createFoliage(world, foliageReplacer, finalrandom, config, m, foliageAttachment, j, l); // Purpur - }); - return true; - } else { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/TwistingVinesFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/TwistingVinesFeature.java -index c4d51a31343b92f62742506d7add2154a0b23015..799127f0bb1a91d640af6f542dbe304428a99092 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/TwistingVinesFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/TwistingVinesFeature.java -@@ -18,7 +18,8 @@ public class TwistingVinesFeature extends Feature { - - @Override - public boolean place(FeaturePlaceContext context) { -- return place(context.level(), context.random(), context.origin(), 8, 4, 8); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureTwistingVines); // Purpur -+ return place(context.level(), random, context.origin(), 8, 4, 8); // Purpur - } - - public static boolean place(LevelAccessor world, Random random, BlockPos pos, int horizontalSpread, int verticalSpread, int length) { -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/UnderwaterMagmaFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/UnderwaterMagmaFeature.java -index bd5466e532dc0f1b5a1df3bff3144d0bf7ff25f3..661680aa501dd57a228b7c4447969223592c88a8 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/UnderwaterMagmaFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/UnderwaterMagmaFeature.java -@@ -26,7 +26,7 @@ public class UnderwaterMagmaFeature extends Feature context) { -+ // Purpur start -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureVegetationPatch); -+ return place0(context, random); -+ } -+ protected boolean place0(FeaturePlaceContext context, Random random) { -+ // Purpur end - WorldGenLevel worldGenLevel = context.level(); - VegetationPatchConfiguration vegetationPatchConfiguration = context.config(); -- Random random = context.random(); -+ //Random random = context.random(); // Purpur - BlockPos blockPos = context.origin(); - Predicate predicate = getReplaceableTag(vegetationPatchConfiguration); - int i = vegetationPatchConfiguration.xzRadius.sample(random) + 1; -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/WaterloggedVegetationPatchFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/WaterloggedVegetationPatchFeature.java -index 62506ae3a49b0507d2d492da3a9baf96fea64a25..565e74a8314357a8e6e1a89c830011868d28c2a2 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/WaterloggedVegetationPatchFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/WaterloggedVegetationPatchFeature.java -@@ -19,6 +19,14 @@ public class WaterloggedVegetationPatchFeature extends VegetationPatchFeature { - super(configCodec); - } - -+ // Purpur start -+ @Override -+ public boolean place(FeaturePlaceContext context) { -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureWaterloggedVegetationPatch); // Purpur -+ return place0(context, random); -+ } -+ // Purpur end -+ - @Override - protected Set placeGroundPatch(WorldGenLevel world, VegetationPatchConfiguration config, Random random, BlockPos pos, Predicate replaceable, int radiusX, int radiusZ) { - Set set = super.placeGroundPatch(world, config, random, pos, replaceable, radiusX, radiusZ); -diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/WeepingVinesFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/WeepingVinesFeature.java -index ed3944a60d09495eb424dd11d00e8c3585177d51..fcf25cc905ece0213a0eb6365a0a57566ad29c9c 100644 ---- a/src/main/java/net/minecraft/world/level/levelgen/feature/WeepingVinesFeature.java -+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/WeepingVinesFeature.java -@@ -23,7 +23,7 @@ public class WeepingVinesFeature extends Feature { - public boolean place(FeaturePlaceContext context) { - WorldGenLevel worldGenLevel = context.level(); - BlockPos blockPos = context.origin(); -- Random random = context.random(); -+ Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureWeepingVines); // Purpur - if (!worldGenLevel.isEmptyBlock(blockPos)) { - return false; - } else { -diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index a6aa607e5b085fdcddab8aa29258be0ba4aa1ac8..ac1c4d984928cd284183b4ff713155b2bbbdcfbe 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -176,6 +176,128 @@ public class PurpurConfig { - pingCommandOutput = getString("settings.messages.ping-command-output", pingCommandOutput); - } - -+ public static int seedFeatureBamboo = -1; -+ public static int seedFeatureBasaltColumns = -1; -+ public static int seedFeatureBasaltPillar = -1; -+ public static int seedFeatureBlockPile = -1; -+ public static int seedFeatureBlueIce = -1; -+ public static int seedFeatureBonusChest = -1; -+ public static int seedFeatureChorusPlant = -1; -+ public static int seedFeatureCoralClaw = -1; -+ public static int seedFeatureCoralMushroom = -1; -+ public static int seedFeatureCoralTree = -1; -+ public static int seedFeatureDecorated = -1; -+ public static int seedFeatureDeltaFeature = -1; -+ public static int seedFeatureDisk = -1; -+ public static int seedFeatureDripstoneCluster = -1; -+ public static int seedFeatureEndIsland = -1; -+ public static int seedFeatureEndSpike = -1; -+ public static int seedFeatureFlower = -1; -+ public static int seedFeatureForestRock = -1; -+ public static int seedFeatureFossil = -1; -+ public static int seedFeatureGeode = -1; -+ public static int seedFeatureGlowLichen = -1; -+ public static int seedFeatureGlowstoneBlob = -1; -+ public static int seedFeatureGrowingPlant = -1; -+ public static int seedFeatureHugeBrownMushroom = -1; -+ public static int seedFeatureHugeFungus = -1; -+ public static int seedFeatureHugeRedMushroom = -1; -+ public static int seedFeatureIcePatch = -1; -+ public static int seedFeatureIceSpike = -1; -+ public static int seedFeatureIceberg = -1; -+ public static int seedFeatureKelp = -1; -+ public static int seedFeatureLake = -1; -+ public static int seedFeatureLargeDripstone = -1; -+ public static int seedFeatureMonsterRoom = -1; -+ public static int seedFeatureNetherFortressVegetation = -1; -+ public static int seedFeatureNetherrackReplaceBlobs = -1; -+ public static int seedFeatureOre = -1; -+ public static int seedFeatureRandomBooleanSelector = -1; -+ public static int seedFeatureRandomPatch = -1; -+ public static int seedFeatureRandomSelector = -1; -+ public static int seedFeatureReplaceSingleBlock = -1; -+ public static int seedFeatureRootSystem = -1; -+ public static int seedFeatureScatteredOre = -1; -+ public static int seedFeatureSeaPickle = -1; -+ public static int seedFeatureSeagrass = -1; -+ public static int seedFeatureSimpleBlock = -1; -+ public static int seedFeatureSimpleRandomSelector = -1; -+ public static int seedFeatureSmallDripstone = -1; -+ public static int seedFeatureTree = -1; -+ public static int seedFeatureTwistingVines = -1; -+ public static int seedFeatureUnderwaterMagma = -1; -+ public static int seedFeatureVegetationPatch = -1; -+ public static int seedFeatureWaterloggedVegetationPatch = -1; -+ public static int seedFeatureWeepingVines = -1; -+ private static void seedSettings() { -+ if (version < 14) { -+ int oldValue = getInt("settings.seed.dungeon", -1); -+ set("settings.seed.feature.monster_room", oldValue); -+ set("settings.seed.dungeon", null); -+ oldValue = getInt("settings.seed.end-spike", -1); -+ set("settings.seed.feature.end_spike", oldValue); -+ set("settings.seed.end-spike", null); -+ oldValue = getInt("settings.seed.geode", -1); -+ set("settings.seed.feature.geode", oldValue); -+ set("settings.seed.geode", null); -+ } -+ seedFeatureBamboo = getInt("settings.seed.feature.bamboo", seedFeatureBamboo); -+ seedFeatureBasaltColumns = getInt("settings.seed.feature.basalt_columns", seedFeatureBasaltColumns); -+ seedFeatureBasaltPillar = getInt("settings.seed.feature.basalt_pillar", seedFeatureBasaltPillar); -+ seedFeatureBlockPile = getInt("settings.seed.feature.block_pile", seedFeatureBlockPile); -+ seedFeatureBlueIce = getInt("settings.seed.feature.blue_ice", seedFeatureBlueIce); -+ seedFeatureBonusChest = getInt("settings.seed.feature.bonus_chest", seedFeatureBonusChest); -+ seedFeatureChorusPlant = getInt("settings.seed.feature.chorus_plant", seedFeatureChorusPlant); -+ seedFeatureCoralClaw = getInt("settings.seed.feature.coral_claw", seedFeatureCoralClaw); -+ seedFeatureCoralMushroom = getInt("settings.seed.feature.coral_mushroom", seedFeatureCoralMushroom); -+ seedFeatureCoralTree = getInt("settings.seed.feature.coral_tree", seedFeatureCoralTree); -+ seedFeatureDecorated = getInt("settings.seed.feature.decorated", seedFeatureDecorated); -+ seedFeatureDeltaFeature = getInt("settings.seed.feature.delta_feature", seedFeatureDeltaFeature); -+ seedFeatureDisk = getInt("settings.seed.feature.disk", seedFeatureDisk); -+ seedFeatureDripstoneCluster = getInt("settings.seed.feature.dripstone_cluster", seedFeatureDripstoneCluster); -+ seedFeatureEndIsland = getInt("settings.seed.feature.end_island", seedFeatureEndIsland); -+ seedFeatureEndSpike = getInt("settings.seed.feature.end_spike", seedFeatureEndSpike); -+ seedFeatureFlower = getInt("settings.seed.feature.flower", seedFeatureFlower); -+ seedFeatureForestRock = getInt("settings.seed.feature.forest_rock", seedFeatureForestRock); -+ seedFeatureFossil = getInt("settings.seed.feature.fossil", seedFeatureFossil); -+ seedFeatureGeode = getInt("settings.seed.feature.geode", seedFeatureGeode); -+ seedFeatureGlowLichen = getInt("settings.seed.feature.glow_lichen", seedFeatureGlowLichen); -+ seedFeatureGlowstoneBlob = getInt("settings.seed.feature.glowstone_blob", seedFeatureGlowstoneBlob); -+ seedFeatureGrowingPlant = getInt("settings.seed.feature.growing_plant", seedFeatureGrowingPlant); -+ seedFeatureHugeBrownMushroom = getInt("settings.seed.feature.huge_brown_mushroom", seedFeatureHugeBrownMushroom); -+ seedFeatureHugeFungus = getInt("settings.seed.feature.huge_fungus", seedFeatureHugeFungus); -+ seedFeatureHugeRedMushroom = getInt("settings.seed.feature.huge_red_mushroom", seedFeatureHugeRedMushroom); -+ seedFeatureIcePatch = getInt("settings.seed.feature.ice_patch", seedFeatureIcePatch); -+ seedFeatureIceSpike = getInt("settings.seed.feature.ice_spike", seedFeatureIceSpike); -+ seedFeatureIceberg = getInt("settings.seed.feature.iceberg", seedFeatureIceberg); -+ seedFeatureKelp = getInt("settings.seed.feature.kelp", seedFeatureKelp); -+ seedFeatureLake = getInt("settings.seed.feature.lake", seedFeatureLake); -+ seedFeatureLargeDripstone = getInt("settings.seed.feature.large_dripstone", seedFeatureLargeDripstone); -+ seedFeatureMonsterRoom = getInt("settings.seed.feature.monster_room", seedFeatureMonsterRoom); -+ seedFeatureNetherFortressVegetation = getInt("settings.seed.feature.nether_forest_vegetation", seedFeatureNetherFortressVegetation); -+ seedFeatureNetherrackReplaceBlobs = getInt("settings.seed.feature.netherrack_replace_blobs", seedFeatureNetherrackReplaceBlobs); -+ seedFeatureOre = getInt("settings.seed.feature.ore", seedFeatureOre); -+ seedFeatureRandomBooleanSelector = getInt("settings.seed.feature.random_boolean_selector", seedFeatureRandomBooleanSelector); -+ seedFeatureRandomPatch = getInt("settings.seed.feature.random_patch", seedFeatureRandomPatch); -+ seedFeatureRandomSelector = getInt("settings.seed.feature.random_selector", seedFeatureRandomSelector); -+ seedFeatureReplaceSingleBlock = getInt("settings.seed.feature.replace_single_block", seedFeatureReplaceSingleBlock); -+ seedFeatureRootSystem = getInt("settings.seed.feature.root_system", seedFeatureRootSystem); -+ seedFeatureScatteredOre = getInt("settings.seed.feature.scattered_ore", seedFeatureScatteredOre); -+ seedFeatureSeaPickle = getInt("settings.seed.feature.sea_pickle", seedFeatureSeaPickle); -+ seedFeatureSeagrass = getInt("settings.seed.feature.seagrass", seedFeatureSeagrass); -+ seedFeatureSimpleBlock = getInt("settings.seed.feature.simple_block", seedFeatureSimpleBlock); -+ seedFeatureSimpleRandomSelector = getInt("settings.seed.feature.simple_random_selector", seedFeatureSimpleRandomSelector); -+ seedFeatureSmallDripstone = getInt("settings.seed.feature.small_dripstone", seedFeatureSmallDripstone); -+ seedFeatureTree = getInt("settings.seed.feature.tree", seedFeatureTree); -+ seedFeatureTwistingVines = getInt("settings.seed.feature.twisting_vines", seedFeatureTwistingVines); -+ seedFeatureUnderwaterMagma = getInt("settings.seed.feature.underwater_magma", seedFeatureUnderwaterMagma); -+ seedFeatureVegetationPatch = getInt("settings.seed.feature.vegetation_patch", seedFeatureVegetationPatch); -+ seedFeatureWaterloggedVegetationPatch = getInt("settings.seed.feature.waterlogged_vegetation_patch", seedFeatureWaterloggedVegetationPatch); -+ seedFeatureWeepingVines = getInt("settings.seed.feature.weeping_vines", seedFeatureWeepingVines); -+ // 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); diff --git a/patches/server/0088-Phantoms-burn-in-light.patch b/patches/server/0087-Phantoms-burn-in-light.patch similarity index 100% rename from patches/server/0088-Phantoms-burn-in-light.patch rename to patches/server/0087-Phantoms-burn-in-light.patch diff --git a/patches/server/0089-Configurable-villager-breeding.patch b/patches/server/0088-Configurable-villager-breeding.patch similarity index 100% rename from patches/server/0089-Configurable-villager-breeding.patch rename to patches/server/0088-Configurable-villager-breeding.patch diff --git a/patches/server/0090-Redstone-deactivates-spawners.patch b/patches/server/0089-Redstone-deactivates-spawners.patch similarity index 100% rename from patches/server/0090-Redstone-deactivates-spawners.patch rename to patches/server/0089-Redstone-deactivates-spawners.patch diff --git a/patches/server/0091-Totems-work-in-inventory.patch b/patches/server/0090-Totems-work-in-inventory.patch similarity index 100% rename from patches/server/0091-Totems-work-in-inventory.patch rename to patches/server/0090-Totems-work-in-inventory.patch diff --git a/patches/server/0092-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0091-Add-vindicator-johnny-spawn-chance.patch similarity index 100% rename from patches/server/0092-Add-vindicator-johnny-spawn-chance.patch rename to patches/server/0091-Add-vindicator-johnny-spawn-chance.patch diff --git a/patches/server/0093-Add-option-to-disable-certain-block-updates.patch b/patches/server/0092-Add-option-to-disable-certain-block-updates.patch similarity index 98% rename from patches/server/0093-Add-option-to-disable-certain-block-updates.patch rename to patches/server/0092-Add-option-to-disable-certain-block-updates.patch index de5fa51f9..914014485 100644 --- a/patches/server/0093-Add-option-to-disable-certain-block-updates.patch +++ b/patches/server/0092-Add-option-to-disable-certain-block-updates.patch @@ -117,10 +117,10 @@ index f8e58d9f71703139a736d93e7f1996e027a29444..d3c8fd8399629efb8bcbaf7d9a0c4334 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 15ce3d3f1f95f232203f5fe10a754c21ae88f729..568e119f599397b8bd5c5e41603f692a8fc848f5 100644 +index 1394efa4641a0ee15af706386a45c6013060d265..41e78e5229f225665733308490e1d23bfd37ce61 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -371,6 +371,15 @@ public class PurpurConfig { +@@ -249,6 +249,15 @@ public class PurpurConfig { allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd); } diff --git a/patches/server/0094-Dispensers-place-anvils-option.patch b/patches/server/0093-Dispensers-place-anvils-option.patch similarity index 100% rename from patches/server/0094-Dispensers-place-anvils-option.patch rename to patches/server/0093-Dispensers-place-anvils-option.patch diff --git a/patches/server/0095-Allow-anvil-colors.patch b/patches/server/0094-Allow-anvil-colors.patch similarity index 100% rename from patches/server/0095-Allow-anvil-colors.patch rename to patches/server/0094-Allow-anvil-colors.patch diff --git a/patches/server/0096-Add-no-random-tick-block-list.patch b/patches/server/0095-Add-no-random-tick-block-list.patch similarity index 100% rename from patches/server/0096-Add-no-random-tick-block-list.patch rename to patches/server/0095-Add-no-random-tick-block-list.patch diff --git a/patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0096-Add-option-to-disable-dolphin-treasure-searching.patch similarity index 100% rename from patches/server/0097-Add-option-to-disable-dolphin-treasure-searching.patch rename to patches/server/0096-Add-option-to-disable-dolphin-treasure-searching.patch diff --git a/patches/server/0098-Short-enderman-height.patch b/patches/server/0097-Short-enderman-height.patch similarity index 92% rename from patches/server/0098-Short-enderman-height.patch rename to patches/server/0097-Short-enderman-height.patch index d8e5da423..08374a087 100644 --- a/patches/server/0098-Short-enderman-height.patch +++ b/patches/server/0097-Short-enderman-height.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Short enderman height diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 2b356fed99df2bd15ba2fc6963df7c219b6f0e07..cbf57a7e8c312ef0906743a84e00f8f8f9f7a305 100644 +index 20094345f90dba666902a8694035b47e0606e02c..88fcd673e36336b99e3cef27e290532f49acbca3 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -280,7 +280,8 @@ public class EntityType implements EntityTypeTest { @@ -31,10 +31,10 @@ index a36313c321f9057350a9edb8b0959fd49a8e21a3..10c3a0c49579fbd9f1fe7ec82eebd42b if (this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start for (int i = 0; i < 64; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 316ac05a6d0dde3f2a192d4fbdbe90fbf58f7d79..d7dec624a7ea4b3a977728f42bcb78210dcd64ec 100644 +index 41e78e5229f225665733308490e1d23bfd37ce61..4c950f90963b80acc6956008f7636248f09f6c7a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -361,6 +361,12 @@ public class PurpurConfig { +@@ -239,6 +239,12 @@ public class PurpurConfig { enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); } diff --git a/patches/server/0099-Stop-squids-floating-on-top-of-water.patch b/patches/server/0098-Stop-squids-floating-on-top-of-water.patch similarity index 100% rename from patches/server/0099-Stop-squids-floating-on-top-of-water.patch rename to patches/server/0098-Stop-squids-floating-on-top-of-water.patch diff --git a/patches/server/0100-Use-configured-height-for-nether-surface-builders.patch b/patches/server/0099-Use-configured-height-for-nether-surface-builders.patch similarity index 100% rename from patches/server/0100-Use-configured-height-for-nether-surface-builders.patch rename to patches/server/0099-Use-configured-height-for-nether-surface-builders.patch diff --git a/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch b/patches/server/0100-Crying-obsidian-valid-for-portal-frames.patch similarity index 92% rename from patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch rename to patches/server/0100-Crying-obsidian-valid-for-portal-frames.patch index 06724cd52..46be81f9e 100644 --- a/patches/server/0101-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/server/0100-Crying-obsidian-valid-for-portal-frames.patch @@ -18,10 +18,10 @@ index c07b5d1f1ef8b5e6026c7555d476880c8802d6c5..068f1b184a3694603f564d49fa45d5ce private final LevelAccessor level; private final Direction.Axis axis; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d7dec624a7ea4b3a977728f42bcb78210dcd64ec..2dbdd6e4feb38bc67f1258bc9ef72c349bef6807 100644 +index 4c950f90963b80acc6956008f7636248f09f6c7a..eee9f3091b2fa5368655db232670a84ed2703193 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -329,6 +329,7 @@ public class PurpurConfig { +@@ -207,6 +207,7 @@ public class PurpurConfig { public static int barrelRows = 3; public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; @@ -29,7 +29,7 @@ index d7dec624a7ea4b3a977728f42bcb78210dcd64ec..2dbdd6e4feb38bc67f1258bc9ef72c34 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -359,6 +360,7 @@ public class PurpurConfig { +@@ -237,6 +238,7 @@ public class PurpurConfig { enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows); org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); diff --git a/patches/server/0102-Entities-can-use-portals-configuration.patch b/patches/server/0101-Entities-can-use-portals-configuration.patch similarity index 100% rename from patches/server/0102-Entities-can-use-portals-configuration.patch rename to patches/server/0101-Entities-can-use-portals-configuration.patch diff --git a/patches/server/0103-LivingEntity-broadcastItemBreak.patch b/patches/server/0102-LivingEntity-broadcastItemBreak.patch similarity index 100% rename from patches/server/0103-LivingEntity-broadcastItemBreak.patch rename to patches/server/0102-LivingEntity-broadcastItemBreak.patch diff --git a/patches/server/0104-Customizable-wither-health-and-healing.patch b/patches/server/0103-Customizable-wither-health-and-healing.patch similarity index 100% rename from patches/server/0104-Customizable-wither-health-and-healing.patch rename to patches/server/0103-Customizable-wither-health-and-healing.patch diff --git a/patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0104-Allow-toggling-special-MobSpawners-per-world.patch similarity index 100% rename from patches/server/0105-Allow-toggling-special-MobSpawners-per-world.patch rename to patches/server/0104-Allow-toggling-special-MobSpawners-per-world.patch diff --git a/patches/server/0106-Raid-cooldown-setting.patch b/patches/server/0105-Raid-cooldown-setting.patch similarity index 100% rename from patches/server/0106-Raid-cooldown-setting.patch rename to patches/server/0105-Raid-cooldown-setting.patch diff --git a/patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0106-Despawn-rate-config-options-per-projectile-type.patch similarity index 100% rename from patches/server/0107-Despawn-rate-config-options-per-projectile-type.patch rename to patches/server/0106-Despawn-rate-config-options-per-projectile-type.patch diff --git a/patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0107-Add-option-to-disable-zombie-aggressiveness-towards-.patch similarity index 100% rename from patches/server/0108-Add-option-to-disable-zombie-aggressiveness-towards-.patch rename to patches/server/0107-Add-option-to-disable-zombie-aggressiveness-towards-.patch diff --git a/patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch b/patches/server/0108-Persistent-TileEntity-Lore-and-DisplayName.patch similarity index 100% rename from patches/server/0109-Persistent-TileEntity-Lore-and-DisplayName.patch rename to patches/server/0108-Persistent-TileEntity-Lore-and-DisplayName.patch diff --git a/patches/server/0110-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch b/patches/server/0109-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch similarity index 100% rename from patches/server/0110-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch rename to patches/server/0109-Add-predicate-to-recipe-s-ExactChoice-ingredient.patch diff --git a/patches/server/0111-Flying-squids-Oh-my.patch b/patches/server/0110-Flying-squids-Oh-my.patch similarity index 100% rename from patches/server/0111-Flying-squids-Oh-my.patch rename to patches/server/0110-Flying-squids-Oh-my.patch diff --git a/patches/server/0112-Infinity-bow-settings.patch b/patches/server/0111-Infinity-bow-settings.patch similarity index 100% rename from patches/server/0112-Infinity-bow-settings.patch rename to patches/server/0111-Infinity-bow-settings.patch diff --git a/patches/server/0113-Stonecutter-damage.patch b/patches/server/0112-Stonecutter-damage.patch similarity index 100% rename from patches/server/0113-Stonecutter-damage.patch rename to patches/server/0112-Stonecutter-damage.patch diff --git a/patches/server/0114-Configurable-daylight-cycle.patch b/patches/server/0113-Configurable-daylight-cycle.patch similarity index 100% rename from patches/server/0114-Configurable-daylight-cycle.patch rename to patches/server/0113-Configurable-daylight-cycle.patch diff --git a/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch b/patches/server/0114-Allow-infinite-and-mending-enchantments-together.patch similarity index 93% rename from patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch rename to patches/server/0114-Allow-infinite-and-mending-enchantments-together.patch index 98bddfa1e..198947116 100644 --- a/patches/server/0115-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/server/0114-Allow-infinite-and-mending-enchantments-together.patch @@ -17,10 +17,10 @@ index 3aece8245060dd1ba269c08d226c84247a6f0a83..6763d0b96c83d1b462999f525bf1f31c } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 2dbdd6e4feb38bc67f1258bc9ef72c349bef6807..e7215ede4286ee5a1047d8c94b0c42f3dfae9dcf 100644 +index eee9f3091b2fa5368655db232670a84ed2703193..af299caa01193a6fa76656814164b0c5fbeec350 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -363,6 +363,16 @@ public class PurpurConfig { +@@ -241,6 +241,16 @@ public class PurpurConfig { cryingObsidianValidForPortalFrame = getBoolean("settings.blocks.crying_obsidian.valid-for-portal-frame", cryingObsidianValidForPortalFrame); } diff --git a/patches/server/0116-Furnace-uses-lava-from-underneath.patch b/patches/server/0115-Furnace-uses-lava-from-underneath.patch similarity index 100% rename from patches/server/0116-Furnace-uses-lava-from-underneath.patch rename to patches/server/0115-Furnace-uses-lava-from-underneath.patch diff --git a/patches/server/0117-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0116-Arrows-should-not-reset-despawn-counter.patch similarity index 100% rename from patches/server/0117-Arrows-should-not-reset-despawn-counter.patch rename to patches/server/0116-Arrows-should-not-reset-despawn-counter.patch diff --git a/patches/server/0118-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0117-Ability-to-re-add-farmland-mechanics-from-Alpha.patch similarity index 100% rename from patches/server/0118-Ability-to-re-add-farmland-mechanics-from-Alpha.patch rename to patches/server/0117-Ability-to-re-add-farmland-mechanics-from-Alpha.patch diff --git a/patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0118-Add-adjustable-breeding-cooldown-to-config.patch similarity index 100% rename from patches/server/0119-Add-adjustable-breeding-cooldown-to-config.patch rename to patches/server/0118-Add-adjustable-breeding-cooldown-to-config.patch diff --git a/patches/server/0120-Make-entity-breeding-times-configurable.patch b/patches/server/0119-Make-entity-breeding-times-configurable.patch similarity index 100% rename from patches/server/0120-Make-entity-breeding-times-configurable.patch rename to patches/server/0119-Make-entity-breeding-times-configurable.patch diff --git a/patches/server/0121-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0120-Apply-display-names-from-item-forms-of-entities-to-e.patch similarity index 100% rename from patches/server/0121-Apply-display-names-from-item-forms-of-entities-to-e.patch rename to patches/server/0120-Apply-display-names-from-item-forms-of-entities-to-e.patch diff --git a/patches/server/0122-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0121-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch similarity index 100% rename from patches/server/0122-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch rename to patches/server/0121-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch diff --git a/patches/server/0123-Add-twisting-and-weeping-vines-growth-rates.patch b/patches/server/0122-Add-twisting-and-weeping-vines-growth-rates.patch similarity index 100% rename from patches/server/0123-Add-twisting-and-weeping-vines-growth-rates.patch rename to patches/server/0122-Add-twisting-and-weeping-vines-growth-rates.patch diff --git a/patches/server/0124-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch b/patches/server/0123-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch similarity index 100% rename from patches/server/0124-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch rename to patches/server/0123-Kelp-weeping-and-twisting-vines-configurable-max-gro.patch diff --git a/patches/server/0125-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0124-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch similarity index 100% rename from patches/server/0125-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch rename to patches/server/0124-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch diff --git a/patches/server/0126-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/server/0125-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch similarity index 94% rename from patches/server/0126-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch rename to patches/server/0125-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index 85b3d6e2f..737a8ac16 100644 --- a/patches/server/0126-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/server/0125-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -33,10 +33,10 @@ index c557bee52a3f136696bb55853622b03220735109..5b0647a8b8d2dd8a44b38c378312ad91 if (flag5) { if (i > 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 89ad1c69456fb4aaf2ab8742c76343b30b74ecd0..c763fce31b074d396a9134c5412bce77a9625c9a 100644 +index 18059a30b53f566dd1d2ed3af1460e5672d6e32f..b5e873f8693442f20eb5d67f22c4f96cac54f461 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -968,7 +968,7 @@ public class CraftEventFactory { +@@ -972,7 +972,7 @@ public class CraftEventFactory { } else { damageCause = DamageCause.ENTITY_EXPLOSION; } @@ -45,7 +45,7 @@ index 89ad1c69456fb4aaf2ab8742c76343b30b74ecd0..c763fce31b074d396a9134c5412bce77 damager.processClick(InteractionHand.MAIN_HAND); // Purpur } event.setCancelled(cancelled); -@@ -1049,7 +1049,7 @@ public class CraftEventFactory { +@@ -1053,7 +1053,7 @@ public class CraftEventFactory { } else { throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager.getHandle(), source.msgId)); } @@ -54,7 +54,7 @@ index 89ad1c69456fb4aaf2ab8742c76343b30b74ecd0..c763fce31b074d396a9134c5412bce77 event.setCancelled(cancelled); CraftEventFactory.callEvent(event); if (!event.isCancelled()) { -@@ -1106,7 +1106,7 @@ public class CraftEventFactory { +@@ -1110,7 +1110,7 @@ public class CraftEventFactory { private static EntityDamageEvent callEntityDamageEvent(Entity damager, Entity damagee, DamageCause cause, Map modifiers, Map> modifierFunctions, boolean cancelled) { EntityDamageEvent event; if (damager != null) { diff --git a/patches/server/0127-Add-configurable-snowball-damage.patch b/patches/server/0126-Add-configurable-snowball-damage.patch similarity index 100% rename from patches/server/0127-Add-configurable-snowball-damage.patch rename to patches/server/0126-Add-configurable-snowball-damage.patch diff --git a/patches/server/0128-Zombie-break-door-minimum-difficulty-option.patch b/patches/server/0127-Zombie-break-door-minimum-difficulty-option.patch similarity index 100% rename from patches/server/0128-Zombie-break-door-minimum-difficulty-option.patch rename to patches/server/0127-Zombie-break-door-minimum-difficulty-option.patch diff --git a/patches/server/0129-Left-handed-API.patch b/patches/server/0128-Left-handed-API.patch similarity index 100% rename from patches/server/0129-Left-handed-API.patch rename to patches/server/0128-Left-handed-API.patch diff --git a/patches/server/0130-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0129-Changeable-Mob-Left-Handed-Chance.patch similarity index 100% rename from patches/server/0130-Changeable-Mob-Left-Handed-Chance.patch rename to patches/server/0129-Changeable-Mob-Left-Handed-Chance.patch diff --git a/patches/server/0131-Add-boat-fall-damage-config.patch b/patches/server/0130-Add-boat-fall-damage-config.patch similarity index 100% rename from patches/server/0131-Add-boat-fall-damage-config.patch rename to patches/server/0130-Add-boat-fall-damage-config.patch diff --git a/patches/server/0132-Snow-Golem-rate-of-fire-config.patch b/patches/server/0131-Snow-Golem-rate-of-fire-config.patch similarity index 100% rename from patches/server/0132-Snow-Golem-rate-of-fire-config.patch rename to patches/server/0131-Snow-Golem-rate-of-fire-config.patch diff --git a/patches/server/0133-EMC-Configurable-disable-give-dropping.patch b/patches/server/0132-EMC-Configurable-disable-give-dropping.patch similarity index 93% rename from patches/server/0133-EMC-Configurable-disable-give-dropping.patch rename to patches/server/0132-EMC-Configurable-disable-give-dropping.patch index 272b45d23..c2891221f 100644 --- a/patches/server/0133-EMC-Configurable-disable-give-dropping.patch +++ b/patches/server/0132-EMC-Configurable-disable-give-dropping.patch @@ -20,10 +20,10 @@ index a0dc380e90415de9068ea408d62a1605c82631df..60fd566f7e1499ecf2ad91216a667f12 itemStack.setCount(1); ItemEntity itemEntity2 = serverPlayer.drop(itemStack, false, false, true); // Paper - Fix duplicating /give items on item drop cancel diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e7215ede4286ee5a1047d8c94b0c42f3dfae9dcf..76e84ae0a91808a40b6cfe888134de07c87087c6 100644 +index af299caa01193a6fa76656814164b0c5fbeec350..8323b10a6ab17f56c6e5d1ad2cee9ebc7ad403de 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -326,6 +326,11 @@ public class PurpurConfig { +@@ -204,6 +204,11 @@ public class PurpurConfig { useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive); } diff --git a/patches/server/0134-Lobotomize-stuck-villagers.patch b/patches/server/0133-Lobotomize-stuck-villagers.patch similarity index 100% rename from patches/server/0134-Lobotomize-stuck-villagers.patch rename to patches/server/0133-Lobotomize-stuck-villagers.patch diff --git a/patches/server/0135-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0134-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch similarity index 100% rename from patches/server/0135-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch rename to patches/server/0134-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch diff --git a/patches/server/0136-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0135-Toggle-for-Zombified-Piglin-death-always-counting-as.patch similarity index 100% rename from patches/server/0136-Toggle-for-Zombified-Piglin-death-always-counting-as.patch rename to patches/server/0135-Toggle-for-Zombified-Piglin-death-always-counting-as.patch diff --git a/patches/server/0137-Spread-out-and-optimise-player-list-ticksSpread-out-.patch b/patches/server/0136-Spread-out-and-optimise-player-list-ticksSpread-out-.patch similarity index 100% rename from patches/server/0137-Spread-out-and-optimise-player-list-ticksSpread-out-.patch rename to patches/server/0136-Spread-out-and-optimise-player-list-ticksSpread-out-.patch diff --git a/patches/server/0138-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0137-Configurable-chance-for-wolves-to-spawn-rabid.patch similarity index 100% rename from patches/server/0138-Configurable-chance-for-wolves-to-spawn-rabid.patch rename to patches/server/0137-Configurable-chance-for-wolves-to-spawn-rabid.patch diff --git a/patches/server/0139-Configurable-default-wolf-collar-color.patch b/patches/server/0138-Configurable-default-wolf-collar-color.patch similarity index 100% rename from patches/server/0139-Configurable-default-wolf-collar-color.patch rename to patches/server/0138-Configurable-default-wolf-collar-color.patch diff --git a/patches/server/0140-Phantom-flames-on-swoop.patch b/patches/server/0139-Phantom-flames-on-swoop.patch similarity index 95% rename from patches/server/0140-Phantom-flames-on-swoop.patch rename to patches/server/0139-Phantom-flames-on-swoop.patch index 81118089c..99b4f316d 100644 --- a/patches/server/0140-Phantom-flames-on-swoop.patch +++ b/patches/server/0139-Phantom-flames-on-swoop.patch @@ -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 c55aba456aa144e58fc35877c61eff309eaa391f..c39e2d05fa81279a684532ee796880b1345e8c1c 100644 +index 59033a5c28f672089fe3ad846775753ae90f9ad9..a575649cff83df5c0888ba48610ece084cacaaa1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -227,6 +227,7 @@ public class Phantom extends FlyingMob implements Enemy { diff --git a/patches/server/0141-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0140-Option-for-chests-to-open-even-with-a-solid-block-on.patch similarity index 100% rename from patches/server/0141-Option-for-chests-to-open-even-with-a-solid-block-on.patch rename to patches/server/0140-Option-for-chests-to-open-even-with-a-solid-block-on.patch diff --git a/patches/server/0142-Implement-TPSBar.patch b/patches/server/0141-Implement-TPSBar.patch similarity index 98% rename from patches/server/0142-Implement-TPSBar.patch rename to patches/server/0141-Implement-TPSBar.patch index 7486a9898..cc86cdde4 100644 --- a/patches/server/0142-Implement-TPSBar.patch +++ b/patches/server/0141-Implement-TPSBar.patch @@ -17,7 +17,7 @@ index 42deff516bd363d0882b441fa6928ac7eecbfccc..386e9ad013369633e2be543b9281e5a5 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 023566ddf2b1910dc90955289baff3bb4404abb7..807269b3fc6a1fe7cdbaef6f5336ee40e988505b 100644 +index 5f1f6c43a155956298ac57acf54773728cb1215b..dd4be57611028acde485bc03640e83e07b0bd34f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1134,6 +1134,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop collisions = io.papermc.paper.util.CachedLists.getTempCollisionList(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index a81a42ea6f904f19271ed529a19635503e66ac69..9e445948bd15d94ed74638ed814fa1abf7bacf1c 100644 +index e4e5b2cef7bcbb4e9411f78aefbdf2486e1658e8..9b688f88e319d59724d923a1e2631879c3104ef4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -165,6 +165,7 @@ public class PurpurConfig { @@ -54,7 +54,7 @@ index a81a42ea6f904f19271ed529a19635503e66ac69..9e445948bd15d94ed74638ed814fa1ab + dontRunWithScissors = getString("settings.messages.dont-run-with-scissors", dontRunWithScissors); } - public static int seedFeatureBamboo = -1; + public static String serverModName = "Purpur"; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index bc81ceaef6ac2da472c49a74870d5bfd74ad0c3f..d51e861fe8ffab512ef42c2bde7f316b6a231101 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java diff --git a/patches/server/0160-One-Punch-Man.patch b/patches/server/0159-One-Punch-Man.patch similarity index 100% rename from patches/server/0160-One-Punch-Man.patch rename to patches/server/0159-One-Punch-Man.patch diff --git a/patches/server/0161-Add-config-for-snow-on-blue-ice.patch b/patches/server/0160-Add-config-for-snow-on-blue-ice.patch similarity index 100% rename from patches/server/0161-Add-config-for-snow-on-blue-ice.patch rename to patches/server/0160-Add-config-for-snow-on-blue-ice.patch diff --git a/patches/server/0162-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0161-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 100% rename from patches/server/0162-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/server/0161-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch diff --git a/patches/server/0163-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0162-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 100% rename from patches/server/0163-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/server/0162-Config-to-ignore-nearby-mobs-when-sleeping.patch diff --git a/patches/server/0164-Add-back-player-spawned-endermite-API.patch b/patches/server/0163-Add-back-player-spawned-endermite-API.patch similarity index 100% rename from patches/server/0164-Add-back-player-spawned-endermite-API.patch rename to patches/server/0163-Add-back-player-spawned-endermite-API.patch diff --git a/patches/server/0165-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0164-Config-Enderman-aggressiveness-towards-Endermites.patch similarity index 100% rename from patches/server/0165-Config-Enderman-aggressiveness-towards-Endermites.patch rename to patches/server/0164-Config-Enderman-aggressiveness-towards-Endermites.patch diff --git a/patches/server/0166-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0165-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 100% rename from patches/server/0166-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/server/0165-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch diff --git a/patches/server/0167-Tick-fluids-config.patch b/patches/server/0166-Tick-fluids-config.patch similarity index 100% rename from patches/server/0167-Tick-fluids-config.patch rename to patches/server/0166-Tick-fluids-config.patch diff --git a/patches/server/0168-Config-to-disable-Llama-caravans.patch b/patches/server/0167-Config-to-disable-Llama-caravans.patch similarity index 100% rename from patches/server/0168-Config-to-disable-Llama-caravans.patch rename to patches/server/0167-Config-to-disable-Llama-caravans.patch diff --git a/patches/server/0169-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0168-Config-to-make-Creepers-explode-on-death.patch similarity index 100% rename from patches/server/0169-Config-to-make-Creepers-explode-on-death.patch rename to patches/server/0168-Config-to-make-Creepers-explode-on-death.patch diff --git a/patches/server/0170-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0169-Configurable-ravager-griefable-blocks-list.patch similarity index 100% rename from patches/server/0170-Configurable-ravager-griefable-blocks-list.patch rename to patches/server/0169-Configurable-ravager-griefable-blocks-list.patch diff --git a/patches/server/0171-Sneak-to-bulk-process-composter.patch b/patches/server/0170-Sneak-to-bulk-process-composter.patch similarity index 100% rename from patches/server/0171-Sneak-to-bulk-process-composter.patch rename to patches/server/0170-Sneak-to-bulk-process-composter.patch diff --git a/patches/server/0172-Config-for-skipping-night.patch b/patches/server/0171-Config-for-skipping-night.patch similarity index 100% rename from patches/server/0172-Config-for-skipping-night.patch rename to patches/server/0171-Config-for-skipping-night.patch diff --git a/patches/server/0173-Add-config-for-villager-trading.patch b/patches/server/0172-Add-config-for-villager-trading.patch similarity index 100% rename from patches/server/0173-Add-config-for-villager-trading.patch rename to patches/server/0172-Add-config-for-villager-trading.patch diff --git a/patches/server/0174-Allow-infinity-on-crossbows.patch b/patches/server/0173-Allow-infinity-on-crossbows.patch similarity index 96% rename from patches/server/0174-Allow-infinity-on-crossbows.patch rename to patches/server/0173-Allow-infinity-on-crossbows.patch index c421b72c7..a975075a8 100644 --- a/patches/server/0174-Allow-infinity-on-crossbows.patch +++ b/patches/server/0173-Allow-infinity-on-crossbows.patch @@ -65,10 +65,10 @@ index 6f6106ca4d74d50a7b74b086adc96c58c7906cb6..d6417c1e77ac8823e18a179dc9f61757 public abstract boolean canEnchant(Item item); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 23f896ab6a58668c61f753c58142d5836644383b..52633405edabea5d8d457f05f5b753ee940cd40d 100644 +index 9b688f88e319d59724d923a1e2631879c3104ef4..04d307b09a03f67a3b2fe78be9470a8d3bb0b424 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -394,6 +394,7 @@ public class PurpurConfig { +@@ -272,6 +272,7 @@ public class PurpurConfig { } public static boolean allowInfinityMending = false; @@ -76,7 +76,7 @@ index 23f896ab6a58668c61f753c58142d5836644383b..52633405edabea5d8d457f05f5b753ee private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -401,6 +402,7 @@ public class PurpurConfig { +@@ -279,6 +280,7 @@ public class PurpurConfig { set("settings.enchantment.allow-infinite-and-mending-together", null); } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); diff --git a/patches/server/0175-Drowning-Settings.patch b/patches/server/0174-Drowning-Settings.patch similarity index 100% rename from patches/server/0175-Drowning-Settings.patch rename to patches/server/0174-Drowning-Settings.patch diff --git a/patches/server/0176-Break-individual-slabs-when-sneaking.patch b/patches/server/0175-Break-individual-slabs-when-sneaking.patch similarity index 100% rename from patches/server/0176-Break-individual-slabs-when-sneaking.patch rename to patches/server/0175-Break-individual-slabs-when-sneaking.patch diff --git a/patches/server/0177-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0176-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 100% rename from patches/server/0177-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/server/0176-Config-to-disable-hostile-mob-spawn-on-ice.patch diff --git a/patches/server/0178-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0177-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 100% rename from patches/server/0178-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/server/0177-Config-to-show-Armor-Stand-arms-on-spawn.patch diff --git a/patches/server/0179-Option-to-make-doors-require-redstone.patch b/patches/server/0178-Option-to-make-doors-require-redstone.patch similarity index 100% rename from patches/server/0179-Option-to-make-doors-require-redstone.patch rename to patches/server/0178-Option-to-make-doors-require-redstone.patch diff --git a/patches/server/0180-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0179-Config-to-allow-for-unsafe-enchants.patch similarity index 97% rename from patches/server/0180-Config-to-allow-for-unsafe-enchants.patch rename to patches/server/0179-Config-to-allow-for-unsafe-enchants.patch index 24b480801..5c26a9244 100644 --- a/patches/server/0180-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0179-Config-to-allow-for-unsafe-enchants.patch @@ -75,10 +75,10 @@ index d1b4fe830170ddee2b6f39eba29e7068e6ae37a3..115f8eb919e90bc4a79db1d0f7875a31 this.getOrCreateTag().put(key, tag); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 52633405edabea5d8d457f05f5b753ee940cd40d..af4573d733b5f6f63062a7309560522bd26dd9a4 100644 +index 04d307b09a03f67a3b2fe78be9470a8d3bb0b424..53a54fea80099e8e97f17ba3fc2445f02364bb35 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -395,6 +395,7 @@ public class PurpurConfig { +@@ -273,6 +273,7 @@ public class PurpurConfig { public static boolean allowInfinityMending = false; public static boolean allowCrossbowInfinity = false; @@ -86,7 +86,7 @@ index 52633405edabea5d8d457f05f5b753ee940cd40d..af4573d733b5f6f63062a7309560522b private static void enchantmentSettings() { if (version < 5) { boolean oldValue = getBoolean("settings.enchantment.allow-infinite-and-mending-together", false); -@@ -403,6 +404,7 @@ public class PurpurConfig { +@@ -281,6 +282,7 @@ public class PurpurConfig { } allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending); allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity); diff --git a/patches/server/0181-Configurable-sponge-absorption.patch b/patches/server/0180-Configurable-sponge-absorption.patch similarity index 100% rename from patches/server/0181-Configurable-sponge-absorption.patch rename to patches/server/0180-Configurable-sponge-absorption.patch diff --git a/patches/server/0182-Projectile-offset-config.patch b/patches/server/0181-Projectile-offset-config.patch similarity index 100% rename from patches/server/0182-Projectile-offset-config.patch rename to patches/server/0181-Projectile-offset-config.patch diff --git a/patches/server/0183-Config-for-powered-rail-activation-distance.patch b/patches/server/0182-Config-for-powered-rail-activation-distance.patch similarity index 100% rename from patches/server/0183-Config-for-powered-rail-activation-distance.patch rename to patches/server/0182-Config-for-powered-rail-activation-distance.patch diff --git a/patches/server/0184-Piglin-portal-spawn-modifier.patch b/patches/server/0183-Piglin-portal-spawn-modifier.patch similarity index 100% rename from patches/server/0184-Piglin-portal-spawn-modifier.patch rename to patches/server/0183-Piglin-portal-spawn-modifier.patch diff --git a/patches/server/0185-Config-to-change-max-number-of-bees.patch b/patches/server/0184-Config-to-change-max-number-of-bees.patch similarity index 92% rename from patches/server/0185-Config-to-change-max-number-of-bees.patch rename to patches/server/0184-Config-to-change-max-number-of-bees.patch index af4bc0601..adc8a9b50 100644 --- a/patches/server/0185-Config-to-change-max-number-of-bees.patch +++ b/patches/server/0184-Config-to-change-max-number-of-bees.patch @@ -18,10 +18,10 @@ index 8484e80a70129fb0358d56efab6fd54798b54e6e..ffacc4b8cc3ab8285c4131aec58e48ff public BeehiveBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.BEEHIVE, pos, state); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index af4573d733b5f6f63062a7309560522bd26dd9a4..2a314fd4542b7dd4654c973fbe490c2d8a7c3a83 100644 +index 53a54fea80099e8e97f17ba3fc2445f02364bb35..154ba82f0f94150d980e62d9441a5d6d137cee43 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -360,6 +360,7 @@ public class PurpurConfig { +@@ -238,6 +238,7 @@ public class PurpurConfig { public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; @@ -29,7 +29,7 @@ index af4573d733b5f6f63062a7309560522bd26dd9a4..2a314fd4542b7dd4654c973fbe490c2d private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -391,6 +392,7 @@ public class PurpurConfig { +@@ -269,6 +270,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); diff --git a/patches/server/0186-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0185-Configurable-damage-settings-for-magma-blocks.patch similarity index 100% rename from patches/server/0186-Configurable-damage-settings-for-magma-blocks.patch rename to patches/server/0185-Configurable-damage-settings-for-magma-blocks.patch diff --git a/patches/server/0187-Config-for-wither-explosion-radius.patch b/patches/server/0186-Config-for-wither-explosion-radius.patch similarity index 100% rename from patches/server/0187-Config-for-wither-explosion-radius.patch rename to patches/server/0186-Config-for-wither-explosion-radius.patch diff --git a/patches/server/0188-Gamemode-extra-permissions.patch b/patches/server/0187-Gamemode-extra-permissions.patch similarity index 97% rename from patches/server/0188-Gamemode-extra-permissions.patch rename to patches/server/0187-Gamemode-extra-permissions.patch index 30e3f6d70..6cb5115d7 100644 --- a/patches/server/0188-Gamemode-extra-permissions.patch +++ b/patches/server/0187-Gamemode-extra-permissions.patch @@ -54,10 +54,10 @@ index 79f6089b934124c3309c6bee2e48b36b937252e0..dff8ef0a1a2e52792070d93685c29002 for(ServerPlayer serverPlayer : targets) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 2a314fd4542b7dd4654c973fbe490c2d8a7c3a83..f699c93ef8b30b6fecae655c848c8fb088f64782 100644 +index 154ba82f0f94150d980e62d9441a5d6d137cee43..420a3fb44eb50147d070953b7107517baa4e5df9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -343,6 +343,7 @@ public class PurpurConfig { +@@ -221,6 +221,7 @@ public class PurpurConfig { public static String commandTPSBarTextColorMedium = ""; public static String commandTPSBarTextColorLow = ""; public static int commandTPSBarTickInterval = 20; @@ -65,7 +65,7 @@ index 2a314fd4542b7dd4654c973fbe490c2d8a7c3a83..f699c93ef8b30b6fecae655c848c8fb0 private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -354,6 +355,7 @@ public class PurpurConfig { +@@ -232,6 +233,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); diff --git a/patches/server/0189-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0188-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch similarity index 100% rename from patches/server/0189-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch rename to patches/server/0188-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch diff --git a/patches/server/0190-Configurable-piston-push-limit.patch b/patches/server/0189-Configurable-piston-push-limit.patch similarity index 100% rename from patches/server/0190-Configurable-piston-push-limit.patch rename to patches/server/0189-Configurable-piston-push-limit.patch diff --git a/patches/server/0191-Configurable-broadcast-settings.patch b/patches/server/0190-Configurable-broadcast-settings.patch similarity index 92% rename from patches/server/0191-Configurable-broadcast-settings.patch rename to patches/server/0190-Configurable-broadcast-settings.patch index cdeb8ae7b..4e45d4c17 100644 --- a/patches/server/0191-Configurable-broadcast-settings.patch +++ b/patches/server/0190-Configurable-broadcast-settings.patch @@ -29,7 +29,7 @@ index b0bbd09379e451798b3fa965c2c61ad029faea5b..d4b9a31fb3a26a8939e1d30f5b6bc2d6 if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastToTeam((Player) this, ichatbasecomponent); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0371ce09bbddbd08aaed0e059c28d0d2384ce9ea..d04fff457bb1ec4b0291c0691569d74f17711c8c 100644 +index 420a3fb44eb50147d070953b7107517baa4e5df9..ae258c4eaa402cc246d7a7052965ce06c58554f0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -178,6 +178,18 @@ public class PurpurConfig { @@ -48,6 +48,6 @@ index 0371ce09bbddbd08aaed0e059c28d0d2384ce9ea..d04fff457bb1ec4b0291c0691569d74f + deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer); + } + - public static int seedFeatureBamboo = -1; - public static int seedFeatureBasaltColumns = -1; - public static int seedFeatureBasaltPillar = -1; + public static String serverModName = "Purpur"; + private static void serverModName() { + serverModName = getString("settings.server-mod-name", serverModName); diff --git a/patches/server/0192-Fix-SPIGOT-6278.patch b/patches/server/0191-Fix-SPIGOT-6278.patch similarity index 100% rename from patches/server/0192-Fix-SPIGOT-6278.patch rename to patches/server/0191-Fix-SPIGOT-6278.patch diff --git a/patches/server/0193-Configurable-mob-blindness.patch b/patches/server/0192-Configurable-mob-blindness.patch similarity index 100% rename from patches/server/0193-Configurable-mob-blindness.patch rename to patches/server/0192-Configurable-mob-blindness.patch diff --git a/patches/server/0194-Hide-hidden-players-from-entity-selector.patch b/patches/server/0193-Hide-hidden-players-from-entity-selector.patch similarity index 96% rename from patches/server/0194-Hide-hidden-players-from-entity-selector.patch rename to patches/server/0193-Hide-hidden-players-from-entity-selector.patch index 55745f6ea..2a6a6b3c0 100644 --- a/patches/server/0194-Hide-hidden-players-from-entity-selector.patch +++ b/patches/server/0193-Hide-hidden-players-from-entity-selector.patch @@ -59,10 +59,10 @@ index 0fb8f32427843f4bfd90ab88ecb3ab3e4a4fda31..f99f1ba7f912a2fd503e12c446b342a8 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 729eebd2e2948586a9f0dde2908b6d9c9ef83553..8f3defd9c656580170ae1083ca1be859efce999f 100644 +index ae258c4eaa402cc246d7a7052965ce06c58554f0..238a33ff3fc9d70a625fec5c37ec83ccbe05792f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -356,6 +356,7 @@ public class PurpurConfig { +@@ -234,6 +234,7 @@ public class PurpurConfig { public static String commandTPSBarTextColorLow = ""; public static int commandTPSBarTickInterval = 20; public static boolean commandGamemodeRequiresPermission = false; @@ -70,7 +70,7 @@ index 729eebd2e2948586a9f0dde2908b6d9c9ef83553..8f3defd9c656580170ae1083ca1be859 private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -368,6 +369,7 @@ public class PurpurConfig { +@@ -246,6 +247,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); diff --git a/patches/server/0195-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0194-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 100% rename from patches/server/0195-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/server/0194-Config-for-health-to-impact-Creeper-explosion-radius.patch diff --git a/patches/server/0196-Iron-golem-poppy-calms-anger.patch b/patches/server/0195-Iron-golem-poppy-calms-anger.patch similarity index 100% rename from patches/server/0196-Iron-golem-poppy-calms-anger.patch rename to patches/server/0195-Iron-golem-poppy-calms-anger.patch diff --git a/patches/server/0197-Breedable-parrots.patch b/patches/server/0196-Breedable-parrots.patch similarity index 100% rename from patches/server/0197-Breedable-parrots.patch rename to patches/server/0196-Breedable-parrots.patch diff --git a/patches/server/0198-Configurable-powered-rail-boost-modifier.patch b/patches/server/0197-Configurable-powered-rail-boost-modifier.patch similarity index 100% rename from patches/server/0198-Configurable-powered-rail-boost-modifier.patch rename to patches/server/0197-Configurable-powered-rail-boost-modifier.patch diff --git a/patches/server/0199-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0198-Add-config-change-multiplier-critical-damage-value.patch similarity index 100% rename from patches/server/0199-Add-config-change-multiplier-critical-damage-value.patch rename to patches/server/0198-Add-config-change-multiplier-critical-damage-value.patch diff --git a/patches/server/0200-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0199-Option-to-disable-dragon-egg-teleporting.patch similarity index 100% rename from patches/server/0200-Option-to-disable-dragon-egg-teleporting.patch rename to patches/server/0199-Option-to-disable-dragon-egg-teleporting.patch diff --git a/patches/server/0201-Config-for-unverified-username-message.patch b/patches/server/0200-Config-for-unverified-username-message.patch similarity index 97% rename from patches/server/0201-Config-for-unverified-username-message.patch rename to patches/server/0200-Config-for-unverified-username-message.patch index 359867e01..4469aa962 100644 --- a/patches/server/0201-Config-for-unverified-username-message.patch +++ b/patches/server/0200-Config-for-unverified-username-message.patch @@ -18,7 +18,7 @@ index 01fee879c946b6640da34d5890d686f0152437dc..503db7080701bad3408c2feecde15cd4 } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 74f8b416eb1746088c1785a97a2b595ce405e08b..61b617d3cd867dfe5898e8fad788848295a8d74f 100644 +index 238a33ff3fc9d70a625fec5c37ec83ccbe05792f..6f778d5725b05430598628ff34a7b99a8a400d93 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -166,6 +166,7 @@ public class PurpurConfig { diff --git a/patches/server/0202-Make-anvil-cumulative-cost-configurable.patch b/patches/server/0201-Make-anvil-cumulative-cost-configurable.patch similarity index 91% rename from patches/server/0202-Make-anvil-cumulative-cost-configurable.patch rename to patches/server/0201-Make-anvil-cumulative-cost-configurable.patch index 43adf7f41..18250badb 100644 --- a/patches/server/0202-Make-anvil-cumulative-cost-configurable.patch +++ b/patches/server/0201-Make-anvil-cumulative-cost-configurable.patch @@ -18,10 +18,10 @@ index bb80328af5051cc01609dfd79b749d9acd2d69ac..9dd5dfc95049de84916bbbd63acb6125 public void setItemName(String newItemName) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d832e8b44f4b723199c6c5a7a7658eb6f5803b6b..ada22f00dbcd08d21c0e0c2df540f1e637a39e1f 100644 +index 6f778d5725b05430598628ff34a7b99a8a400d93..72860c591af31efbdf50b8ce606ef009c62b1610 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -379,6 +379,7 @@ public class PurpurConfig { +@@ -257,6 +257,7 @@ public class PurpurConfig { public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; @@ -29,7 +29,7 @@ index d832e8b44f4b723199c6c5a7a7658eb6f5803b6b..ada22f00dbcd08d21c0e0c2df540f1e6 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -411,6 +412,7 @@ public class PurpurConfig { +@@ -289,6 +290,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); diff --git a/patches/server/0203-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0202-ShulkerBox-allow-oversized-stacks.patch similarity index 100% rename from patches/server/0203-ShulkerBox-allow-oversized-stacks.patch rename to patches/server/0202-ShulkerBox-allow-oversized-stacks.patch diff --git a/patches/server/0204-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0203-Bee-can-work-when-raining-or-at-night.patch similarity index 100% rename from patches/server/0204-Bee-can-work-when-raining-or-at-night.patch rename to patches/server/0203-Bee-can-work-when-raining-or-at-night.patch diff --git a/patches/server/0205-API-for-any-mob-to-burn-daylight.patch b/patches/server/0204-API-for-any-mob-to-burn-daylight.patch similarity index 100% rename from patches/server/0205-API-for-any-mob-to-burn-daylight.patch rename to patches/server/0204-API-for-any-mob-to-burn-daylight.patch diff --git a/patches/server/0206-Fix-advancement-triggers-on-entity-death.patch b/patches/server/0205-Fix-advancement-triggers-on-entity-death.patch similarity index 100% rename from patches/server/0206-Fix-advancement-triggers-on-entity-death.patch rename to patches/server/0205-Fix-advancement-triggers-on-entity-death.patch diff --git a/patches/server/0207-Config-MobEffect-by-world.patch b/patches/server/0206-Config-MobEffect-by-world.patch similarity index 100% rename from patches/server/0207-Config-MobEffect-by-world.patch rename to patches/server/0206-Config-MobEffect-by-world.patch diff --git a/patches/server/0208-Beacon-Activation-Range-Configurable.patch b/patches/server/0207-Beacon-Activation-Range-Configurable.patch similarity index 100% rename from patches/server/0208-Beacon-Activation-Range-Configurable.patch rename to patches/server/0207-Beacon-Activation-Range-Configurable.patch diff --git a/patches/server/0209-Add-toggle-for-sand-duping-fix.patch b/patches/server/0208-Add-toggle-for-sand-duping-fix.patch similarity index 100% rename from patches/server/0209-Add-toggle-for-sand-duping-fix.patch rename to patches/server/0208-Add-toggle-for-sand-duping-fix.patch diff --git a/patches/server/0210-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0209-Add-toggle-for-end-portal-safe-teleporting.patch similarity index 100% rename from patches/server/0210-Add-toggle-for-end-portal-safe-teleporting.patch rename to patches/server/0209-Add-toggle-for-end-portal-safe-teleporting.patch diff --git a/patches/server/0211-Flying-Fall-Damage-API.patch b/patches/server/0210-Flying-Fall-Damage-API.patch similarity index 100% rename from patches/server/0211-Flying-Fall-Damage-API.patch rename to patches/server/0210-Flying-Fall-Damage-API.patch diff --git a/patches/server/0212-Make-lightning-rod-range-configurable.patch b/patches/server/0211-Make-lightning-rod-range-configurable.patch similarity index 92% rename from patches/server/0212-Make-lightning-rod-range-configurable.patch rename to patches/server/0211-Make-lightning-rod-range-configurable.patch index 64a044772..2710f7451 100644 --- a/patches/server/0212-Make-lightning-rod-range-configurable.patch +++ b/patches/server/0211-Make-lightning-rod-range-configurable.patch @@ -18,10 +18,10 @@ index 40b9ce197be14894610673832752b8759fabd0da..30322750466f266eba295d39de30461c return optional.map((blockposition1) -> { return blockposition1.above(1); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 01a9447b0a68d1fcd373ec2a319b351055d0b748..81b0c003b8f23b4bcda40b8d90515f9e620c098a 100644 +index 72860c591af31efbdf50b8ce606ef009c62b1610..5a21baed2943fd9e2f472f8548e42067efcbf419 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -380,6 +380,7 @@ public class PurpurConfig { +@@ -258,6 +258,7 @@ public class PurpurConfig { public static boolean cryingObsidianValidForPortalFrame = false; public static int beeInsideBeeHive = 3; public static boolean anvilCumulativeCost = true; @@ -29,7 +29,7 @@ index 01a9447b0a68d1fcd373ec2a319b351055d0b748..81b0c003b8f23b4bcda40b8d90515f9e private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -413,6 +414,7 @@ public class PurpurConfig { +@@ -291,6 +292,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); diff --git a/patches/server/0213-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0212-Burp-after-eating-food-fills-hunger-bar-completely.patch similarity index 100% rename from patches/server/0213-Burp-after-eating-food-fills-hunger-bar-completely.patch rename to patches/server/0212-Burp-after-eating-food-fills-hunger-bar-completely.patch diff --git a/patches/server/0214-Allow-player-join-full-server-by-permission.patch b/patches/server/0213-Allow-player-join-full-server-by-permission.patch similarity index 100% rename from patches/server/0214-Allow-player-join-full-server-by-permission.patch rename to patches/server/0213-Allow-player-join-full-server-by-permission.patch diff --git a/patches/server/0216-Add-permission-bypass-for-portal-waiting.patch b/patches/server/0214-Add-permission-bypass-for-portal-waiting.patch similarity index 100% rename from patches/server/0216-Add-permission-bypass-for-portal-waiting.patch rename to patches/server/0214-Add-permission-bypass-for-portal-waiting.patch diff --git a/patches/server/0215-Populator-seed-controls.patch b/patches/server/0215-Populator-seed-controls.patch deleted file mode 100644 index 8e2ece9e8..000000000 --- a/patches/server/0215-Populator-seed-controls.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Spottedleaf -Date: Fri, 25 Jun 2021 18:23:36 -0400 -Subject: [PATCH] Populator seed controls - - -diff --git a/src/main/java/net/minecraft/world/level/biome/Biome.java b/src/main/java/net/minecraft/world/level/biome/Biome.java -index 0ea6fedf6e660bc133fd5eb34d3d9bac3e581f32..e298097d2b29cd9a625154ec1a67372c496afd8e 100644 ---- a/src/main/java/net/minecraft/world/level/biome/Biome.java -+++ b/src/main/java/net/minecraft/world/level/biome/Biome.java -@@ -223,6 +223,7 @@ public final class Biome { - return this.generationSettings; - } - -+ private static final java.security.SecureRandom SECURE_RANDOM = new java.security.SecureRandom(); // Purpur - public void generate(StructureFeatureManager structureAccessor, ChunkGenerator chunkGenerator, WorldGenRegion region, long populationSeed, WorldgenRandom random, BlockPos origin) { - List>>> list = this.generationSettings.features(); - Registry> registry = region.registryAccess().registryOrThrow(Registry.CONFIGURED_FEATURE_REGISTRY); -@@ -261,13 +262,20 @@ public final class Biome { - } - } - -+ // Purpur start -+ long populatorSeed = populationSeed; -+ if (((net.minecraft.server.level.ServerChunkCache) region.getChunkSource()).getLevel().purpurConfig.randomPopulatorSeed) { -+ populatorSeed = SECURE_RANDOM.nextLong(); -+ } -+ // Purpur end -+ - if (list.size() > j) { - for(Supplier> supplier2 : list.get(j)) { - ConfiguredFeature configuredFeature = supplier2.get(); - Supplier supplier3 = () -> { - return registry.getResourceKey(configuredFeature).map(Object::toString).orElseGet(configuredFeature::toString); - }; -- random.setFeatureSeed(populationSeed, k, j); -+ random.setFeatureSeed(populatorSeed, k, j); // Purpur - - try { - region.setCurrentlyGenerating(supplier3); -diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 82ff334a6614f5ed8c07a32ae49998d5585744d8..eecc54aa1c16b29ad6de398b5aacf02c02c953f8 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2265,4 +2265,9 @@ public class PurpurWorldConfig { - zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); - zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); - } -+ -+ public boolean randomPopulatorSeed = false; -+ private void seedSettings() { -+ randomPopulatorSeed = getBoolean("seed.random-populator-seed", randomPopulatorSeed); -+ } - } diff --git a/patches/server/0217-Shulker-spawn-from-bullet-options.patch b/patches/server/0215-Shulker-spawn-from-bullet-options.patch similarity index 98% rename from patches/server/0217-Shulker-spawn-from-bullet-options.patch rename to patches/server/0215-Shulker-spawn-from-bullet-options.patch index f3dbc16bd..822125bda 100644 --- a/patches/server/0217-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0215-Shulker-spawn-from-bullet-options.patch @@ -61,7 +61,7 @@ index f812a75985d26785639491c9a980387a3f261f2d..b11fb39b69f5225ca7da72ca1a2200c7 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index eecc54aa1c16b29ad6de398b5aacf02c02c953f8..26d78cdc82d83138f1f0916f8ff958aa32c33339 100644 +index 82ff334a6614f5ed8c07a32ae49998d5585744d8..6f716a423b6280dc6c6dac8313e5ed734a42953a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1722,6 +1722,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0218-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0216-Eating-glow-berries-adds-glow-effect.patch similarity index 97% rename from patches/server/0218-Eating-glow-berries-adds-glow-effect.patch rename to patches/server/0216-Eating-glow-berries-adds-glow-effect.patch index 7bbc45847..54b92af8c 100644 --- a/patches/server/0218-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0216-Eating-glow-berries-adds-glow-effect.patch @@ -18,7 +18,7 @@ index 89d4b7e4cd4222b61b49833fceda56ffa39710fa..1eb50f0bc41db79f091f900861ba71d7 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/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 26d78cdc82d83138f1f0916f8ff958aa32c33339..c12cb45034ed98f9fe24b38c0c86adbce97ae3d7 100644 +index 6f716a423b6280dc6c6dac8313e5ed734a42953a..0f86df706607108ef03c5b0d3f8e8e01356a7573 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -173,6 +173,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0219-Option-to-make-drowned-break-doors.patch b/patches/server/0217-Option-to-make-drowned-break-doors.patch similarity index 97% rename from patches/server/0219-Option-to-make-drowned-break-doors.patch rename to patches/server/0217-Option-to-make-drowned-break-doors.patch index 4cee7cb86..9534ca66d 100644 --- a/patches/server/0219-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0217-Option-to-make-drowned-break-doors.patch @@ -34,7 +34,7 @@ index 8d3ce6c97a8734c0d13844cafca251a3f4dce8a4..a004d59483dc3ffb404ae28daf76c807 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c12cb45034ed98f9fe24b38c0c86adbce97ae3d7..7a45c3c38e88f4cc656614e01f334e9df6635503 100644 +index 0f86df706607108ef03c5b0d3f8e8e01356a7573..beeeb6f6a6a4d9e216b22b969ce04eebe89ed443 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1021,6 +1021,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0220-Configurable-hunger-starvation-damage.patch b/patches/server/0218-Configurable-hunger-starvation-damage.patch similarity index 76% rename from patches/server/0220-Configurable-hunger-starvation-damage.patch rename to patches/server/0218-Configurable-hunger-starvation-damage.patch index 6c2bca720..da6386fe6 100644 --- a/patches/server/0220-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0218-Configurable-hunger-starvation-damage.patch @@ -18,12 +18,12 @@ index c1130952e3fa22abaa27fcc1c4761c831dc56cc3..1ac08eca469739cb52abd38483c431b6 this.tickTimer = 0; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7a45c3c38e88f4cc656614e01f334e9df6635503..e4ee61e5392f508dd5390831990c5281d3154dc2 100644 +index beeeb6f6a6a4d9e216b22b969ce04eebe89ed443..a45781c2fd497b7ae7c7ddd703fab8a35295df14 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2284,4 +2284,9 @@ public class PurpurWorldConfig { - private void seedSettings() { - randomPopulatorSeed = getBoolean("seed.random-populator-seed", randomPopulatorSeed); +@@ -2279,4 +2279,9 @@ public class PurpurWorldConfig { + zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); + zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); } + + public float hungerStarvationDamage = 1.0F; diff --git a/patches/server/0221-Redirect-System.out-calls-to-plugin-loggers.patch b/patches/server/0219-Redirect-System.out-calls-to-plugin-loggers.patch similarity index 100% rename from patches/server/0221-Redirect-System.out-calls-to-plugin-loggers.patch rename to patches/server/0219-Redirect-System.out-calls-to-plugin-loggers.patch diff --git a/patches/server/0222-Armor-click-equip-options.patch b/patches/server/0220-Armor-click-equip-options.patch similarity index 98% rename from patches/server/0222-Armor-click-equip-options.patch rename to patches/server/0220-Armor-click-equip-options.patch index 6852dac17..cfb0ac166 100644 --- a/patches/server/0222-Armor-click-equip-options.patch +++ b/patches/server/0220-Armor-click-equip-options.patch @@ -58,7 +58,7 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index e4ee61e5392f508dd5390831990c5281d3154dc2..f84358a43cb9754d995238811264f24ccf3c35cd 100644 +index a45781c2fd497b7ae7c7ddd703fab8a35295df14..50236d7fa4f0054ca22186697a17e1205c89393e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -344,6 +344,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0223-Add-uptime-command.patch b/patches/server/0221-Add-uptime-command.patch similarity index 97% rename from patches/server/0223-Add-uptime-command.patch rename to patches/server/0221-Add-uptime-command.patch index ee66a0418..4525fce8d 100644 --- a/patches/server/0223-Add-uptime-command.patch +++ b/patches/server/0221-Add-uptime-command.patch @@ -29,7 +29,7 @@ index dd4be57611028acde485bc03640e83e07b0bd34f..928c759d30db2d35ea786b3fe0738c42 public int autosavePeriod; public boolean serverAutoSave = false; // Paper diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 81b0c003b8f23b4bcda40b8d90515f9e620c098a..055cff8be7979b308aad32ffe533a61ce80c295a 100644 +index 5a21baed2943fd9e2f472f8548e42067efcbf419..a4df504ae098d27b9843bfdec064694de6d433f9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -166,6 +166,7 @@ public class PurpurConfig { @@ -48,7 +48,7 @@ index 81b0c003b8f23b4bcda40b8d90515f9e620c098a..055cff8be7979b308aad32ffe533a61c unverifiedUsername = getString("settings.messages.unverified-username", unverifiedUsername); } -@@ -359,6 +361,15 @@ public class PurpurConfig { +@@ -237,6 +239,15 @@ public class PurpurConfig { public static int commandTPSBarTickInterval = 20; public static boolean commandGamemodeRequiresPermission = false; public static boolean hideHiddenPlayersFromEntitySelector = false; @@ -64,7 +64,7 @@ index 81b0c003b8f23b4bcda40b8d90515f9e620c098a..055cff8be7979b308aad32ffe533a61c private static void commandSettings() { commandTPSBarTitle = getString("settings.command.tpsbar.title", commandTPSBarTitle); commandTPSBarProgressOverlay = BossBar.Overlay.valueOf(getString("settings.command.tpsbar.overlay", commandTPSBarProgressOverlay.name())); -@@ -372,6 +383,15 @@ public class PurpurConfig { +@@ -250,6 +261,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); diff --git a/patches/server/0224-Structure-seed-options.patch b/patches/server/0222-Structure-seed-options.patch similarity index 69% rename from patches/server/0224-Structure-seed-options.patch rename to patches/server/0222-Structure-seed-options.patch index 5784154e9..deda30e7b 100644 --- a/patches/server/0224-Structure-seed-options.patch +++ b/patches/server/0222-Structure-seed-options.patch @@ -27,26 +27,24 @@ index 6a1cb38de5733e384546984a0eadd4bab53c0122..3db79ce2ee0e72fe521beaaf6373a5ff updated.put(entry.getKey(), new StructureFeatureConfiguration(feature.spacing(), feature.separation(), seed)); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 820ef4ade5a38ca158ee5ec841abbdde80fc1399..a2e3594c92f3b16fe70d327616040a4afac77765 100644 +index a4df504ae098d27b9843bfdec064694de6d433f9..c7e87fc17c97e1f8ff5c3aae707a7bb5486fa74b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -247,6 +247,9 @@ public class PurpurConfig { - public static int seedFeatureVegetationPatch = -1; - public static int seedFeatureWaterloggedVegetationPatch = -1; - public static int seedFeatureWeepingVines = -1; +@@ -194,6 +194,17 @@ public class PurpurConfig { + deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer); + } + + public static int seedStructureBuriedTreasure = -1; + public static int seedStructureMineshaft = -1; + public static int seedStructureStronghold = -1; - private static void seedSettings() { - if (version < 14) { - int oldValue = getInt("settings.seed.dungeon", -1); -@@ -312,6 +315,9 @@ public class PurpurConfig { - seedFeatureVegetationPatch = getInt("settings.seed.feature.vegetation_patch", seedFeatureVegetationPatch); - seedFeatureWaterloggedVegetationPatch = getInt("settings.seed.feature.waterlogged_vegetation_patch", seedFeatureWaterloggedVegetationPatch); - seedFeatureWeepingVines = getInt("settings.seed.feature.weeping_vines", seedFeatureWeepingVines); ++ private static void seedSettings() { + seedStructureBuriedTreasure = getInt("settings.seed.structure.buried_treasure", seedStructureBuriedTreasure); + seedStructureMineshaft = getInt("settings.seed.structure.mineshaft", seedStructureMineshaft); + seedStructureStronghold = getInt("settings.seed.structure.stronghold", seedStructureStronghold); - // hide these from timings report - if (!TimingsManager.hiddenConfigs.contains("settings.seed")) TimingsManager.hiddenConfigs.add("settings.seed"); - } ++ // 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); diff --git a/patches/server/0225-Tool-actionable-options.patch b/patches/server/0223-Tool-actionable-options.patch similarity index 99% rename from patches/server/0225-Tool-actionable-options.patch rename to patches/server/0223-Tool-actionable-options.patch index 63b44e322..4c1362c33 100644 --- a/patches/server/0225-Tool-actionable-options.patch +++ b/patches/server/0223-Tool-actionable-options.patch @@ -109,7 +109,7 @@ index 009dd6b59e27a9413b3ef115468a6d1dd0746d56..fdbc1378bc148f5a16b414a3e5867cdc return InteractionResult.PASS; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f84358a43cb9754d995238811264f24ccf3c35cd..2b455827bc9db50dc0821672a98167a337f5c2b9 100644 +index 50236d7fa4f0054ca22186697a17e1205c89393e..77ad75f834350afda49bbc6f2d27d38da4616c1f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -464,6 +464,153 @@ public class PurpurWorldConfig { diff --git a/patches/server/0226-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch b/patches/server/0224-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch similarity index 91% rename from patches/server/0226-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch rename to patches/server/0224-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch index e6657718d..c04f13a59 100644 --- a/patches/server/0226-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch +++ b/patches/server/0224-SPIGOT-5988-Fix-bed-respawn-location-not-resetting.patch @@ -17,10 +17,10 @@ index eea99b8f6fabae1b0c5c9ef55798173f8ba99f28..71705517943f62ae85a9298cf484bb7c } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 30c14751001637a36e715e04d3b18e7ed5acec09..67d36f4e2abfd760e79a2e5172adb5920c803442 100644 +index c7e87fc17c97e1f8ff5c3aae707a7bb5486fa74b..220af6285721db4090dbed3258db73e3c44e5e21 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -407,6 +407,7 @@ public class PurpurConfig { +@@ -290,6 +290,7 @@ public class PurpurConfig { public static int beeInsideBeeHive = 3; public static boolean anvilCumulativeCost = true; public static int lightningRodRange = 128; @@ -28,7 +28,7 @@ index 30c14751001637a36e715e04d3b18e7ed5acec09..67d36f4e2abfd760e79a2e5172adb592 private static void blockSettings() { if (version < 3) { boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); -@@ -441,6 +442,7 @@ public class PurpurConfig { +@@ -324,6 +325,7 @@ public class PurpurConfig { beeInsideBeeHive = getInt("settings.blocks.beehive.max-bees-inside", beeInsideBeeHive); anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost); lightningRodRange = getInt("settings.blocks.lightning_rod.range", lightningRodRange); diff --git a/patches/server/0227-Store-placer-on-Block-when-placed.patch b/patches/server/0225-Store-placer-on-Block-when-placed.patch similarity index 100% rename from patches/server/0227-Store-placer-on-Block-when-placed.patch rename to patches/server/0225-Store-placer-on-Block-when-placed.patch diff --git a/patches/server/0228-Summoner-API.patch b/patches/server/0226-Summoner-API.patch similarity index 100% rename from patches/server/0228-Summoner-API.patch rename to patches/server/0226-Summoner-API.patch diff --git a/patches/server/0229-Customizable-sleeping-actionbar-messages.patch b/patches/server/0227-Customizable-sleeping-actionbar-messages.patch similarity index 97% rename from patches/server/0229-Customizable-sleeping-actionbar-messages.patch rename to patches/server/0227-Customizable-sleeping-actionbar-messages.patch index 5b54456f5..09a4f418d 100644 --- a/patches/server/0229-Customizable-sleeping-actionbar-messages.patch +++ b/patches/server/0227-Customizable-sleeping-actionbar-messages.patch @@ -40,7 +40,7 @@ index 30322750466f266eba295d39de30461c02423df9..369ad2615a7f8ee35de91451a4b9fa01 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0e806a4d1535eadacdef43c0ddf27bb2b2dbbfc4..f5575629e83f6c6f7c45c367d5e32a6ded408eb1 100644 +index 220af6285721db4090dbed3258db73e3c44e5e21..430a2a47cdb9ead034dfb2bfdfcae653a7bb03ac 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -168,6 +168,8 @@ public class PurpurConfig { diff --git a/patches/server/0230-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0228-option-to-disable-shulker-box-items-from-dropping-co.patch similarity index 96% rename from patches/server/0230-option-to-disable-shulker-box-items-from-dropping-co.patch rename to patches/server/0228-option-to-disable-shulker-box-items-from-dropping-co.patch index 690469dd7..c4b5ab8ff 100644 --- a/patches/server/0230-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0228-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,7 +19,7 @@ index 6c261b9ddee80139140bd1f091fcdacc3a70c8ef..65917d1438b0f480385e9117ba2a386e if (nbttagcompound != null) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2b455827bc9db50dc0821672a98167a337f5c2b9..3caf11332258b6bbb6cf239b67f5fa58841b90c9 100644 +index 77ad75f834350afda49bbc6f2d27d38da4616c1f..e2fd8469626d497a79692cda17b725330d733add 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -174,6 +174,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0231-Silk-touchable-budding-amethyst.patch b/patches/server/0229-Silk-touchable-budding-amethyst.patch similarity index 95% rename from patches/server/0231-Silk-touchable-budding-amethyst.patch rename to patches/server/0229-Silk-touchable-budding-amethyst.patch index fb4f8063d..59568305e 100644 --- a/patches/server/0231-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0229-Silk-touchable-budding-amethyst.patch @@ -24,7 +24,7 @@ index 02fc3ede12eadbf72e26e31b1c475c7f5b2ad73a..2288e727929ffb3a3bca138fb0289408 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 3caf11332258b6bbb6cf239b67f5fa58841b90c9..f56155c44c2d2107aaef4f2066a7a5e8ec214417 100644 +index e2fd8469626d497a79692cda17b725330d733add..6bd57a023bd448324146c2dea4d1f6a4a6b2ec40 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -712,6 +712,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0232-Big-dripleaf-tilt-delay.patch b/patches/server/0230-Big-dripleaf-tilt-delay.patch similarity index 96% rename from patches/server/0232-Big-dripleaf-tilt-delay.patch rename to patches/server/0230-Big-dripleaf-tilt-delay.patch index 99e18851b..5c1f2637a 100644 --- a/patches/server/0232-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0230-Big-dripleaf-tilt-delay.patch @@ -24,7 +24,7 @@ index 5bfb60258018c8beda1fc2ac29e8ffc5c9377064..24e80e4d3ebbfd5f72e00ad7610efa12 if (i != -1) { world.getBlockTicks().scheduleTick(blockposition, this, i); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index f56155c44c2d2107aaef4f2066a7a5e8ec214417..fb607c9eda6ff7f661117cd9ce13c7a9e0114132 100644 +index 6bd57a023bd448324146c2dea4d1f6a4a6b2ec40..5d7562577eb5f63773263d929760982f4dd1f6b5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -712,6 +712,22 @@ public class PurpurWorldConfig { diff --git a/patches/server/0233-Player-ridable-in-water-option.patch b/patches/server/0231-Player-ridable-in-water-option.patch similarity index 96% rename from patches/server/0233-Player-ridable-in-water-option.patch rename to patches/server/0231-Player-ridable-in-water-option.patch index d538226da..19cdc410b 100644 --- a/patches/server/0233-Player-ridable-in-water-option.patch +++ b/patches/server/0231-Player-ridable-in-water-option.patch @@ -21,7 +21,7 @@ index 841e21e160f728af12daef1eba8d25e5cd081bda..8102ee4cc9f936de20a0cb6875ada524 if (!this.isPassenger() && this.onGround && !this.isInWater() && !this.isInPowderSnow) { if (this.getShoulderEntityLeft().isEmpty()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index fb607c9eda6ff7f661117cd9ce13c7a9e0114132..06ab3344318c6e902135abed014488c1188f8669 100644 +index 5d7562577eb5f63773263d929760982f4dd1f6b5..c94152cffd69ee533031426dfcc65aad933fd9e9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -348,6 +348,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0234-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0232-Config-to-disable-Enderman-teleport-on-projectile-hi.patch similarity index 96% rename from patches/server/0234-Config-to-disable-Enderman-teleport-on-projectile-hi.patch rename to patches/server/0232-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index cbbfbd753..b6a85baaf 100644 --- a/patches/server/0234-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0232-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -18,7 +18,7 @@ index 3e15f892f210611edf68dc56b912be5b4890dbcb..e76164aa8e8750cb188bec250d0cca26 for (int i = 0; i < 64; ++i) { if (this.teleport()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 06ab3344318c6e902135abed014488c1188f8669..1facdf93ce63c786a459cfff8293a41477f91d21 100644 +index c94152cffd69ee533031426dfcc65aad933fd9e9..5d7042e55c2d46947fc2f82e2ff90b2efc77dcba 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1263,6 +1263,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0235-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch b/patches/server/0233-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch similarity index 88% rename from patches/server/0235-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch rename to patches/server/0233-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch index 6de9dc563..7a73d80d2 100644 --- a/patches/server/0235-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch +++ b/patches/server/0233-Fix-Important-Issue-Crash-with-Plugin-or-Datapack-Ge.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Fix Important Issue Crash with Plugin or Datapack Generation diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java -index 2d102ea80d3f8e8aad0d57626450a7f30bb6c346..6b99c901d30d4334b1651a1853a79603d74e64bf 100644 +index ae11f1ecf23b38b84ab09f66796d1509a21bfbd8..0a4a0a3d81753a7dea6a6483f601254928c697fb 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/DecoratedFeature.java @@ -24,12 +24,16 @@ public class DecoratedFeature extends Feature { - Random random = getRnd(context.random(), net.pl3x.purpur.PurpurConfig.seedFeatureDecorated); // Purpur + Random random = context.random(); BlockPos blockPos = context.origin(); ConfiguredFeature configuredFeature = decoratedFeatureConfiguration.feature.get(); - decoratedFeatureConfiguration.decorator.getPositions(new DecorationContext(worldGenLevel, chunkGenerator), random, blockPos).forEach((blockPosx) -> { @@ -32,10 +32,10 @@ index 2d102ea80d3f8e8aad0d57626450a7f30bb6c346..6b99c901d30d4334b1651a1853a79603 } diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java -index 2f71e80f6c9d37a97d1d03b7a1d893c825b315fa..ba36676977cc3665a4ea20c556133d4faf06af3e 100644 +index 0be9ce0734e3ba72893a7349bb9f83a94f4af30c..f1a04ef36ee5e898529e99d98905b74607a16177 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/TreeFeature.java -@@ -149,7 +149,7 @@ public class TreeFeature extends Feature { +@@ -147,7 +147,7 @@ public class TreeFeature extends Feature { worldGenLevel.setBlock(pos, state, 19); }; boolean bl = this.doPlace(worldGenLevel, random, blockPos, biConsumer, biConsumer2, treeConfiguration); diff --git a/patches/server/0236-Add-compass-command.patch b/patches/server/0234-Add-compass-command.patch similarity index 97% rename from patches/server/0236-Add-compass-command.patch rename to patches/server/0234-Add-compass-command.patch index 274672cf8..eb7f276bd 100644 --- a/patches/server/0236-Add-compass-command.patch +++ b/patches/server/0234-Add-compass-command.patch @@ -81,10 +81,10 @@ index 9d541c9e53f3f8db871f01f8d083e4cfc0de0de1..046bf9cbf02b002e89f7d39b616dd0f5 CompoundTag compoundTag = stack.getOrCreateTag(); if (compoundTag.contains("LodestoneTracked") && !compoundTag.getBoolean("LodestoneTracked")) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 419b5766ffcd240751b34f340f53ccf76523521c..07bdddf241df745f483a7318f5c08ac791958d05 100644 +index 430a2a47cdb9ead034dfb2bfdfcae653a7bb03ac..919077551b633f2aaa8dd1c67ef7f31bed5f19b1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -369,6 +369,11 @@ public class PurpurConfig { +@@ -252,6 +252,11 @@ public class PurpurConfig { public static String commandTPSBarTextColorMedium = ""; public static String commandTPSBarTextColorLow = ""; public static int commandTPSBarTickInterval = 20; @@ -96,7 +96,7 @@ index 419b5766ffcd240751b34f340f53ccf76523521c..07bdddf241df745f483a7318f5c08ac7 public static boolean commandGamemodeRequiresPermission = false; public static boolean hideHiddenPlayersFromEntitySelector = false; public static String uptimeFormat = ""; -@@ -391,6 +396,13 @@ public class PurpurConfig { +@@ -274,6 +279,13 @@ 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); @@ -111,7 +111,7 @@ index 419b5766ffcd240751b34f340f53ccf76523521c..07bdddf241df745f483a7318f5c08ac7 hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 1facdf93ce63c786a459cfff8293a41477f91d21..c053a04fb5de1c1974a8bc34de41e736d3b27438 100644 +index 5d7042e55c2d46947fc2f82e2ff90b2efc77dcba..60b2d35aeafeaeac8d65184c4e936e8677bcc406 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -175,6 +175,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0237-Config-to-prevent-horses-from-standing-with-riders.patch b/patches/server/0235-Config-to-prevent-horses-from-standing-with-riders.patch similarity index 96% rename from patches/server/0237-Config-to-prevent-horses-from-standing-with-riders.patch rename to patches/server/0235-Config-to-prevent-horses-from-standing-with-riders.patch index 562be7783..649c789e4 100644 --- a/patches/server/0237-Config-to-prevent-horses-from-standing-with-riders.patch +++ b/patches/server/0235-Config-to-prevent-horses-from-standing-with-riders.patch @@ -20,7 +20,7 @@ index 16b72398645757ca194cb638f46b4528283e2199..03ae6519a523ee73cce664d85074b5f9 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index c053a04fb5de1c1974a8bc34de41e736d3b27438..a00e489b13e12eee56505dcc146a759020e98546 100644 +index 60b2d35aeafeaeac8d65184c4e936e8677bcc406..3b232ff1bba47836a2911b75b4757ef9161bb76b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1442,6 +1442,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0238-Toggle-for-kinetic-damage.patch b/patches/server/0236-Toggle-for-kinetic-damage.patch similarity index 96% rename from patches/server/0238-Toggle-for-kinetic-damage.patch rename to patches/server/0236-Toggle-for-kinetic-damage.patch index 8d6e94b2e..1d99ccbea 100644 --- a/patches/server/0238-Toggle-for-kinetic-damage.patch +++ b/patches/server/0236-Toggle-for-kinetic-damage.patch @@ -22,7 +22,7 @@ index ad3ef0b1f3d6d00a0aca909812127b09302e5a8c..4ed72b06786505f61502772bba973b12 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index a00e489b13e12eee56505dcc146a759020e98546..652adf619711171ac98c1b4dce5d8ce7acb0f769 100644 +index 3b232ff1bba47836a2911b75b4757ef9161bb76b..7f6ec9057df3bba8089585924837d3f8336adb3f 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -137,12 +137,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0239-Add-Option-for-disable-observer-clocks.patch b/patches/server/0237-Add-Option-for-disable-observer-clocks.patch similarity index 95% rename from patches/server/0239-Add-Option-for-disable-observer-clocks.patch rename to patches/server/0237-Add-Option-for-disable-observer-clocks.patch index f9a175e31..7ef81eb26 100644 --- a/patches/server/0239-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0237-Add-Option-for-disable-observer-clocks.patch @@ -18,7 +18,7 @@ index 101317912b8299f5be406b75c19cfddb30c1f3f3..21f5632bbc58a1c34b85d9fef2408938 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 652adf619711171ac98c1b4dce5d8ce7acb0f769..830ce09925b39286eafb0166d897b4daa87346f1 100644 +index 7f6ec9057df3bba8089585924837d3f8336adb3f..fc1599f1d23fb92f9e394aad52a17cf85ec399d1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -320,6 +320,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0240-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0238-Customizeable-Zombie-Villager-curing-times.patch similarity index 96% rename from patches/server/0240-Customizeable-Zombie-Villager-curing-times.patch rename to patches/server/0238-Customizeable-Zombie-Villager-curing-times.patch index 2097f2b4a..324e625a9 100644 --- a/patches/server/0240-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0238-Customizeable-Zombie-Villager-curing-times.patch @@ -18,7 +18,7 @@ index 7fda07f5fa756077dab59de95f15b9197e09581a..6a456f52ae529654c15bd3e8ec717b3f this.gameEvent(GameEvent.MOB_INTERACT, this.eyeBlockPosition()); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 830ce09925b39286eafb0166d897b4daa87346f1..4a8ce59f40985d4742ba69f54e259cd8504e4fec 100644 +index fc1599f1d23fb92f9e394aad52a17cf85ec399d1..4404247deb6bf08a0e0c53214b89b98d40dd658b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -2430,6 +2430,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0241-Option-for-sponges-to-work-on-lava.patch b/patches/server/0239-Option-for-sponges-to-work-on-lava.patch similarity index 95% rename from patches/server/0241-Option-for-sponges-to-work-on-lava.patch rename to patches/server/0239-Option-for-sponges-to-work-on-lava.patch index b2740384d..0dd9d3563 100644 --- a/patches/server/0241-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0239-Option-for-sponges-to-work-on-lava.patch @@ -18,7 +18,7 @@ index 5b10e1110f938745c8f9ed0b55960566bc720c30..c97fddfc680a9d1934c751e0e87e287d ++i; if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 4a8ce59f40985d4742ba69f54e259cd8504e4fec..b384899bff3948cbddcd7263077c182cb2b442bf 100644 +index 4404247deb6bf08a0e0c53214b89b98d40dd658b..9b61d8c8a46ebce9f3afad96375c9fd24bee74c0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -935,9 +935,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0242-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0240-Toggle-for-Wither-s-spawn-sound.patch similarity index 96% rename from patches/server/0242-Toggle-for-Wither-s-spawn-sound.patch rename to patches/server/0240-Toggle-for-Wither-s-spawn-sound.patch index ec3de0e49..2f2dd99f4 100644 --- a/patches/server/0242-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0240-Toggle-for-Wither-s-spawn-sound.patch @@ -18,7 +18,7 @@ index 48c1ddbd9f20e6ece121b166c08341006fa15105..c01c60485eba8f57ad6ead20bd3f9101 // this.world.b(1023, new BlockPosition(this), 0); //int viewDistance = ((WorldServer) this.world).getServer().getViewDistance() * 16; // Paper - updated to use worlds actual view distance incase we have to uncomment this due to removal of player view distance API diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b384899bff3948cbddcd7263077c182cb2b442bf..b2b62319d10fd7716639967c9b4f08b6efbd6d32 100644 +index 9b61d8c8a46ebce9f3afad96375c9fd24bee74c0..ed6a548326d058d74f4f080c9c78f8f437003090 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -2291,6 +2291,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0243-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0241-Cactus-breaks-from-solid-neighbors-config.patch similarity index 95% rename from patches/server/0243-Cactus-breaks-from-solid-neighbors-config.patch rename to patches/server/0241-Cactus-breaks-from-solid-neighbors-config.patch index cb1c27d28..62e554915 100644 --- a/patches/server/0243-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0241-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,7 +18,7 @@ index 2a02fdf58640d26b82e0ca22d0d8ff3326921b61..c65ec767363b76aa8e8234037d937423 return false; } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b2b62319d10fd7716639967c9b4f08b6efbd6d32..8cf456545deca83a42f88aef44f2a8b60280d741 100644 +index ed6a548326d058d74f4f080c9c78f8f437003090..83dda9d1f9057c7e3796f2c000f75d1fa3f347cc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -744,6 +744,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0244-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0242-Config-to-remove-curse-of-binding-with-weakness.patch similarity index 96% rename from patches/server/0244-Config-to-remove-curse-of-binding-with-weakness.patch rename to patches/server/0242-Config-to-remove-curse-of-binding-with-weakness.patch index 3dd76fe1a..f874a2a0d 100644 --- a/patches/server/0244-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0242-Config-to-remove-curse-of-binding-with-weakness.patch @@ -26,7 +26,7 @@ index 777c21d8f3d5a7e9c156d25263f4b50ad67bd7c7..98cc31b2f318c468d1d2a26b24441bfe @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 8cf456545deca83a42f88aef44f2a8b60280d741..d1928fbb2bd74b6b2e82622e375261a383a3cdf8 100644 +index 83dda9d1f9057c7e3796f2c000f75d1fa3f347cc..772b723a07981128b2620fa8cc59c88cf1299e65 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -358,6 +358,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0245-Conduit-behavior-configuration.patch b/patches/server/0243-Conduit-behavior-configuration.patch similarity index 96% rename from patches/server/0245-Conduit-behavior-configuration.patch rename to patches/server/0243-Conduit-behavior-configuration.patch index f397c3c3e..e82a86c17 100644 --- a/patches/server/0245-Conduit-behavior-configuration.patch +++ b/patches/server/0243-Conduit-behavior-configuration.patch @@ -44,10 +44,10 @@ index fc996199616156d04d6ae06ddc3da8d2c159c771..dd76fe8aa67a9c4142295b72b1c3cb78 } CraftEventFactory.blockDamage = null; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index d1928fbb2bd74b6b2e82622e375261a383a3cdf8..881c34788c79283c59903281f1f6ccf717dd526b 100644 +index 772b723a07981128b2620fa8cc59c88cf1299e65..c3ee58d3b2b4df61c85fa327187f69afe07c1d49 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2493,4 +2493,27 @@ public class PurpurWorldConfig { +@@ -2488,4 +2488,27 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0246-Cauldron-fill-chances.patch b/patches/server/0244-Cauldron-fill-chances.patch similarity index 92% rename from patches/server/0246-Cauldron-fill-chances.patch rename to patches/server/0244-Cauldron-fill-chances.patch index 07f9245c2..6c5230994 100644 --- a/patches/server/0246-Cauldron-fill-chances.patch +++ b/patches/server/0244-Cauldron-fill-chances.patch @@ -18,10 +18,10 @@ index dbae4f3b56d0290c6d28b9beaaa3b459754d43e3..676184c48c3abd8e2fb9a04ae3e165dc @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 881c34788c79283c59903281f1f6ccf717dd526b..316e03e7d91d1d63a67118ff285a9aa49a71ed90 100644 +index c3ee58d3b2b4df61c85fa327187f69afe07c1d49..37987c92133b723e74cbe1cf40e02470bd087c41 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -@@ -2516,4 +2516,11 @@ public class PurpurWorldConfig { +@@ -2511,4 +2511,11 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0247-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0245-Config-to-allow-mobs-to-pathfind-over-rails.patch similarity index 96% rename from patches/server/0247-Config-to-allow-mobs-to-pathfind-over-rails.patch rename to patches/server/0245-Config-to-allow-mobs-to-pathfind-over-rails.patch index a9d8ae426..9a702ad57 100644 --- a/patches/server/0247-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0245-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -18,7 +18,7 @@ index 60605a8a021cc56f9c3ba22bc43c43c302fb1a70..e7dc64c3ef715e3e58d79bb55546a122 if (node != null && (node.type == BlockPathTypes.OPEN || node.type == BlockPathTypes.WALKABLE) && this.mob.getBbWidth() < 1.0F) { double g = (double)(x - direction.getStepX()) + 0.5D; diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 316e03e7d91d1d63a67118ff285a9aa49a71ed90..b5572977af48dde1e4622378fb13da0460e8be38 100644 +index 37987c92133b723e74cbe1cf40e02470bd087c41..5203e40b416db5f919b5da8205caec3ef64b6519 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -647,6 +647,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0248-Add-force-and-prompt-parameters-to-resource-pack-api.patch b/patches/server/0246-Add-force-and-prompt-parameters-to-resource-pack-api.patch similarity index 100% rename from patches/server/0248-Add-force-and-prompt-parameters-to-resource-pack-api.patch rename to patches/server/0246-Add-force-and-prompt-parameters-to-resource-pack-api.patch diff --git a/patches/server/0249-Shulker-change-color-with-dye.patch b/patches/server/0247-Shulker-change-color-with-dye.patch similarity index 97% rename from patches/server/0249-Shulker-change-color-with-dye.patch rename to patches/server/0247-Shulker-change-color-with-dye.patch index 0a1d7f818..da17ff25d 100644 --- a/patches/server/0249-Shulker-change-color-with-dye.patch +++ b/patches/server/0247-Shulker-change-color-with-dye.patch @@ -47,7 +47,7 @@ index 03da91ee39851e8d066b8c63dce849e665c59479..fba13f838c7a427cf43ae9958d8815b1 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index b5572977af48dde1e4622378fb13da0460e8be38..2fbea88bac45839e6bdec6bd7deff7a552f5373f 100644 +index 5203e40b416db5f919b5da8205caec3ef64b6519..45377b09a17b56d5474bd39454891a18abe9599a 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1931,6 +1931,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0250-Extended-OfflinePlayer-API.patch b/patches/server/0248-Extended-OfflinePlayer-API.patch similarity index 100% rename from patches/server/0250-Extended-OfflinePlayer-API.patch rename to patches/server/0248-Extended-OfflinePlayer-API.patch diff --git a/patches/server/0251-Added-the-ability-to-add-combustible-items.patch b/patches/server/0249-Added-the-ability-to-add-combustible-items.patch similarity index 100% rename from patches/server/0251-Added-the-ability-to-add-combustible-items.patch rename to patches/server/0249-Added-the-ability-to-add-combustible-items.patch diff --git a/patches/server/0252-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0250-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch similarity index 97% rename from patches/server/0252-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch rename to patches/server/0250-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 646b24184..201f70905 100644 --- a/patches/server/0252-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0250-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -25,7 +25,7 @@ index 369ad2615a7f8ee35de91451a4b9fa01031d0dc1..bf91d6c0d67aa72a6272dc878b07e292 // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 2fbea88bac45839e6bdec6bd7deff7a552f5373f..bbb420508b9e5522135bc8644d97cdfe820f42a2 100644 +index 45377b09a17b56d5474bd39454891a18abe9599a..34e3a86558685d993245bae76c3a4e9a61530274 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -648,6 +648,8 @@ public class PurpurWorldConfig { diff --git a/patches/server/0253-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0251-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch similarity index 98% rename from patches/server/0253-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch rename to patches/server/0251-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 1366ee8ae..57f90e6d4 100644 --- a/patches/server/0253-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0251-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,7 +45,7 @@ index af4287e2fff8bc920f615ba56f78bd5acdec8721..31f84a7231667b593da8ed6cdada976f public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of(Material.MOSS, MaterialColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS))); public static final Block BIG_DRIPLEAF = register("big_dripleaf", new BigDripleafBlock(BlockBehaviour.Properties.of(Material.PLANT).strength(0.1F).sound(SoundType.BIG_DRIPLEAF))); diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index bbb420508b9e5522135bc8644d97cdfe820f42a2..5c8422a3022f2ac8723450b7566b9ac9a823931a 100644 +index 34e3a86558685d993245bae76c3a4e9a61530274..82d552fcd9f7039bb45d0513b595d7b1c11853c4 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -704,6 +704,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0252-Shift-right-click-to-use-exp-for-mending.patch similarity index 98% rename from patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch rename to patches/server/0252-Shift-right-click-to-use-exp-for-mending.patch index 08bbfbc3d..8634950e2 100644 --- a/patches/server/0254-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0252-Shift-right-click-to-use-exp-for-mending.patch @@ -48,7 +48,7 @@ index c0ab928ecff6aea1544406576e689979a2e474e9..86ed3f8491ea7ad117ac36be0d4bf304 cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 5c8422a3022f2ac8723450b7566b9ac9a823931a..258bd55eb334d1e841e7ecbf77da985f5b7278c4 100644 +index 82d552fcd9f7039bb45d0513b595d7b1c11853c4..712fefe7bd8a692695ca89930710e5b77be74f9c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -359,6 +359,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0255-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0253-Dolphins-naturally-aggressive-to-players-chance.patch similarity index 98% rename from patches/server/0255-Dolphins-naturally-aggressive-to-players-chance.patch rename to patches/server/0253-Dolphins-naturally-aggressive-to-players-chance.patch index 9f89182eb..e39a25e07 100644 --- a/patches/server/0255-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0253-Dolphins-naturally-aggressive-to-players-chance.patch @@ -47,7 +47,7 @@ index 2aead13e8f879b614445715fb1912a20b9abf4b9..a33724bee284c3f05b1807d6564ddf15 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 258bd55eb334d1e841e7ecbf77da985f5b7278c4..da9d2abf91b16c3b98ad8b1ab65b39b5e693e8e0 100644 +index 712fefe7bd8a692695ca89930710e5b77be74f9c..baa29f623b741f4aced68aff3713bfbb58514961 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1186,6 +1186,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0256-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0254-Cows-naturally-aggressive-to-players-chance.patch similarity index 98% rename from patches/server/0256-Cows-naturally-aggressive-to-players-chance.patch rename to patches/server/0254-Cows-naturally-aggressive-to-players-chance.patch index 0c2ef9fed..3acac8a13 100644 --- a/patches/server/0256-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0254-Cows-naturally-aggressive-to-players-chance.patch @@ -58,7 +58,7 @@ index c718697a9511ccf761467644967397b777446db9..6855c409f1c793ec436f447838008853 @Override diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index da9d2abf91b16c3b98ad8b1ab65b39b5e693e8e0..bbfbe72f3b5e06c50d074dbbb2d9f459bb15c04b 100644 +index baa29f623b741f4aced68aff3713bfbb58514961..57b4fdd0486854efd77b203d5181692aa9d3d11c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -1143,6 +1143,7 @@ public class PurpurWorldConfig {