From ff3e51018f0c2ba18ba91a449f204e83ea336206 Mon Sep 17 00:00:00 2001 From: yueh Date: Mon, 6 Jul 2015 16:44:36 +0200 Subject: [PATCH] Fixes #1686: Let PlayerRegistry handle nonexistent players --- .../core/features/registries/PlayerRegistry.java | 7 ++++++- src/main/java/appeng/core/worlddata/PlayerData.java | 10 +++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/appeng/core/features/registries/PlayerRegistry.java b/src/main/java/appeng/core/features/registries/PlayerRegistry.java index b6827f082..a550fa33f 100644 --- a/src/main/java/appeng/core/features/registries/PlayerRegistry.java +++ b/src/main/java/appeng/core/features/registries/PlayerRegistry.java @@ -35,13 +35,18 @@ public class PlayerRegistry implements IPlayerRegistry @Override public int getID( GameProfile username ) { + if( username == null || !username.isComplete() ) + { + return -1; + } + return WorldData.instance().playerData().getPlayerID( username ); } @Override public int getID( EntityPlayer player ) { - return WorldData.instance().playerData().getPlayerID( player.getGameProfile() ); + return this.getID( player.getGameProfile() ); } @Nullable diff --git a/src/main/java/appeng/core/worlddata/PlayerData.java b/src/main/java/appeng/core/worlddata/PlayerData.java index 23c5b6a25..8b3ebffb7 100644 --- a/src/main/java/appeng/core/worlddata/PlayerData.java +++ b/src/main/java/appeng/core/worlddata/PlayerData.java @@ -94,17 +94,13 @@ final class PlayerData implements IWorldPlayerData, IOnWorldStartable, IOnWorldS public int getPlayerID( @Nonnull final GameProfile profile ) { Preconditions.checkNotNull( profile ); + Preconditions.checkNotNull( this.config.getCategory( "players" ) ); + Preconditions.checkState( profile.isComplete() ); final ConfigCategory players = this.config.getCategory( "players" ); - - if( players == null || !profile.isComplete() ) - { - return -1; - } - final String uuid = profile.getId().toString(); - final Property maybePlayerID = players.get( uuid ); + if( maybePlayerID != null && maybePlayerID.isIntValue() ) { return maybePlayerID.getInt();