diff --git a/gradle.properties b/gradle.properties index 898ba7e..99a4835 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = gq.bxteam.divinemc version = 1.20.1-R0.1-SNAPSHOT -purpurRef = c5c7609d0bd70e1787887a3249aefbfbc52611df +purpurRef = ad645dcbe80e6976a09d392d29d0e906d491bdb3 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0001-Divine-Branding.patch b/patches/server/0001-Divine-Branding.patch index 58aca1a..5654dea 100644 --- a/patches/server/0001-Divine-Branding.patch +++ b/patches/server/0001-Divine-Branding.patch @@ -138,7 +138,7 @@ index 3cb56595822799926a8141e60a42f5d1edfc6de5..05478a1ea04ec0396bc8c97090edef4a .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 0a4dfec98470050a0ec9c3693496751fa78fec81..f5e503702ba5d439efcc93c26740a7e629617590 100644 +index b08d4a2a74392b1d59b1eeeab3108103d83ad96c..7921caca236900b9d1d234d95db5a24cc403d9b2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -265,7 +265,7 @@ import javax.annotation.Nullable; // Paper @@ -164,10 +164,10 @@ index 99597258e8e88cd9e2c901c4ac3ff7faeeabee2b..627ceea9fa0fccd3e466eb34d59e760b if (stream != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 414f467825fece602fbe7446e349657264d135ed..47e0728bac16a3e0e2c31610c90c4d5a95a4222e 100644 +index 3029f38cff6755b31427efb7fae3b6886ee8e4ee..6e5ccafddd7af250d319431f5d4433b152d1efe4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -229,7 +229,7 @@ public class PurpurConfig { +@@ -231,7 +231,7 @@ public class PurpurConfig { deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer); } diff --git a/patches/server/0004-Optimize-default-values-for-configs.patch b/patches/server/0004-Optimize-default-values-for-configs.patch index f95e9b2..ffbac04 100644 --- a/patches/server/0004-Optimize-default-values-for-configs.patch +++ b/patches/server/0004-Optimize-default-values-for-configs.patch @@ -18,10 +18,10 @@ index 3e36958365bc136516bafbaad0c168f7956406f1..b3594f563489e210544cc573cbe1c13d setComment("projectile", "Optimizes projectile settings"); diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index d7f541d94941a341a70dfac025a3d3601dd1aca8..b7347f89702d449bdcf84e96c75d917d7834046b 100644 +index 019d3bbd78fb0b06861979d223915fedb6c99442..fef600ada1ad0d3b85cd23a58b1b6cace0183e6a 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -52,7 +52,7 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -91,7 +91,7 @@ public class GlobalConfiguration extends ConfigurationPart { public class Timings extends ConfigurationPart.Post { public boolean enabled = true; public boolean verbose = true; @@ -30,7 +30,7 @@ index d7f541d94941a341a70dfac025a3d3601dd1aca8..b7347f89702d449bdcf84e96c75d917d public boolean serverNamePrivacy = false; public List hiddenConfigEntries = List.of( "database", -@@ -272,9 +272,9 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -311,9 +311,9 @@ public class GlobalConfiguration extends ConfigurationPart { public boolean fixEntityPositionDesync = true; public boolean loadPermissionsYmlBeforePlugins = true; @Constraints.Min(4) @@ -39,14 +39,14 @@ index d7f541d94941a341a70dfac025a3d3601dd1aca8..b7347f89702d449bdcf84e96c75d917d @Comment("See https://luckformula.emc.gs") - public boolean useAlternativeLuckFormula = false; + public boolean useAlternativeLuckFormula = true; // DivineMC - optimize default values for configs - public boolean lagCompensateBlockBreaking = true; public boolean useDimensionTypeForCustomSpawners = false; public boolean strictAdvancementDimensionCheck = false; + } diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a66728f0b 100644 +index 4989f99c0d330da52aeaca5df08edfbd47b5bf3c..a1348ab6394fabaf5ac93b9c3477c951847ec8aa 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -116,9 +116,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -119,9 +119,9 @@ public class WorldConfiguration extends ConfigurationPart { public ArmorStands armorStands; @@ -59,7 +59,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a } public Markers markers; -@@ -208,8 +208,8 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -211,8 +211,8 @@ public class WorldConfiguration extends ConfigurationPart { public Behavior behavior; public class Behavior extends ConfigurationPart { @@ -70,7 +70,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a public int experienceMergeMaxValue = -1; public boolean shouldRemoveDragon = false; public boolean zombiesTargetTurtleEggs = true; -@@ -256,7 +256,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -259,7 +259,7 @@ public class WorldConfiguration extends ConfigurationPart { public int playerInsomniaStartTicks = 72000; public int phantomsSpawnAttemptMinSeconds = 60; public int phantomsSpawnAttemptMaxSeconds = 119; @@ -79,7 +79,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a public double zombieVillagerInfectionChance = -1.0; public MobsCanAlwaysPickUpLoot mobsCanAlwaysPickUpLoot; -@@ -266,7 +266,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -269,7 +269,7 @@ public class WorldConfiguration extends ConfigurationPart { } public boolean disablePlayerCrits = false; @@ -88,7 +88,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a public PillagerPatrols pillagerPatrols; public class PillagerPatrols extends ConfigurationPart { -@@ -325,7 +325,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -364,7 +364,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Environment extends ConfigurationPart { public boolean disableThunder = false; public boolean disableIceAndSnow = false; @@ -97,7 +97,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a public boolean disableExplosionKnockback = false; public boolean generateFlatBedrock = false; public FrostedIce frostedIce; -@@ -371,7 +371,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -410,7 +410,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Maps extends ConfigurationPart { public int itemFrameCursorLimit = 128; @@ -106,7 +106,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a } public Fixes fixes; -@@ -397,7 +397,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -436,7 +436,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Hopper extends ConfigurationPart { public boolean cooldownWhenFull = true; public boolean disableMoveEvent = false; @@ -115,7 +115,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a } public Collisions collisions; -@@ -405,9 +405,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -444,9 +444,9 @@ public class WorldConfiguration extends ConfigurationPart { public class Collisions extends ConfigurationPart { public boolean onlyPlayersCollide = false; public boolean allowVehicleCollisions = true; @@ -127,7 +127,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a public boolean allowPlayerCrammingDamage = false; } -@@ -415,18 +415,31 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -454,18 +454,31 @@ public class WorldConfiguration extends ConfigurationPart { public class Chunks extends ConfigurationPart { public AutosavePeriod autoSaveInterval = AutosavePeriod.def(); @@ -169,7 +169,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a }); public boolean flushRegionsOnSave = false; } -@@ -441,11 +454,22 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -480,11 +493,22 @@ public class WorldConfiguration extends ConfigurationPart { public TickRates tickRates; public class TickRates extends ConfigurationPart { @@ -197,7 +197,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a } @Setting(FeatureSeedsGeneration.FEATURE_SEEDS_KEY) -@@ -453,7 +477,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -492,7 +516,7 @@ public class WorldConfiguration extends ConfigurationPart { public class FeatureSeeds extends ConfigurationPart.Post { @Setting(FeatureSeedsGeneration.GENERATE_KEY) @@ -206,7 +206,7 @@ index d47c57afafc01e25b965f1844938b2516a7bd031..00513ee88032fbcf7b6b28d7979e906a @Setting(FeatureSeedsGeneration.FEATURES_KEY) public Reference2LongMap>> features = new Reference2LongOpenHashMap<>(); -@@ -467,9 +491,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -506,9 +530,9 @@ public class WorldConfiguration extends ConfigurationPart { public class Misc extends ConfigurationPart { public int lightQueueSize = 20; diff --git a/patches/server/0005-Add-missing-purpur-config-options.patch b/patches/server/0005-Add-missing-purpur-config-options.patch index fff73fa..25137ca 100644 --- a/patches/server/0005-Add-missing-purpur-config-options.patch +++ b/patches/server/0005-Add-missing-purpur-config-options.patch @@ -195,10 +195,10 @@ index e88c39d405fc7068db64ad34a03dec8d559e749e..35f0677a31be938a87314c534d63bc24 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 47e0728bac16a3e0e2c31610c90c4d5a95a4222e..1c473310b8d04c16ca44e464ea953e2a90d9cb28 100644 +index 6e5ccafddd7af250d319431f5d4433b152d1efe4..073c22244b0c19a59287578d744e81dfb96ec30a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -@@ -326,6 +326,7 @@ public class PurpurConfig { +@@ -328,6 +328,7 @@ public class PurpurConfig { } public static int barrelRows = 3; @@ -206,7 +206,7 @@ index 47e0728bac16a3e0e2c31610c90c4d5a95a4222e..1c473310b8d04c16ca44e464ea953e2a public static boolean enderChestSixRows = false; public static boolean enderChestPermissionRows = false; public static boolean cryingObsidianValidForPortalFrame = false; -@@ -366,6 +367,7 @@ public class PurpurConfig { +@@ -368,6 +369,7 @@ public class PurpurConfig { case 1 -> 9; default -> 27; }); @@ -215,10 +215,10 @@ index 47e0728bac16a3e0e2c31610c90c4d5a95a4222e..1c473310b8d04c16ca44e464ea953e2a 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/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec6c29638935835d590823c5cc35141a7f4d32f2..7dab938ea4229d42de1a5c9ece2a16a0709831c7 100644 +index 078102e636803f38facc049952813ff2f8b63594..c2b87617f06b2414e0e2799b972dbe76ccf91c01 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1115,7 +1115,17 @@ public class PurpurWorldConfig { +@@ -1117,7 +1117,17 @@ public class PurpurWorldConfig { public boolean allayRidableInWater = true; public boolean allayControllable = true; public List allayRespectNBT = new ArrayList<>(); @@ -236,7 +236,7 @@ index ec6c29638935835d590823c5cc35141a7f4d32f2..7dab938ea4229d42de1a5c9ece2a16a0 allayRidable = getBoolean("mobs.allay.ridable", allayRidable); allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater); allayControllable = getBoolean("mobs.allay.controllable", allayControllable); -@@ -1234,7 +1244,15 @@ public class PurpurWorldConfig { +@@ -1236,7 +1246,15 @@ public class PurpurWorldConfig { public double camelMovementSpeedMin = 0.09D; public double camelMovementSpeedMax = 0.09D; public int camelBreedingTicks = 6000; @@ -252,7 +252,7 @@ index ec6c29638935835d590823c5cc35141a7f4d32f2..7dab938ea4229d42de1a5c9ece2a16a0 camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater); camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin); camelMaxHealthMax = getDouble("mobs.camel.attributes.max_health.max", camelMaxHealthMax); -@@ -1662,7 +1680,17 @@ public class PurpurWorldConfig { +@@ -1664,7 +1682,17 @@ public class PurpurWorldConfig { public boolean frogControllable = true; public float frogRidableJumpHeight = 0.65F; public int frogBreedingTicks = 6000; @@ -270,7 +270,7 @@ index ec6c29638935835d590823c5cc35141a7f4d32f2..7dab938ea4229d42de1a5c9ece2a16a0 frogRidable = getBoolean("mobs.frog.ridable", frogRidable); frogRidableInWater = getBoolean("mobs.frog.ridable-in-water", frogRidableInWater); frogControllable = getBoolean("mobs.frog.controllable", frogControllable); -@@ -2615,7 +2643,15 @@ public class PurpurWorldConfig { +@@ -2617,7 +2645,15 @@ public class PurpurWorldConfig { public boolean snifferControllable = true; public double snifferMaxHealth = 14.0D; public int snifferBreedingTicks = 6000; @@ -286,7 +286,7 @@ index ec6c29638935835d590823c5cc35141a7f4d32f2..7dab938ea4229d42de1a5c9ece2a16a0 snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater); snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable); -@@ -2714,7 +2750,17 @@ public class PurpurWorldConfig { +@@ -2716,7 +2752,17 @@ public class PurpurWorldConfig { public boolean tadpoleRidable = false; public boolean tadpoleRidableInWater = true; public boolean tadpoleControllable = true; @@ -304,7 +304,7 @@ index ec6c29638935835d590823c5cc35141a7f4d32f2..7dab938ea4229d42de1a5c9ece2a16a0 tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable); tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater); tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable); -@@ -2924,7 +2970,17 @@ public class PurpurWorldConfig { +@@ -2926,7 +2972,17 @@ public class PurpurWorldConfig { public boolean wardenRidable = false; public boolean wardenRidableInWater = true; public boolean wardenControllable = true; diff --git a/patches/server/0007-Fix-entity-serialization.patch b/patches/server/0007-Fix-entity-serialization.patch index 3618ab5..7222ce7 100644 --- a/patches/server/0007-Fix-entity-serialization.patch +++ b/patches/server/0007-Fix-entity-serialization.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix entity serialization diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index aa517a7c1e69f197d59d6a2cad73cf9199ac6129..049c2e6433f1537b7f0822969ea22dac5bbba60d 100644 +index cf0d8da4c4b5f4aa4e4ef15897ca252a2b52ec8d..95b6639d0075c2b86f83718b3093f972d2e89b83 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2334,15 +2334,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2336,15 +2336,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } @@ -25,7 +25,7 @@ index aa517a7c1e69f197d59d6a2cad73cf9199ac6129..049c2e6433f1537b7f0822969ea22dac return this.isPassenger() ? false : this.saveAsPassenger(nbt); } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 0aee1fadaeb948fd90d8e61ac57dbe7f810529ff..85d8963a95d855f6575eb9a1f33343dd0caca0f1 100644 +index ffca5970a6259b024c9aa935e22cf72ed8cd8e9f..7c31515d1c0f199e8139d4c20651685b77edfcef 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -496,8 +496,13 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0021-Do-not-process-chat-commands-before-player-has-joine.patch b/patches/server/0021-Do-not-process-chat-commands-before-player-has-joine.patch index 3a90c73..5b30a33 100644 --- a/patches/server/0021-Do-not-process-chat-commands-before-player-has-joine.patch +++ b/patches/server/0021-Do-not-process-chat-commands-before-player-has-joine.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Do not process chat/commands before player has joined diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ac70ab790f73e35fd5ec880f5a884da935d8cd7b..9e19cd74cc957fcd6a78f673e1267df73eb0fedb 100644 +index 9cc3ab8cd3f7ab7f8fbf4d9d14f25ea0bd757eec..8ba46e622a8be7d403f0f2e0bcda5b01c9c3fc62 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2472,6 +2472,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2484,6 +2484,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"), org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event ca }); // Paper - push to main return Optional.empty(); diff --git a/patches/server/0022-Fix-MC-2025.patch b/patches/server/0022-Fix-MC-2025.patch index 94045e5..da42b67 100644 --- a/patches/server/0022-Fix-MC-2025.patch +++ b/patches/server/0022-Fix-MC-2025.patch @@ -7,10 +7,10 @@ Original post on Mojira: https://bugs.mojang.com/browse/MC-2025 Fix taken from Reddit: https://redd.it/8pgd4q diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 049c2e6433f1537b7f0822969ea22dac5bbba60d..19b7c92f10bfdb609641f414ddac8130e33f75f4 100644 +index 95b6639d0075c2b86f83718b3093f972d2e89b83..51b31ac8526a35e460c87ae467413db1f7c41752 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2488,6 +2488,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2490,6 +2490,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { nbt.putBoolean("Purpur.FireImmune", immuneToFire); } // Purpur end @@ -28,7 +28,7 @@ index 049c2e6433f1537b7f0822969ea22dac5bbba60d..19b7c92f10bfdb609641f414ddac8130 return nbt; } catch (Throwable throwable) { CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); -@@ -2565,6 +2576,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2567,6 +2578,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.reapplyPosition(); }