mirror of
https://hub.spigotmc.org/stash/scm/spigot/bukkit.git
synced 2025-04-13 09:41:09 +00:00
Merge branch 'refs/heads/master' into enums-to-registers
# Conflicts: # src/main/java/org/bukkit/Art.java # src/main/java/org/bukkit/block/BlockType.java # src/main/java/org/bukkit/entity/EntityType.java # src/main/java/org/bukkit/inventory/ItemType.java # src/test/java/org/bukkit/support/TestServer.java
This commit is contained in:
commit
b2f7a90c04
26 changed files with 88 additions and 60 deletions
|
@ -32,6 +32,16 @@
|
|||
<property name="files" value=".*[\\/]src[\\/]test[\\/].*\.java$"/>
|
||||
</module>
|
||||
|
||||
<!-- See SPIGOT-7676: Enforce Locale, to prevent issues with turkish 'I' and similar -->
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="\.toUpperCase\(\s*\)" />
|
||||
<property name="message" value="Use toUpperCase(Locale.ROOT) instead of toUpperCase()" />
|
||||
</module>
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="\.toLowerCase\(\s*\)" />
|
||||
<property name="message" value="Use toLowerCase(Locale.ROOT) instead of toLowerCase()" />
|
||||
</module>
|
||||
|
||||
<module name="TreeWalker">
|
||||
<!-- See https://checkstyle.org/config_javadoc.html -->
|
||||
<module name="AtclauseOrder"/>
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.bukkit;
|
|||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.util.OldEnum;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -70,7 +71,7 @@ public abstract class Art extends OldEnum<Art> implements Keyed {
|
|||
public static Art getByName(@NotNull String name) {
|
||||
Preconditions.checkArgument(name != null, "Name cannot be null");
|
||||
|
||||
return Registry.ART.get(NamespacedKey.fromString(name.toLowerCase(java.util.Locale.ENGLISH)));
|
||||
return Registry.ART.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -130,7 +131,7 @@ public abstract class Art extends OldEnum<Art> implements Keyed {
|
|||
@NotNull
|
||||
@Deprecated
|
||||
public static Art valueOf(@NotNull String name) {
|
||||
Art art = Registry.ART.get(NamespacedKey.fromString(name.toLowerCase()));
|
||||
Art art = Registry.ART.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT)));
|
||||
Preconditions.checkArgument(art != null, "No Art found with the name %s", name);
|
||||
return art;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.bukkit;
|
|||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||
|
@ -428,6 +429,6 @@ public final class Color implements ConfigurationSerializable {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Color:[argb0x" + Integer.toHexString(asARGB()).toUpperCase() + "]";
|
||||
return "Color:[argb0x" + Integer.toHexString(asARGB()).toUpperCase(Locale.ROOT) + "]";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4956,7 +4956,7 @@ public enum Material implements Keyed, Translatable {
|
|||
filtered = filtered.substring((NamespacedKey.MINECRAFT + ":").length());
|
||||
}
|
||||
|
||||
filtered = filtered.toUpperCase(java.util.Locale.ENGLISH);
|
||||
filtered = filtered.toUpperCase(Locale.ROOT);
|
||||
|
||||
filtered = filtered.replaceAll("\\s+", "_").replaceAll("\\W", "");
|
||||
return getMaterial(filtered, legacyName);
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
|
|||
import com.google.common.base.Predicates;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Predicate;
|
||||
|
@ -335,7 +336,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
|
|||
default T match(@NotNull String input) {
|
||||
Preconditions.checkArgument(input != null, "input must not be null");
|
||||
|
||||
String filtered = input.toLowerCase().replaceAll("\\s+", "_");
|
||||
String filtered = input.toLowerCase(Locale.ROOT).replaceAll("\\s+", "_");
|
||||
NamespacedKey namespacedKey = NamespacedKey.fromString(filtered);
|
||||
return (namespacedKey != null) ? get(namespacedKey) : null;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.lang.annotation.ElementType;
|
|||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
@ -86,7 +87,7 @@ public @interface Warning {
|
|||
if (value == null) {
|
||||
return DEFAULT;
|
||||
}
|
||||
WarningState state = values.get(value.toLowerCase());
|
||||
WarningState state = values.get(value.toLowerCase(Locale.ROOT));
|
||||
if (state == null) {
|
||||
return DEFAULT;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.bukkit;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
@ -39,7 +40,7 @@ public enum WorldType {
|
|||
*/
|
||||
@Nullable
|
||||
public static WorldType getByName(@NotNull String name) {
|
||||
return BY_NAME.get(name.toUpperCase(java.util.Locale.ENGLISH));
|
||||
return BY_NAME.get(name.toUpperCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
static {
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.bukkit.attribute;
|
|||
|
||||
import com.google.common.base.Preconditions;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
@ -159,11 +160,11 @@ public class AttributeModifier implements ConfigurationSerializable {
|
|||
@NotNull
|
||||
public static AttributeModifier deserialize(@NotNull Map<String, Object> args) {
|
||||
if (args.containsKey("slot")) {
|
||||
EquipmentSlotGroup slotGroup = EquipmentSlotGroup.getByName(args.get("slot").toString().toLowerCase());
|
||||
EquipmentSlotGroup slotGroup = EquipmentSlotGroup.getByName(args.get("slot").toString().toLowerCase(Locale.ROOT));
|
||||
if (slotGroup == null) {
|
||||
slotGroup = EquipmentSlotGroup.ANY;
|
||||
|
||||
EquipmentSlot slot = EquipmentSlot.valueOf((args.get("slot").toString().toUpperCase()));
|
||||
EquipmentSlot slot = EquipmentSlot.valueOf((args.get("slot").toString().toUpperCase(Locale.ROOT)));
|
||||
if (slot != null) {
|
||||
slotGroup = slot.getGroup();
|
||||
}
|
||||
|
|
|
@ -3409,12 +3409,12 @@ public interface BlockType extends Keyed, Translatable {
|
|||
//</editor-fold>
|
||||
|
||||
@NotNull
|
||||
private static <B extends BlockData> BlockType.Typed<B> getBlockType(@NotNull String key) {
|
||||
private static <B extends BlockType> B getBlockType(@NotNull String key) {
|
||||
NamespacedKey namespacedKey = NamespacedKey.minecraft(key);
|
||||
BlockType blockType = Registry.BLOCK.get(namespacedKey);
|
||||
Preconditions.checkNotNull(blockType, "No BlockType found for %s. This is a bug.", namespacedKey);
|
||||
// Cast instead of using BlockType#typed, since block type can be a mock during testing and would return null
|
||||
return (BlockType.Typed<B>) blockType;
|
||||
return (B) blockType;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,6 +8,7 @@ import java.util.Collections;
|
|||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
|
@ -67,8 +68,8 @@ public class SimpleCommandMap implements CommandMap {
|
|||
*/
|
||||
@Override
|
||||
public boolean register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command) {
|
||||
label = label.toLowerCase(java.util.Locale.ENGLISH).trim();
|
||||
fallbackPrefix = fallbackPrefix.toLowerCase(java.util.Locale.ENGLISH).trim();
|
||||
label = label.toLowerCase(Locale.ROOT).trim();
|
||||
fallbackPrefix = fallbackPrefix.toLowerCase(Locale.ROOT).trim();
|
||||
boolean registered = register(label, command, false, fallbackPrefix);
|
||||
|
||||
Iterator<String> iterator = command.getAliases().iterator();
|
||||
|
@ -136,7 +137,7 @@ public class SimpleCommandMap implements CommandMap {
|
|||
return false;
|
||||
}
|
||||
|
||||
String sentCommandLabel = args[0].toLowerCase(java.util.Locale.ENGLISH);
|
||||
String sentCommandLabel = args[0].toLowerCase(Locale.ROOT);
|
||||
Command target = getCommand(sentCommandLabel);
|
||||
|
||||
if (target == null) {
|
||||
|
@ -168,7 +169,7 @@ public class SimpleCommandMap implements CommandMap {
|
|||
@Override
|
||||
@Nullable
|
||||
public Command getCommand(@NotNull String name) {
|
||||
Command target = knownCommands.get(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
Command target = knownCommands.get(name.toLowerCase(Locale.ROOT));
|
||||
return target;
|
||||
}
|
||||
|
||||
|
@ -272,9 +273,9 @@ public class SimpleCommandMap implements CommandMap {
|
|||
|
||||
// We register these as commands so they have absolute priority.
|
||||
if (targets.size() > 0) {
|
||||
knownCommands.put(alias.toLowerCase(java.util.Locale.ENGLISH), new FormattedCommandAlias(alias.toLowerCase(java.util.Locale.ENGLISH), targets.toArray(new String[targets.size()])));
|
||||
knownCommands.put(alias.toLowerCase(Locale.ROOT), new FormattedCommandAlias(alias.toLowerCase(Locale.ROOT), targets.toArray(new String[targets.size()])));
|
||||
} else {
|
||||
knownCommands.remove(alias.toLowerCase(java.util.Locale.ENGLISH));
|
||||
knownCommands.remove(alias.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -61,9 +62,9 @@ public class VersionCommand extends BukkitCommand {
|
|||
}
|
||||
|
||||
boolean found = false;
|
||||
pluginName = pluginName.toLowerCase(java.util.Locale.ENGLISH);
|
||||
pluginName = pluginName.toLowerCase(Locale.ROOT);
|
||||
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
||||
if (plugin.getName().toLowerCase(java.util.Locale.ENGLISH).contains(pluginName)) {
|
||||
if (plugin.getName().toLowerCase(Locale.ROOT).contains(pluginName)) {
|
||||
describeToSender(plugin, sender);
|
||||
found = true;
|
||||
}
|
||||
|
@ -133,7 +134,7 @@ public class VersionCommand extends BukkitCommand {
|
|||
|
||||
if (args.length == 1) {
|
||||
List<String> completions = new ArrayList<String>();
|
||||
String toComplete = args[0].toLowerCase(java.util.Locale.ENGLISH);
|
||||
String toComplete = args[0].toLowerCase(Locale.ROOT);
|
||||
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
||||
if (StringUtil.startsWithIgnoreCase(plugin.getName(), toComplete)) {
|
||||
completions.add(plugin.getName());
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.bukkit.enchantments;
|
|||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.Lists;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Keyed;
|
||||
import org.bukkit.MinecraftExperimental;
|
||||
import org.bukkit.MinecraftExperimental.Requires;
|
||||
|
@ -351,7 +352,7 @@ public abstract class Enchantment implements Keyed, Translatable {
|
|||
return null;
|
||||
}
|
||||
|
||||
return getByKey(NamespacedKey.fromString(name.toLowerCase()));
|
||||
return getByKey(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
|
|||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Keyed;
|
||||
import org.bukkit.Location;
|
||||
|
@ -417,7 +418,7 @@ public abstract class EntityType extends OldEnum<EntityType> implements Keyed, T
|
|||
if (name == null) {
|
||||
return null;
|
||||
}
|
||||
return Registry.ENTITY_TYPE.get(NamespacedKey.fromString(name.toLowerCase(java.util.Locale.ENGLISH)));
|
||||
return Registry.ENTITY_TYPE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -444,7 +445,7 @@ public abstract class EntityType extends OldEnum<EntityType> implements Keyed, T
|
|||
@NotNull
|
||||
@Deprecated
|
||||
public static EntityType valueOf(@NotNull String name) {
|
||||
EntityType entityType = Registry.ENTITY_TYPE.get(NamespacedKey.fromString(name.toLowerCase()));
|
||||
EntityType entityType = Registry.ENTITY_TYPE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT)));
|
||||
Preconditions.checkArgument(entityType != null, "No EntityType found with the name %s", name);
|
||||
return entityType;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.bukkit.inventory;
|
|||
|
||||
import com.google.common.base.Preconditions;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
@ -73,7 +74,7 @@ public final class EquipmentSlotGroup implements Predicate<EquipmentSlot> {
|
|||
public static EquipmentSlotGroup getByName(@NotNull String name) {
|
||||
Preconditions.checkArgument(name != null, "Name cannot be null");
|
||||
|
||||
return BY_NAME.get(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
return BY_NAME.get(name.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
private static EquipmentSlotGroup get(@NotNull String key, @NotNull EquipmentSlot slot) {
|
||||
|
|
|
@ -2257,12 +2257,12 @@ public interface ItemType extends Keyed, Translatable {
|
|||
//</editor-fold>
|
||||
|
||||
@NotNull
|
||||
private static <M extends ItemMeta> Typed<M> getItemType(@NotNull String key) {
|
||||
private static <M extends ItemType> M getItemType(@NotNull String key) {
|
||||
NamespacedKey namespacedKey = NamespacedKey.minecraft(key);
|
||||
ItemType itemType = Registry.ITEM.get(namespacedKey);
|
||||
Preconditions.checkNotNull(itemType, "No ItemType found for %s. This is a bug.", namespacedKey);
|
||||
// Cast instead of using ItemType#typed, since item type can be a mock during testing and would return null
|
||||
return (ItemType.Typed<M>) itemType;
|
||||
return (M) itemType;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.HashMap;
|
|||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
@ -52,7 +53,7 @@ public class PermissibleBase implements Permissible {
|
|||
throw new IllegalArgumentException("Permission name cannot be null");
|
||||
}
|
||||
|
||||
return permissions.containsKey(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
return permissions.containsKey(name.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -70,7 +71,7 @@ public class PermissibleBase implements Permissible {
|
|||
throw new IllegalArgumentException("Permission name cannot be null");
|
||||
}
|
||||
|
||||
String name = inName.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = inName.toLowerCase(Locale.ROOT);
|
||||
|
||||
if (isPermissionSet(name)) {
|
||||
return permissions.get(name).getValue();
|
||||
|
@ -91,7 +92,7 @@ public class PermissibleBase implements Permissible {
|
|||
throw new IllegalArgumentException("Permission cannot be null");
|
||||
}
|
||||
|
||||
String name = perm.getName().toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = perm.getName().toLowerCase(Locale.ROOT);
|
||||
|
||||
if (isPermissionSet(name)) {
|
||||
return permissions.get(name).getValue();
|
||||
|
@ -161,7 +162,7 @@ public class PermissibleBase implements Permissible {
|
|||
Bukkit.getServer().getPluginManager().subscribeToDefaultPerms(isOp(), parent);
|
||||
|
||||
for (Permission perm : defaults) {
|
||||
String name = perm.getName().toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = perm.getName().toLowerCase(Locale.ROOT);
|
||||
permissions.put(name, new PermissionAttachmentInfo(parent, name, null, true));
|
||||
Bukkit.getServer().getPluginManager().subscribeToPermission(name, parent);
|
||||
calculateChildPermissions(perm.getChildren(), false, null);
|
||||
|
@ -191,7 +192,7 @@ public class PermissibleBase implements Permissible {
|
|||
|
||||
Permission perm = Bukkit.getServer().getPluginManager().getPermission(name);
|
||||
boolean value = entry.getValue() ^ invert;
|
||||
String lname = name.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String lname = name.toLowerCase(Locale.ROOT);
|
||||
|
||||
permissions.put(lname, new PermissionAttachmentInfo(parent, lname, attachment, value));
|
||||
Bukkit.getServer().getPluginManager().subscribeToPermission(name, parent);
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
|
|||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
@ -186,7 +187,7 @@ public class Permission {
|
|||
@NotNull
|
||||
public Permission addParent(@NotNull String name, boolean value) {
|
||||
PluginManager pm = Bukkit.getServer().getPluginManager();
|
||||
String lname = name.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String lname = name.toLowerCase(Locale.ROOT);
|
||||
|
||||
Permission perm = pm.getPermission(lname);
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.bukkit.permissions;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -89,7 +90,7 @@ public class PermissionAttachment {
|
|||
* @param value New value of the permission
|
||||
*/
|
||||
public void setPermission(@NotNull String name, boolean value) {
|
||||
permissions.put(name.toLowerCase(java.util.Locale.ENGLISH), value);
|
||||
permissions.put(name.toLowerCase(Locale.ROOT), value);
|
||||
permissible.recalculatePermissions();
|
||||
}
|
||||
|
||||
|
@ -112,7 +113,7 @@ public class PermissionAttachment {
|
|||
* @param name Name of the permission to remove
|
||||
*/
|
||||
public void unsetPermission(@NotNull String name) {
|
||||
permissions.remove(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
permissions.remove(name.toLowerCase(Locale.ROOT));
|
||||
permissible.recalculatePermissions();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.bukkit.permissions;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
@ -51,7 +52,7 @@ public enum PermissionDefault {
|
|||
*/
|
||||
@Nullable
|
||||
public static PermissionDefault getByName(@NotNull String name) {
|
||||
return lookup.get(name.toLowerCase(java.util.Locale.ENGLISH).replaceAll("[^a-z!]", ""));
|
||||
return lookup.get(name.toLowerCase(Locale.ROOT).replaceAll("[^a-z!]", ""));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,6 +9,7 @@ import java.io.Writer;
|
|||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
@ -1086,7 +1087,7 @@ public final class PluginDescriptionFile {
|
|||
|
||||
if (map.get("load") != null) {
|
||||
try {
|
||||
order = PluginLoadOrder.valueOf(((String) map.get("load")).toUpperCase(java.util.Locale.ENGLISH).replaceAll("\\W", ""));
|
||||
order = PluginLoadOrder.valueOf(((String) map.get("load")).toUpperCase(Locale.ROOT).replaceAll("\\W", ""));
|
||||
} catch (ClassCastException ex) {
|
||||
throw new InvalidDescriptionException(ex, "load is of wrong type");
|
||||
} catch (IllegalArgumentException ex) {
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.LinkedHashMap;
|
|||
import java.util.LinkedHashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.WeakHashMap;
|
||||
|
@ -698,7 +699,7 @@ public final class SimplePluginManager implements PluginManager {
|
|||
@Override
|
||||
@Nullable
|
||||
public Permission getPermission(@NotNull String name) {
|
||||
return permissions.get(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
return permissions.get(name.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -708,7 +709,7 @@ public final class SimplePluginManager implements PluginManager {
|
|||
|
||||
@Deprecated
|
||||
public void addPermission(@NotNull Permission perm, boolean dirty) {
|
||||
String name = perm.getName().toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = perm.getName().toLowerCase(Locale.ROOT);
|
||||
|
||||
if (permissions.containsKey(name)) {
|
||||
throw new IllegalArgumentException("The permission " + name + " is already defined!");
|
||||
|
@ -731,12 +732,12 @@ public final class SimplePluginManager implements PluginManager {
|
|||
|
||||
@Override
|
||||
public void removePermission(@NotNull String name) {
|
||||
permissions.remove(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
permissions.remove(name.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void recalculatePermissionDefaults(@NotNull Permission perm) {
|
||||
if (perm != null && permissions.containsKey(perm.getName().toLowerCase(java.util.Locale.ENGLISH))) {
|
||||
if (perm != null && permissions.containsKey(perm.getName().toLowerCase(Locale.ROOT))) {
|
||||
defaultPerms.get(true).remove(perm);
|
||||
defaultPerms.get(false).remove(perm);
|
||||
|
||||
|
@ -775,7 +776,7 @@ public final class SimplePluginManager implements PluginManager {
|
|||
|
||||
@Override
|
||||
public void subscribeToPermission(@NotNull String permission, @NotNull Permissible permissible) {
|
||||
String name = permission.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = permission.toLowerCase(Locale.ROOT);
|
||||
Map<Permissible, Boolean> map = permSubs.get(name);
|
||||
|
||||
if (map == null) {
|
||||
|
@ -788,7 +789,7 @@ public final class SimplePluginManager implements PluginManager {
|
|||
|
||||
@Override
|
||||
public void unsubscribeFromPermission(@NotNull String permission, @NotNull Permissible permissible) {
|
||||
String name = permission.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = permission.toLowerCase(Locale.ROOT);
|
||||
Map<Permissible, Boolean> map = permSubs.get(name);
|
||||
|
||||
if (map != null) {
|
||||
|
@ -803,7 +804,7 @@ public final class SimplePluginManager implements PluginManager {
|
|||
@Override
|
||||
@NotNull
|
||||
public Set<Permissible> getPermissionSubscriptions(@NotNull String permission) {
|
||||
String name = permission.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = permission.toLowerCase(Locale.ROOT);
|
||||
Map<Permissible, Boolean> map = permSubs.get(name);
|
||||
|
||||
if (map == null) {
|
||||
|
|
|
@ -12,6 +12,7 @@ import java.io.Reader;
|
|||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Server;
|
||||
|
@ -309,11 +310,11 @@ public abstract class JavaPlugin extends PluginBase {
|
|||
*/
|
||||
@Nullable
|
||||
public PluginCommand getCommand(@NotNull String name) {
|
||||
String alias = name.toLowerCase(java.util.Locale.ENGLISH);
|
||||
String alias = name.toLowerCase(Locale.ROOT);
|
||||
PluginCommand command = getServer().getPluginCommand(alias);
|
||||
|
||||
if (command == null || command.getPlugin() != this) {
|
||||
command = getServer().getPluginCommand(description.getName().toLowerCase(java.util.Locale.ENGLISH) + ":" + alias);
|
||||
command = getServer().getPluginCommand(description.getName().toLowerCase(Locale.ROOT) + ":" + alias);
|
||||
}
|
||||
|
||||
if (command != null && command.getPlugin() == this) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
|
|||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.Keyed;
|
||||
import org.bukkit.NamespacedKey;
|
||||
|
@ -348,7 +349,7 @@ public abstract class PotionEffectType implements Keyed, Translatable {
|
|||
@Deprecated
|
||||
public static PotionEffectType getByName(@NotNull String name) {
|
||||
Preconditions.checkArgument(name != null, "name cannot be null");
|
||||
return Registry.EFFECT.get(NamespacedKey.fromString(name.toLowerCase(java.util.Locale.ENGLISH)));
|
||||
return Registry.EFFECT.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.bukkit;
|
|||
import static org.bukkit.support.MatcherAssert.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
@ -31,7 +32,7 @@ public class ColorTest {
|
|||
this.r = r;
|
||||
this.g = g;
|
||||
this.b = b;
|
||||
this.name = id + ":" + Integer.toHexString(argb).toUpperCase() + "_" + Integer.toHexString(rgb).toUpperCase() + "_" + Integer.toHexString(bgr).toUpperCase() + "-a" + Integer.toHexString(a).toUpperCase() + "-r" + Integer.toHexString(r).toUpperCase() + "-g" + Integer.toHexString(g).toUpperCase() + "-b" + Integer.toHexString(b).toUpperCase();
|
||||
this.name = id + ":" + Integer.toHexString(argb).toUpperCase(Locale.ROOT) + "_" + Integer.toHexString(rgb).toUpperCase(Locale.ROOT) + "_" + Integer.toHexString(bgr).toUpperCase(Locale.ROOT) + "-a" + Integer.toHexString(a).toUpperCase(Locale.ROOT) + "-r" + Integer.toHexString(r).toUpperCase(Locale.ROOT) + "-g" + Integer.toHexString(g).toUpperCase(Locale.ROOT) + "-b" + Integer.toHexString(b).toUpperCase(Locale.ROOT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.bukkit;
|
|||
import static org.bukkit.support.MatcherAssert.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.material.MaterialData;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
@ -66,7 +67,7 @@ public class MaterialTest {
|
|||
@Test
|
||||
public void matchMaterialByLowerCaseAndSpaces() {
|
||||
for (Material material : Material.values()) {
|
||||
String name = material.toString().replaceAll("_", " ").toLowerCase(java.util.Locale.ENGLISH);
|
||||
String name = material.toString().replaceAll("_", " ").toLowerCase(Locale.ROOT);
|
||||
assertThat(Material.matchMaterial(name), is(material));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.bukkit.support;
|
|||
import static org.mockito.Mockito.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -40,21 +41,17 @@ public final class TestServer {
|
|||
Map<Class<? extends Keyed>, Registry<?>> registers = new HashMap<>();
|
||||
when(instance.getRegistry(any())).then(invocationOnMock -> registers.computeIfAbsent(invocationOnMock.getArgument(0), aClass -> new Registry<>() {
|
||||
private final Map<NamespacedKey, Keyed> cache = new HashMap<>();
|
||||
private Class<? extends Keyed> theClass;
|
||||
|
||||
@Override
|
||||
public Keyed get(NamespacedKey key) {
|
||||
if (theClass == null) {
|
||||
// Some registries have extra Typed classes such as BlockType and ItemType.
|
||||
// To avoid class cast exceptions during init mock the Typed class.
|
||||
// This is an over generalization, since not all items need to be Typed,
|
||||
// but since this is only so that the registries init correctly it should be fine.
|
||||
// Making this more precise is something for the future when it is actually required.
|
||||
try {
|
||||
theClass = Class.forName(aClass.getName() + "$Typed", false, TestServer.class.getClassLoader()).asSubclass(aClass);
|
||||
} catch (ClassNotFoundException | ClassCastException e) {
|
||||
theClass = aClass;
|
||||
}
|
||||
Class<? extends Keyed> theClass;
|
||||
// Some registries have extra Typed classes such as BlockType and ItemType.
|
||||
// To avoid class cast exceptions during init mock the Typed class.
|
||||
// To get the correct class, we just use the field type.
|
||||
try {
|
||||
theClass = (Class<? extends Keyed>) aClass.getField(key.getKey().toUpperCase(Locale.ROOT).replace('.', '_')).getType();
|
||||
} catch (ClassCastException | NoSuchFieldException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return cache.computeIfAbsent(key, key2 -> mock(theClass, withSettings().stubOnly()));
|
||||
|
|
Loading…
Add table
Reference in a new issue