#3455: Don't lock connections for offline uuid lookup when given uuid is not offline mode
This commit is contained in:
parent
3db27052a1
commit
38028e8e90
@ -625,12 +625,16 @@ public class BungeeCord extends ProxyServer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserConnection getPlayerByOfflineUUID(UUID name)
|
public UserConnection getPlayerByOfflineUUID(UUID uuid)
|
||||||
{
|
{
|
||||||
|
if ( uuid.version() != 3 )
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
connectionLock.readLock().lock();
|
connectionLock.readLock().lock();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return connectionsByOfflineUUID.get( name );
|
return connectionsByOfflineUUID.get( uuid );
|
||||||
} finally
|
} finally
|
||||||
{
|
{
|
||||||
connectionLock.readLock().unlock();
|
connectionLock.readLock().unlock();
|
||||||
@ -751,12 +755,17 @@ public class BungeeCord extends ProxyServer
|
|||||||
|
|
||||||
public void addConnection(UserConnection con)
|
public void addConnection(UserConnection con)
|
||||||
{
|
{
|
||||||
|
UUID offlineId = con.getPendingConnection().getOfflineId();
|
||||||
|
if ( offlineId != null && offlineId.version() != 3 )
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException( "Offline UUID must be a name-based UUID" );
|
||||||
|
}
|
||||||
connectionLock.writeLock().lock();
|
connectionLock.writeLock().lock();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
connections.put( con.getName(), con );
|
connections.put( con.getName(), con );
|
||||||
connectionsByUUID.put( con.getUniqueId(), con );
|
connectionsByUUID.put( con.getUniqueId(), con );
|
||||||
connectionsByOfflineUUID.put( con.getPendingConnection().getOfflineId(), con );
|
connectionsByOfflineUUID.put( offlineId, con );
|
||||||
} finally
|
} finally
|
||||||
{
|
{
|
||||||
connectionLock.writeLock().unlock();
|
connectionLock.writeLock().unlock();
|
||||||
|
Loading…
Reference in New Issue
Block a user