Build placeholder token names with a fixed locale

Placeholder names were built with bare toLowerCase(), which follows
the JVM default locale; on Turkish-locale JVMs enum names containing
'I' produce a dotless ı, so tokens like mctop_mining would register
under a different spelling than documented. The case-insensitive token
map happens to absorb the mismatch, but the registered names should
not depend on that. All seven placeholder classes now lower-case with
Locale.ENGLISH.
This commit is contained in:
nossr50
2026-07-09 11:11:03 -07:00
parent eba387f621
commit 3bec5a42f6
7 changed files with 14 additions and 7 deletions

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import java.util.function.IntFunction;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Nullable;
@ -75,7 +76,7 @@ public class McTopPlaceholder implements Placeholder {
}
private static String token(@Nullable PrimarySkillType skill, String overallToken) {
return skill == null ? overallToken : skill.toString().toLowerCase();
return skill == null ? overallToken : skill.toString().toLowerCase(Locale.ENGLISH);
}
@Override

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import org.bukkit.entity.Player;
public class SkillExpNeededPlaceholder implements Placeholder {
@ -21,6 +22,6 @@ public class SkillExpNeededPlaceholder implements Placeholder {
@Override
public String getName() {
return "xp_needed_" + skillType.toString().toLowerCase();
return "xp_needed_" + skillType.toString().toLowerCase(Locale.ENGLISH);
}
}

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import org.bukkit.entity.Player;
public class SkillExpPlaceholder implements Placeholder {
@ -21,6 +22,6 @@ public class SkillExpPlaceholder implements Placeholder {
@Override
public String getName() {
return "xp_" + skill.toString().toLowerCase();
return "xp_" + skill.toString().toLowerCase(Locale.ENGLISH);
}
}

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import org.bukkit.entity.Player;
public class SkillExpRemainingPlaceholder implements Placeholder {
@ -20,6 +21,6 @@ public class SkillExpRemainingPlaceholder implements Placeholder {
@Override
public String getName() {
return "xp_remaining_" + skill.toString().toLowerCase();
return "xp_remaining_" + skill.toString().toLowerCase(Locale.ENGLISH);
}
}

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import org.bukkit.entity.Player;
public class SkillLevelPlaceholder implements Placeholder {
@ -20,6 +21,6 @@ public class SkillLevelPlaceholder implements Placeholder {
@Override
public String getName() {
return "level_" + skillType.toString().toLowerCase();
return "level_" + skillType.toString().toLowerCase(Locale.ENGLISH);
}
}

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import org.bukkit.entity.Player;
public class SkillRankPlaceholder implements Placeholder {
@ -20,6 +21,6 @@ public class SkillRankPlaceholder implements Placeholder {
@Override
public String getName() {
return "rank_" + skill.toString().toLowerCase();
return "rank_" + skill.toString().toLowerCase(Locale.ENGLISH);
}
}

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.placeholders;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import java.util.Locale;
import org.bukkit.entity.Player;
public class SkillXpRatePlaceholder implements Placeholder {
@ -20,6 +21,6 @@ public class SkillXpRatePlaceholder implements Placeholder {
@Override
public String getName() {
return "xprate_" + skillType.toString().toLowerCase();
return "xprate_" + skillType.toString().toLowerCase(Locale.ENGLISH);
}
}