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.
This commit is contained in:
md_5 2014-04-20 18:59:04 +10:00
parent 28eddfcc38
commit ca27a33e84

View File

@ -0,0 +1,34 @@
From e0c38283dbe5d50a2b6290bf60d75140814e80e4 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
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