Skip to content

Commit 4e945ad

Browse files
Changed all #toLowerCase and #toUpperCase methods to use English Locale instead of default
1 parent 6678778 commit 4e945ad

6 files changed

Lines changed: 25 additions & 26 deletions

File tree

src/main/java/com/artemis/the/gr8/playerstats/commands/TabCompleter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.util.ArrayList;
1212
import java.util.List;
13+
import java.util.Locale;
1314
import java.util.stream.Collectors;
1415

1516
public final class TabCompleter implements org.bukkit.command.TabCompleter {
@@ -88,7 +89,7 @@ private List<String> getFirstArgSuggestions(String currentArg) {
8889

8990
private List<String> getTabSuggestions(List<String> completeList, String currentArg) {
9091
return completeList.stream()
91-
.filter(item -> item.toLowerCase().contains(currentArg.toLowerCase()))
92+
.filter(item -> item.toLowerCase(Locale.ENGLISH).contains(currentArg.toLowerCase(Locale.ENGLISH)))
9293
.collect(Collectors.toList());
9394
}
9495

src/main/java/com/artemis/the/gr8/playerstats/commands/cmdutils/TabCompleteHelper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import java.util.Arrays;
88
import java.util.List;
9+
import java.util.Locale;
910
import java.util.stream.Collectors;
1011

1112
public final class TabCompleteHelper {
@@ -43,15 +44,15 @@ private static void prepareLists() {
4344
.filter(Material::isItem)
4445
.filter(item -> item.getMaxDurability() != 0)
4546
.map(Material::toString)
46-
.map(String::toLowerCase)
47+
.map(string -> string.toLowerCase(Locale.ENGLISH))
4748
.collect(Collectors.toList());
4849

4950
//the only statistics dealing with entities are killed_entity and entity_killed_by
5051
entitySuggestions = Arrays.stream(EntityType.values())
5152
.parallel()
5253
.filter(EntityType::isAlive)
5354
.map(EntityType::toString)
54-
.map(String::toLowerCase)
55+
.map(string -> string.toLowerCase(Locale.ENGLISH))
5556
.collect(Collectors.toList());
5657
}
5758
}

src/main/java/com/artemis/the/gr8/playerstats/enums/Unit.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import org.bukkit.Statistic;
44
import org.jetbrains.annotations.NotNull;
55

6+
import java.util.Locale;
7+
68
/**
79
* All the units PlayerStats can display statistics in, separated
810
* by {@link Unit.Type}.
@@ -131,15 +133,6 @@ public double getSeconds() {
131133
};
132134
}
133135

134-
/**
135-
* Gets the Unit corresponding to the given String. This String
136-
* does not need to match exactly (it can be "day" or "days",
137-
* for example), and is case-insensitive.
138-
*
139-
* @param unitName the name belonging to the desired Unit,
140-
* case-insensitive
141-
* @return the Unit
142-
*/
143136
/** Converts the current Unit into a short label (and returns a '?' if the current Unit is not of Type TIME)*/
144137
public char getShortLabel(){
145138
return switch (this) {
@@ -155,7 +148,7 @@ public char getShortLabel(){
155148
match exactly (it can be "day" or "days", for example), and is case-insensitive.
156149
@param unitName an approximation of the name belonging to the desired Unit, case-insensitive */
157150
public static @NotNull Unit fromString(@NotNull String unitName) {
158-
return switch (unitName.toLowerCase()) {
151+
return switch (unitName.toLowerCase(Locale.ENGLISH)) {
159152
case "cm" -> Unit.CM;
160153
case "m", "block", "blocks" -> Unit.BLOCK;
161154
case "mile", "miles" -> Unit.MILE;
@@ -179,7 +172,7 @@ match exactly (it can be "day" or "days", for example), and is case-insensitive.
179172
* @return the Type of this Unit
180173
*/
181174
public static @NotNull Type getTypeFromStatistic(Statistic statistic) {
182-
String name = statistic.toString().toLowerCase();
175+
String name = statistic.toString().toLowerCase(Locale.ENGLISH);
183176
if (name.contains("one_cm")) {
184177
return Type.DISTANCE;
185178
} else if (name.contains("damage")) {

src/main/java/com/artemis/the/gr8/playerstats/msg/msgutils/LanguageKeyHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.io.File;
1717
import java.util.Arrays;
1818
import java.util.HashMap;
19+
import java.util.Locale;
1920

2021
/**
2122
*
@@ -239,8 +240,8 @@ else if (item.isBlock()) {
239240
*/
240241
public @Nullable String getBlockKey(Material block) {
241242
if (block == null) return null;
242-
else if (block.toString().toLowerCase().contains("wall_banner")) { //replace wall_banner with regular banner, since there is no key for wall banners
243-
String blockName = block.toString().toLowerCase().replace("wall_", "");
243+
else if (block.toString().toLowerCase(Locale.ENGLISH).contains("wall_banner")) { //replace wall_banner with regular banner, since there is no key for wall banners
244+
String blockName = block.toString().toLowerCase(Locale.ENGLISH).replace("wall_", "");
244245
Material newBlock = EnumHandler.getBlockEnum(blockName);
245246
return (newBlock != null) ? "block.minecraft." + newBlock.getKey().getKey() : null;
246247
}
@@ -264,7 +265,7 @@ else if (block.toString().toLowerCase().contains("wall_banner")) { //replace wa
264265
private @NotNull HashMap<Statistic, String> generateStatNameKeys() {
265266
//get the enum names for all statistics first
266267
HashMap<Statistic, String> statNames = new HashMap<>(Statistic.values().length);
267-
Arrays.stream(Statistic.values()).forEach(statistic -> statNames.put(statistic, statistic.toString().toLowerCase()));
268+
Arrays.stream(Statistic.values()).forEach(statistic -> statNames.put(statistic, statistic.toString().toLowerCase(Locale.ENGLISH)));
268269

269270
//replace the ones for which the language key is different from the enum name
270271
statNames.put(Statistic.ARMOR_CLEANED, "clean_armor");

src/main/java/com/artemis/the/gr8/playerstats/msg/msgutils/StringUtils.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.artemis.the.gr8.playerstats.utils.MyLogger;
44

5+
import java.util.Locale;
6+
57
/**
68
* A small utility class that helps make enum constant
79
* names prettier for output in stat-messages.
@@ -18,7 +20,7 @@ private StringUtils() {
1820
*/
1921
public static String prettify(String input) {
2022
if (input == null) return null;
21-
StringBuilder capitals = new StringBuilder(input.toLowerCase());
23+
StringBuilder capitals = new StringBuilder(input.toLowerCase(Locale.ENGLISH));
2224
capitals.setCharAt(0, Character.toUpperCase(capitals.charAt(0)));
2325
while (capitals.indexOf("_") != -1) {
2426
MyLogger.logHighLevelMsg("Replacing underscores and capitalizing names...");

src/main/java/com/artemis/the/gr8/playerstats/utils/EnumHandler.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.Arrays;
1010
import java.util.Collection;
1111
import java.util.List;
12+
import java.util.Locale;
1213
import java.util.stream.Collectors;
1314
import java.util.stream.Stream;
1415

@@ -80,7 +81,7 @@ public List<String> getStatNames() {
8081
*/
8182
public static @Nullable EntityType getEntityEnum(String entityName) {
8283
try {
83-
return EntityType.valueOf(entityName.toUpperCase());
84+
return EntityType.valueOf(entityName.toUpperCase(Locale.ENGLISH));
8485
}
8586
catch (IllegalArgumentException | NullPointerException e) {
8687
return null;
@@ -109,7 +110,7 @@ public List<String> getStatNames() {
109110
*/
110111
public static @Nullable Statistic getStatEnum(@NotNull String statName) {
111112
try {
112-
return Statistic.valueOf(statName.toUpperCase());
113+
return Statistic.valueOf(statName.toUpperCase(Locale.ENGLISH));
113114
}
114115
catch (IllegalArgumentException e) {
115116
return null;
@@ -123,7 +124,7 @@ public List<String> getStatNames() {
123124
* @return true if this String is a valid Statistic
124125
*/
125126
public boolean isStatistic(@NotNull String statName) {
126-
return statNames.contains(statName.toLowerCase());
127+
return statNames.contains(statName.toLowerCase(Locale.ENGLISH));
127128
}
128129

129130
/**
@@ -147,7 +148,7 @@ public boolean isEntityStatistic(String statName) {
147148
* of Type.Untyped
148149
*/
149150
public boolean isSubStatEntry(@NotNull String statName) {
150-
return subStatNames.contains(statName.toLowerCase());
151+
return subStatNames.contains(statName.toLowerCase(Locale.ENGLISH));
151152
}
152153

153154
/**
@@ -171,20 +172,20 @@ public static String getSubStatTypeName(Statistic.Type statType) {
171172
private void prepareLists() {
172173
List<String> entityNames = Arrays.stream(EntityType.values())
173174
.map(EntityType::toString)
174-
.map(String::toLowerCase)
175+
.map(string -> string.toLowerCase(Locale.ENGLISH))
175176
.filter(entityName -> !entityName.equalsIgnoreCase("unknown"))
176177
.collect(Collectors.toList());
177178

178179
blockNames = Arrays.stream(Material.values())
179180
.filter(Material::isBlock)
180181
.map(Material::toString)
181-
.map(String::toLowerCase)
182+
.map(string -> string.toLowerCase(Locale.ENGLISH))
182183
.collect(Collectors.toList());
183184

184185
itemNames = Arrays.stream(Material.values())
185186
.filter(Material::isItem)
186187
.map(Material::toString)
187-
.map(String::toLowerCase)
188+
.map(string -> string.toLowerCase(Locale.ENGLISH))
188189
.collect(Collectors.toList());
189190

190191
subStatNames = Stream.of(blockNames, entityNames, itemNames)
@@ -194,7 +195,7 @@ private void prepareLists() {
194195

195196
statNames = Arrays.stream(Statistic.values())
196197
.map(Statistic::toString)
197-
.map(String::toLowerCase)
198+
.map(string -> string.toLowerCase(Locale.ENGLISH))
198199
.collect(Collectors.toList());
199200
}
200201
}

0 commit comments

Comments
 (0)