Fixes #1686: Let PlayerRegistry handle nonexistent players
This commit is contained in:
@@ -34,13 +34,18 @@ public class PlayerRegistry implements IPlayerRegistry
|
|||||||
@Override
|
@Override
|
||||||
public int getID( GameProfile username )
|
public int getID( GameProfile username )
|
||||||
{
|
{
|
||||||
|
if( username == null || !username.isComplete() )
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
return WorldData.instance().playerData().getPlayerID( username );
|
return WorldData.instance().playerData().getPlayerID( username );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getID( EntityPlayer player )
|
public int getID( EntityPlayer player )
|
||||||
{
|
{
|
||||||
return WorldData.instance().playerData().getPlayerID( player.getGameProfile() );
|
return this.getID( player.getGameProfile() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -93,17 +93,13 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS
|
|||||||
public int getPlayerID( @Nonnull final GameProfile profile )
|
public int getPlayerID( @Nonnull final GameProfile profile )
|
||||||
{
|
{
|
||||||
Preconditions.checkNotNull( profile );
|
Preconditions.checkNotNull( profile );
|
||||||
|
Preconditions.checkNotNull( this.config.getCategory( "players" ) );
|
||||||
|
Preconditions.checkState( profile.isComplete() );
|
||||||
|
|
||||||
final ConfigCategory players = this.config.getCategory( "players" );
|
final ConfigCategory players = this.config.getCategory( "players" );
|
||||||
|
|
||||||
if( players == null || !profile.isComplete() )
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
final String uuid = profile.getId().toString();
|
final String uuid = profile.getId().toString();
|
||||||
|
|
||||||
final Property maybePlayerID = players.get( uuid );
|
final Property maybePlayerID = players.get( uuid );
|
||||||
|
|
||||||
if( maybePlayerID != null && maybePlayerID.isIntValue() )
|
if( maybePlayerID != null && maybePlayerID.isIntValue() )
|
||||||
{
|
{
|
||||||
return maybePlayerID.getInt();
|
return maybePlayerID.getInt();
|
||||||
|
|||||||
Reference in New Issue
Block a user