From 44b413ef206ab2646f866ed4aab1bf2f84a5605d Mon Sep 17 00:00:00 2001 From: JRoy <10731363+JRoy@users.noreply.github.com> Date: Tue, 8 Jul 2025 22:57:25 -0700 Subject: [PATCH 1/3] Fix /tpr on legacy versions --- .../java/com/earth2me/essentials/Essentials.java | 4 ++++ .../com/earth2me/essentials/RandomTeleport.java | 4 +++- .../providers/LegacyBiomeNameProvider.java | 15 +++++++++++++++ .../java/net/ess3/provider/BiomeNameProvider.java | 7 +++++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java create mode 100644 providers/BaseProviders/src/main/java/net/ess3/provider/BiomeNameProvider.java diff --git a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java index fe58510a17c..756b1558e82 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java @@ -72,6 +72,7 @@ import net.ess3.provider.providers.FixedHeightWorldInfoProvider; import net.ess3.provider.providers.FlatSpawnEggProvider; import net.ess3.provider.providers.LegacyBannerDataProvider; +import net.ess3.provider.providers.LegacyBiomeNameProvider; import net.ess3.provider.providers.LegacyDamageEventProvider; import net.ess3.provider.providers.LegacyInventoryViewProvider; import net.ess3.provider.providers.LegacyItemUnbreakableProvider; @@ -373,6 +374,9 @@ public void onEnable() { // Inventory View Provider providerFactory.registerProvider(LegacyInventoryViewProvider.class, BaseInventoryViewProvider.class); + // Biome Name Provider + providerFactory.registerProvider(LegacyBiomeNameProvider.class); + // Biome Key Provider providerFactory.registerProvider(PaperBiomeKeyProvider.class); diff --git a/Essentials/src/main/java/com/earth2me/essentials/RandomTeleport.java b/Essentials/src/main/java/com/earth2me/essentials/RandomTeleport.java index 163e76dcaa0..667e5e93bff 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/RandomTeleport.java +++ b/Essentials/src/main/java/com/earth2me/essentials/RandomTeleport.java @@ -7,6 +7,7 @@ import com.earth2me.essentials.utils.VersionUtil; import io.papermc.lib.PaperLib; import net.ess3.provider.BiomeKeyProvider; +import net.ess3.provider.BiomeNameProvider; import net.ess3.provider.WorldInfoProvider; import org.bukkit.Location; import org.bukkit.Material; @@ -238,8 +239,9 @@ private boolean isValidRandomLocation(final Location location) { // Exclude biome if enum or namespaced key matches private boolean isExcludedBiome(final Location location) { + final BiomeNameProvider biomeNameProvider = ess.provider(BiomeNameProvider.class); final Set excluded = getExcludedBiomes(); - final String enumKey = location.getBlock().getBiome().name().toLowerCase(); + final String enumKey = biomeNameProvider.getBiomeName(location.getBlock()); // Try with good old bukkit enum if (excluded.contains(enumKey)) { return true; diff --git a/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java b/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java new file mode 100644 index 00000000000..693055311cb --- /dev/null +++ b/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java @@ -0,0 +1,15 @@ +package net.ess3.provider.providers; + +import net.ess3.provider.BiomeNameProvider; +import net.essentialsx.providers.ProviderData; +import org.bukkit.block.Block; + +import java.util.Locale; + +@ProviderData(description = "Legacy Item Unbreakable Provider") +public class LegacyBiomeNameProvider implements BiomeNameProvider { + @Override + public String getBiomeName(final Block block) { + return block.getBiome().name().toLowerCase(Locale.ENGLISH); + } +} diff --git a/providers/BaseProviders/src/main/java/net/ess3/provider/BiomeNameProvider.java b/providers/BaseProviders/src/main/java/net/ess3/provider/BiomeNameProvider.java new file mode 100644 index 00000000000..ce672c9cb33 --- /dev/null +++ b/providers/BaseProviders/src/main/java/net/ess3/provider/BiomeNameProvider.java @@ -0,0 +1,7 @@ +package net.ess3.provider; + +import org.bukkit.block.Block; + +public interface BiomeNameProvider extends Provider { + String getBiomeName(Block block); +} From 1191edf5e78e4470e6faa4ae4afa6545a6471ead Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Wed, 9 Jul 2025 06:32:35 -0700 Subject: [PATCH 2/3] Update providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java Co-authored-by: MD <1917406+mdcfe@users.noreply.github.com> --- .../net/ess3/provider/providers/LegacyBiomeNameProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java b/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java index 693055311cb..47bb598ce96 100644 --- a/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java +++ b/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java @@ -6,7 +6,7 @@ import java.util.Locale; -@ProviderData(description = "Legacy Item Unbreakable Provider") +@ProviderData(description = "Legacy Biome Name Provider") public class LegacyBiomeNameProvider implements BiomeNameProvider { @Override public String getBiomeName(final Block block) { From 2733b36f168498d3730be92f610b2d72909dd442 Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Wed, 9 Jul 2025 12:44:21 -0700 Subject: [PATCH 3/3] Update providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java --- .../net/ess3/provider/providers/LegacyBiomeNameProvider.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java b/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java index 47bb598ce96..ce98ff09c04 100644 --- a/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java +++ b/providers/1_8Provider/src/main/java/net/ess3/provider/providers/LegacyBiomeNameProvider.java @@ -10,6 +10,8 @@ public class LegacyBiomeNameProvider implements BiomeNameProvider { @Override public String getBiomeName(final Block block) { + // For some reason, compiling against modern versions causes this call to break, possibly related to OldEnum? + // Compiling this against versions that still have proper enums allow this to work return block.getBiome().name().toLowerCase(Locale.ENGLISH); } }