Archiviert
13
0

Fix NPE when writing PlayerInfoData to packet

By default, the listName field in EntityPlayer is null. As the WrappedChatComponent ignores null values (which in itself is completely fine), the field will be null when you read one while the EntityPlayer has no listName. When you try to write one, however, the converter directly accesses the handle from the WrappedChatComponent. This means you will be trying to access the handle of null when you don't explicitly set the displayName in such a packet.
Dieser Commit ist enthalten in:
Mark Hendriks 2015-01-09 01:45:17 +01:00
Ursprung 266e9e47cc
Commit dd5bfd5f16

Datei anzeigen

@ -80,7 +80,7 @@ public class PlayerInfoData {
specific.profile.handle, specific.profile.handle,
specific.ping, specific.ping,
EnumWrappers.getGameModeConverter().getGeneric(EnumWrappers.getGameModeClass(), specific.gameMode), EnumWrappers.getGameModeConverter().getGeneric(EnumWrappers.getGameModeClass(), specific.gameMode),
specific.displayName.handle specific.displayName != null ? specific.displayName.handle : null
); );
return result; return result;
} catch (Exception e) { } catch (Exception e) {
@ -149,4 +149,4 @@ public class PlayerInfoData {
return String.format("PlayerInfoData { profile=%s, ping=%s, gameMode=%s, displayName=%s }", return String.format("PlayerInfoData { profile=%s, ping=%s, gameMode=%s, displayName=%s }",
profile, ping, gameMode, displayName); profile, ping, gameMode, displayName);
} }
} }