diff --git a/src/main/java/net/onelitefeather/antiredstoneclockremastered/injection/TranslationModule.java b/src/main/java/net/onelitefeather/antiredstoneclockremastered/injection/TranslationModule.java index fde1e04..42e5dfe 100644 --- a/src/main/java/net/onelitefeather/antiredstoneclockremastered/injection/TranslationModule.java +++ b/src/main/java/net/onelitefeather/antiredstoneclockremastered/injection/TranslationModule.java @@ -1,5 +1,6 @@ package net.onelitefeather.antiredstoneclockremastered.injection; +import com.github.zafarkhaja.semver.Version; import com.google.inject.AbstractModule; import com.google.inject.Inject; import com.google.inject.Provides; @@ -20,6 +21,7 @@ import java.nio.file.Path; import java.util.HashSet; import java.util.Locale; +import java.util.Optional; import java.util.ResourceBundle; public final class TranslationModule extends AbstractModule { @@ -31,11 +33,11 @@ public final class TranslationModule extends AbstractModule { protected void configure() { } + @SuppressWarnings("removal") @Provides @Singleton public TranslationService provideTranslationService() { - ServerBuildInfo buildInfo = ServerBuildInfo.buildInfo(); - if (buildInfo.minecraftVersionId().startsWith("1.20")) { + if (isLegacyVersion()) { LOGGER.info("Using legacy translation service"); return new LegacyTranslationService(); } else { @@ -44,6 +46,19 @@ public TranslationService provideTranslationService() { } } + private boolean isLegacyVersion() { + ServerBuildInfo buildInfo = ServerBuildInfo.buildInfo(); + Optional optionalVersion = Version.tryParse(buildInfo.minecraftVersionId()); + if (optionalVersion.isEmpty()) { + return true; + } + Version version = optionalVersion.get(); + if (version.isHigherThanOrEquivalentTo(Version.of(1, 21, 4))) { + return false; + } + return version.isLowerThanOrEquivalentTo(Version.of(1, 21, 3)); + } + @Inject public void bootstrap(AntiRedstoneClockRemastered plugin, TranslationService translationService) { // Setup translations