diff --git a/src/main/java/org/mvplugins/multiverse/core/PlaceholderExpansionHook.java b/src/main/java/org/mvplugins/multiverse/core/PlaceholderExpansionHook.java index 14a8e8c40..c6059e6e5 100644 --- a/src/main/java/org/mvplugins/multiverse/core/PlaceholderExpansionHook.java +++ b/src/main/java/org/mvplugins/multiverse/core/PlaceholderExpansionHook.java @@ -1,7 +1,6 @@ package org.mvplugins.multiverse.core; import com.google.common.collect.Lists; -import io.vavr.control.Option; import jakarta.annotation.PostConstruct; import jakarta.inject.Inject; import me.clip.placeholderapi.expansion.PlaceholderExpansion; @@ -20,9 +19,8 @@ import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld; import org.mvplugins.multiverse.core.world.WorldManager; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; +import java.util.Locale; @Service final class PlaceholderExpansionHook extends PlaceholderExpansion { @@ -123,7 +121,7 @@ public boolean persist() { @NotNull List placeholderParams, @NotNull LoadedMultiverseWorld world) { // Switch to find what specific placeholder we want - switch (placeholder.toLowerCase()) { + switch (placeholder.toLowerCase(Locale.ENGLISH)) { case "alias" -> { return world.getAliasOrName(); } diff --git a/src/main/java/org/mvplugins/multiverse/core/command/MVCommandCompletions.java b/src/main/java/org/mvplugins/multiverse/core/command/MVCommandCompletions.java index 256cfd58b..044d3e692 100644 --- a/src/main/java/org/mvplugins/multiverse/core/command/MVCommandCompletions.java +++ b/src/main/java/org/mvplugins/multiverse/core/command/MVCommandCompletions.java @@ -6,6 +6,7 @@ import java.util.Collections; import java.util.EnumSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.stream.Collectors; @@ -176,7 +177,7 @@ private Collection completeWithPreconditions( public > Collection suggestEnums(Class enumClass) { return EnumSet.allOf(enumClass).stream() .map(Enum::name) - .map(String::toLowerCase) + .map(name -> name.toLowerCase(Locale.ENGLISH)) .toList(); } diff --git a/src/main/java/org/mvplugins/multiverse/core/command/flag/CommandValueFlag.java b/src/main/java/org/mvplugins/multiverse/core/command/flag/CommandValueFlag.java index 80dc3bd1d..24f0f67df 100644 --- a/src/main/java/org/mvplugins/multiverse/core/command/flag/CommandValueFlag.java +++ b/src/main/java/org/mvplugins/multiverse/core/command/flag/CommandValueFlag.java @@ -3,6 +3,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Locale; import java.util.function.Function; import co.aikar.commands.InvalidCommandArgument; @@ -220,7 +221,7 @@ public EnumBuilder(@NotNull String key, @NotNull Class type) { private void setEnumContext() { this.context = (String value) -> { try { - return Enum.valueOf(type, value.toUpperCase()); + return Enum.valueOf(type, value.toUpperCase(Locale.ENGLISH)); } catch (IllegalArgumentException e) { throw new InvalidCommandArgument("Invalid value for argument " + key + ": " + value); } @@ -229,7 +230,7 @@ private void setEnumContext() { private void setEnumCompletion() { List types = Arrays.stream(type.getEnumConstants()) - .map(typeClass -> typeClass.name().toLowerCase()) + .map(typeClass -> typeClass.name().toLowerCase(Locale.ENGLISH)) .toList(); this.completion = (input) -> types; diff --git a/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultStringParserProvider.java b/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultStringParserProvider.java index 338fa13c9..c237c6971 100644 --- a/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultStringParserProvider.java +++ b/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultStringParserProvider.java @@ -1,6 +1,7 @@ package org.mvplugins.multiverse.core.config.node.functions; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import co.aikar.commands.ACFUtil; @@ -41,13 +42,13 @@ public static NodeStringParser getDefaultStringParser(Class clazz) { } private static final NodeStringParser ENUM_STRING_PARSER = (input, type) -> Try.of( - () -> Enum.valueOf(type, input.toUpperCase())); + () -> Enum.valueOf(type, input.toUpperCase(Locale.ENGLISH))); private static final NodeStringParser STRING_STRING_PARSER = (input, type) -> Try.of( () -> input); private static final NodeStringParser BOOLEAN_STRING_PARSER = (input, type) -> Try.of( - () -> switch (String.valueOf(input).toLowerCase()) { + () -> switch (String.valueOf(input).toLowerCase(Locale.ENGLISH)) { case "t", "true", "on", "y", "yes", "1", "allow" -> true; case "f", "false", "off", "n", "no", "0", "deny" -> false; default -> throw new MultiverseException("Unable to convert '" + input + "' to boolean. Please use 'true' or 'false'"); diff --git a/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultSuggesterProvider.java b/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultSuggesterProvider.java index e31ca5784..01a230ad2 100644 --- a/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultSuggesterProvider.java +++ b/src/main/java/org/mvplugins/multiverse/core/config/node/functions/DefaultSuggesterProvider.java @@ -3,6 +3,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -43,7 +44,7 @@ public static void addDefaultSuggester(Class clazz, NodeSuggester suggester) private static NodeSuggester enumSuggester(Class clazz) { return input -> Arrays.stream(clazz.getEnumConstants()) .map(Object::toString) - .map(String::toLowerCase) + .map(name -> name.toLowerCase(Locale.ENGLISH)) .collect(Collectors.toList()); } diff --git a/src/main/java/org/mvplugins/multiverse/core/config/node/serializer/DefaultSerializerProvider.java b/src/main/java/org/mvplugins/multiverse/core/config/node/serializer/DefaultSerializerProvider.java index 91b707603..9d1c01bf7 100644 --- a/src/main/java/org/mvplugins/multiverse/core/config/node/serializer/DefaultSerializerProvider.java +++ b/src/main/java/org/mvplugins/multiverse/core/config/node/serializer/DefaultSerializerProvider.java @@ -48,12 +48,12 @@ public Enum deserialize(Object object, Class type) { if (type.isInstance(object)) { return (Enum) object; } - return Enum.valueOf(type, String.valueOf(object).toUpperCase()); + return Enum.valueOf(type, String.valueOf(object).toUpperCase(Locale.ENGLISH)); } @Override public Object serialize(Enum object, Class type) { - return object.name().toLowerCase(); + return object.name().toLowerCase(Locale.ENGLISH); } }; @@ -80,7 +80,7 @@ public Boolean deserialize(Object object, Class type) { } String input = String.valueOf(object); //todo: this is a copy from string parser - return switch (input.toLowerCase()) { + return switch (input.toLowerCase(Locale.ENGLISH)) { case "t", "true", "on", "y", "yes", "1", "allow" -> true; case "f", "false", "off", "n", "no", "0", "deny" -> false; default -> throw new RuntimeException("Unable to convert '" + input + "' to boolean."); diff --git a/src/main/java/org/mvplugins/multiverse/core/module/MultiverseModule.java b/src/main/java/org/mvplugins/multiverse/core/module/MultiverseModule.java index bcd8840b2..c854e0bfd 100644 --- a/src/main/java/org/mvplugins/multiverse/core/module/MultiverseModule.java +++ b/src/main/java/org/mvplugins/multiverse/core/module/MultiverseModule.java @@ -10,18 +10,16 @@ import org.jetbrains.annotations.ApiStatus; import org.jvnet.hk2.annotations.Contract; import org.mvplugins.multiverse.core.MultiverseCore; -import org.mvplugins.multiverse.core.MultiverseCoreApi; import org.mvplugins.multiverse.core.command.MVCommandManager; import org.mvplugins.multiverse.core.command.MultiverseCommand; -import org.mvplugins.multiverse.core.commands.CoreCommand; import org.mvplugins.multiverse.core.dynamiclistener.DynamicListener; import org.mvplugins.multiverse.core.dynamiclistener.DynamicListenerRegistration; import org.mvplugins.multiverse.core.inject.PluginServiceLocator; import org.mvplugins.multiverse.core.inject.PluginServiceLocatorFactory; -import org.mvplugins.multiverse.core.inject.binder.PluginBinder; -import org.mvplugins.multiverse.core.listeners.CoreListener; import org.mvplugins.multiverse.core.utils.REPatterns; +import java.util.Locale; + /** * Common plugin class for all Multiverse plugins. */ @@ -151,7 +149,7 @@ protected void setUpLocales() { .andThen(pluginLocales -> { pluginLocales.addFileResClassLoader(this); pluginLocales.addBundleClassLoader(this.getClassLoader()); - pluginLocales.addMessageBundles(this.getDescription().getName().toLowerCase()); + pluginLocales.addMessageBundles(this.getName().toLowerCase(Locale.ENGLISH)); }) .onFailure(e -> { Logging.severe("Failed to register locales"); diff --git a/src/main/java/org/mvplugins/multiverse/core/teleportation/LocationManipulation.java b/src/main/java/org/mvplugins/multiverse/core/teleportation/LocationManipulation.java index fca673a1c..8e3dfcee0 100644 --- a/src/main/java/org/mvplugins/multiverse/core/teleportation/LocationManipulation.java +++ b/src/main/java/org/mvplugins/multiverse/core/teleportation/LocationManipulation.java @@ -228,8 +228,8 @@ public float getYaw(String orientation) { if (orientation == null) { return 0; } - if (ORIENTATION_INTS.containsKey(orientation.toLowerCase())) { - return ORIENTATION_INTS.get(orientation.toLowerCase()); + if (ORIENTATION_INTS.containsKey(orientation.toLowerCase(Locale.ENGLISH))) { + return ORIENTATION_INTS.get(orientation.toLowerCase(Locale.ENGLISH)); } return 0; } diff --git a/src/main/java/org/mvplugins/multiverse/core/world/WorldConfig.java b/src/main/java/org/mvplugins/multiverse/core/world/WorldConfig.java index f13ed14d4..a891ae40b 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/WorldConfig.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/WorldConfig.java @@ -1,6 +1,7 @@ package org.mvplugins.multiverse.core.world; import java.util.List; +import java.util.Locale; import java.util.concurrent.atomic.AtomicReference; import com.dumptruckman.minecraft.util.Logging; @@ -417,7 +418,7 @@ public void migrate(ConfigurationSection config) { if (alias.get().isEmpty()) return; - Try.of(() -> Enum.valueOf(EnglishChatColor.class, color.toUpperCase())) + Try.of(() -> Enum.valueOf(EnglishChatColor.class, color.toUpperCase(Locale.ENGLISH))) .map(c -> c.color) .onSuccess(c -> { if (c != ChatColor.WHITE) { @@ -425,7 +426,7 @@ public void migrate(ConfigurationSection config) { } }); - Try.of(() -> Enum.valueOf(EnglishChatStyle.class, style.toUpperCase())) + Try.of(() -> Enum.valueOf(EnglishChatStyle.class, style.toUpperCase(Locale.ENGLISH))) .map(c -> c.color) .onSuccess(s -> { if (s != null) { diff --git a/src/main/java/org/mvplugins/multiverse/core/world/biomeprovider/SingleBiomeProviderParser.java b/src/main/java/org/mvplugins/multiverse/core/world/biomeprovider/SingleBiomeProviderParser.java index 54ae9b7cf..5528b9c0d 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/biomeprovider/SingleBiomeProviderParser.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/biomeprovider/SingleBiomeProviderParser.java @@ -7,6 +7,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.Locale; /** * A parser for {@link SingleBiomeProvider} @@ -17,13 +18,13 @@ final class SingleBiomeProviderParser implements BiomeProviderParser { @Override public BiomeProvider parseBiomeProvider(@NotNull String worldName, @NotNull String params) { - return new SingleBiomeProvider(Biome.valueOf(params.toUpperCase())); + return new SingleBiomeProvider(Biome.valueOf(params.toUpperCase(Locale.ENGLISH))); } @Override public Collection suggestParams(@NotNull String currentInput) { if (biomes == null) { - biomes = Arrays.stream(Biome.values()).map(biome -> biome.toString().toLowerCase()).toList(); + biomes = Arrays.stream(Biome.values()).map(biome -> biome.toString().toLowerCase(Locale.ENGLISH)).toList(); } return biomes; } diff --git a/src/main/java/org/mvplugins/multiverse/core/world/entity/EntitySpawnConfig.java b/src/main/java/org/mvplugins/multiverse/core/world/entity/EntitySpawnConfig.java index c87cce96d..8d2d5a23e 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/entity/EntitySpawnConfig.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/entity/EntitySpawnConfig.java @@ -11,6 +11,7 @@ import org.mvplugins.multiverse.core.world.MultiverseWorld; import java.util.LinkedHashMap; +import java.util.Locale; import java.util.Map; public final class EntitySpawnConfig { @@ -52,7 +53,7 @@ public String toString() { public ConfigurationSection toSection() { MemoryConfiguration section = new MemoryConfiguration(); spawnCategoriesConfig.forEach((spawnCategory, spawnCategoryConfig) -> { - section.set(spawnCategory.toString().toLowerCase(), spawnCategoryConfig.saveSection()); + section.set(spawnCategory.toString().toLowerCase(Locale.ENGLISH), spawnCategoryConfig.saveSection()); }); return section; } @@ -65,7 +66,7 @@ public static EntitySpawnConfig fromSection(CoreConfig config, ConfigurationSect Logging.warning("Invalid spawn category config for " + key + ": " + value); return; } - SpawnCategory spawnCategory = SpawnCategory.valueOf(key.toUpperCase()); + SpawnCategory spawnCategory = SpawnCategory.valueOf(key.toUpperCase(Locale.ENGLISH)); spawnCategoriesConfig.put(spawnCategory, new SpawnCategoryConfig(config, spawnCategory, sectionPart)); }); return new EntitySpawnConfig(config, spawnCategoriesConfig); diff --git a/src/main/java/org/mvplugins/multiverse/core/world/helpers/WorldNameChecker.java b/src/main/java/org/mvplugins/multiverse/core/world/helpers/WorldNameChecker.java index 6d4abc720..02cf9f85a 100644 --- a/src/main/java/org/mvplugins/multiverse/core/world/helpers/WorldNameChecker.java +++ b/src/main/java/org/mvplugins/multiverse/core/world/helpers/WorldNameChecker.java @@ -1,6 +1,7 @@ package org.mvplugins.multiverse.core.world.helpers; import java.io.File; +import java.util.Locale; import java.util.Set; import java.util.regex.Pattern; @@ -130,7 +131,7 @@ public FolderStatus checkFolder(@Nullable File worldFolder) { * @return True if it looks like a world, else false. */ private boolean folderHasDat(@NotNull File worldFolder) { - File[] files = worldFolder.listFiles((file, name) -> name.toLowerCase().endsWith(".dat")); + File[] files = worldFolder.listFiles((file, name) -> name.toLowerCase(Locale.ENGLISH).endsWith(".dat")); return files != null && files.length > 0; }