From 3a7d1bd81dcffcc227b725d3adc5dc54f03599ef Mon Sep 17 00:00:00 2001 From: Helvetica Volubi Date: Wed, 21 May 2025 13:05:30 +0800 Subject: [PATCH] feat: Disable end crystal check (#102) --- ...d-config-to-modify-tripwire-behavior.patch | 4 +-- .../0063-Disable-end-crystal-check.patch | 27 +++++++++++++++++++ .../DisableEndCrystalCheckConfig.java.patch | 26 ++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 luminol-server/minecraft-patches/features/0063-Disable-end-crystal-check.patch create mode 100644 luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/modules/misc/DisableEndCrystalCheckConfig.java.patch diff --git a/luminol-server/minecraft-patches/features/0013-Add-config-to-modify-tripwire-behavior.patch b/luminol-server/minecraft-patches/features/0013-Add-config-to-modify-tripwire-behavior.patch index e9d2095..23fbb2a 100644 --- a/luminol-server/minecraft-patches/features/0013-Add-config-to-modify-tripwire-behavior.patch +++ b/luminol-server/minecraft-patches/features/0013-Add-config-to-modify-tripwire-behavior.patch @@ -31,7 +31,7 @@ index 9aace993c6c18f1a50610e4766225485984b8167..419c1c7e14691a472b70ed548ecb928c } } diff --git a/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java b/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java -index f96fc1391167dea48cac1caa464b9026657df89a..ba2da205b046d7d3aab8fb21e116f9be73b13eb3 100644 +index f96fc1391167dea48cac1caa464b9026657df89a..29b286386546db9d809f1b1b5c98571d3058a0f5 100644 --- a/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java +++ b/net/minecraft/world/level/levelgen/feature/EndPlatformFeature.java @@ -27,6 +27,11 @@ public class EndPlatformFeature extends Feature { @@ -84,7 +84,7 @@ index f96fc1391167dea48cac1caa464b9026657df89a..ba2da205b046d7d3aab8fb21e116f9be - // SPIGOT-7856: End platform not dropping items after replacing blocks - if (dropBlocks) { - blockList.getList().forEach((state) -> level.destroyBlock(state.getPosition(), true, null)); -+ if (flag21 && !me.earthme.luminol.config.modules.misc.AllowTripwireDupe.enabled) { ++ if (flag21 || !me.earthme.luminol.config.modules.misc.AllowTripwireDupe.enabled) { + // Luminol start - When updated replace it with newer code + if (dropBlocks) { + java.util.function.Consumer beforeRun = state -> level.destroyBlock(state.getPosition(), !blockList1.contains(state.getPosition()), null); diff --git a/luminol-server/minecraft-patches/features/0063-Disable-end-crystal-check.patch b/luminol-server/minecraft-patches/features/0063-Disable-end-crystal-check.patch new file mode 100644 index 0000000..e9dafb7 --- /dev/null +++ b/luminol-server/minecraft-patches/features/0063-Disable-end-crystal-check.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Helvetica Volubi +Date: Wed, 21 May 2025 13:04:00 +0800 +Subject: [PATCH] Disable end crystal check + + +diff --git a/net/minecraft/world/level/dimension/end/EndDragonFight.java b/net/minecraft/world/level/dimension/end/EndDragonFight.java +index 2e156694b337760be986fdf1cbf863b0d896ef2d..b55ac3c0d19cf9117368c17687fa34099bfe3533 100644 +--- a/net/minecraft/world/level/dimension/end/EndDragonFight.java ++++ b/net/minecraft/world/level/dimension/end/EndDragonFight.java +@@ -546,6 +546,8 @@ public class EndDragonFight { + + blockPos = this.portalLocation; + } ++ // Luminol start - Disable end crystal check ++ if (!me.earthme.luminol.config.modules.misc.DisableEndCrystalCheckConfig.disableEndCrystalCheck) { + // Paper start - Perf: Do crystal-portal proximity check before entity lookup + if (placedEndCrystalPos != null) { + // The end crystal must be 0 or 1 higher than the portal origin +@@ -561,6 +563,7 @@ public class EndDragonFight { + } + } + // Paper end - Perf: Do crystal-portal proximity check before entity lookup ++ } // Luminol end - Disable end crystal check + + + List list = Lists.newArrayList(); diff --git a/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/modules/misc/DisableEndCrystalCheckConfig.java.patch b/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/modules/misc/DisableEndCrystalCheckConfig.java.patch new file mode 100644 index 0000000..569a26d --- /dev/null +++ b/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/modules/misc/DisableEndCrystalCheckConfig.java.patch @@ -0,0 +1,26 @@ +--- /dev/null ++++ b/src/main/java/me/earthme/luminol/config/modules/misc/DisableEndCrystalCheckConfig.java +@@ -1,0 +_,23 @@ ++package me.earthme.luminol.config.modules.misc; ++ ++import me.earthme.luminol.config.ConfigInfo; ++import me.earthme.luminol.config.EnumConfigCategory; ++import me.earthme.luminol.config.IConfigModule; ++ ++public class DisableEndCrystalCheckConfig implements IConfigModule { ++ @ConfigInfo(baseName = "disable_end_crystal_check", comments = ++ """ ++ Disable paper's End Crystal position check. ++ It reverts to vanilla respawn dragon logic.""") ++ public static boolean disableEndCrystalCheck = false; ++ ++ @Override ++ public EnumConfigCategory getCategory() { ++ return EnumConfigCategory.MISC; ++ } ++ ++ @Override ++ public String getBaseName() { ++ return "endCrystal"; ++ } ++}