From ca27a33e84f9332a045de70d91d3f48061946f12 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 20 Apr 2014 18:59:04 +1000 Subject: [PATCH] Don't special case 'invalid' usernames for UUIDs. This renders any automatically generated username to have the same UUID, thus make pseudo players somewhat limited. When using such names for scoreboards etc you should be using our enhanced String based scoreboard API anyway. Thanks @ElgarL for pointing this out. --- ...ial-case-invalid-usernames-for-UUIDs.patch | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 CraftBukkit-Patches/0139-Don-t-special-case-invalid-usernames-for-UUIDs.patch diff --git a/CraftBukkit-Patches/0139-Don-t-special-case-invalid-usernames-for-UUIDs.patch b/CraftBukkit-Patches/0139-Don-t-special-case-invalid-usernames-for-UUIDs.patch new file mode 100644 index 0000000000..f8e89f6fb5 --- /dev/null +++ b/CraftBukkit-Patches/0139-Don-t-special-case-invalid-usernames-for-UUIDs.patch @@ -0,0 +1,34 @@ +From e0c38283dbe5d50a2b6290bf60d75140814e80e4 Mon Sep 17 00:00:00 2001 +From: md_5 +Date: Sun, 20 Apr 2014 18:58:00 +1000 +Subject: [PATCH] Don't special case 'invalid' usernames for UUIDs. + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index 7c265b5..a996677 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -231,8 +231,6 @@ public final class CraftServer implements Server { + private boolean printSaveWarning; + private CraftIconCache icon; + private boolean overrideAllCommandBlockCommands = false; +- private final Pattern validUserPattern = Pattern.compile("^[a-zA-Z0-9_]{2,16}$"); +- private final UUID invalidUserUUID = UUID.nameUUIDFromBytes("InvalidUsername".getBytes(Charsets.UTF_8)); + + private final class BooleanWrapper { + private boolean value = true; +@@ -1321,11 +1319,6 @@ public final class CraftServer implements Server { + Validate.notNull(name, "Name cannot be null"); + com.google.common.base.Preconditions.checkArgument( !org.apache.commons.lang.StringUtils.isBlank( name ), "Name cannot be blank" ); // Spigot + +- // If the name given cannot ever be a valid username give a dummy return, for scoreboard plugins +- if (!validUserPattern.matcher(name).matches()) { +- return new CraftOfflinePlayer(this, new GameProfile(invalidUserUUID, name)); +- } +- + OfflinePlayer result = getPlayerExact(name); + if (result == null) { + // This is potentially blocking :( +-- +1.9.1 +