Merge pull request #7655 from deathbeam/fix-party-exceptions

Fix party exceptions (NPE in PartyPlugin and ConcurrentModification in PartyStatsOverlay)
This commit is contained in:
Tomas Slusny
2019-02-02 18:51:57 +00:00
committed by GitHub
2 changed files with 45 additions and 40 deletions

View File

@@ -119,7 +119,7 @@ public class PartyPlugin extends Plugin implements KeyListener
private ChatMessageManager chatMessageManager; private ChatMessageManager chatMessageManager;
@Getter @Getter
private final Map<UUID, PartyData> partyDataMap = new HashMap<>(); private final Map<UUID, PartyData> partyDataMap = Collections.synchronizedMap(new HashMap<>());
@Getter @Getter
private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>()); private final List<PartyTilePingData> pendingTilePings = Collections.synchronizedList(new ArrayList<>());
@@ -354,7 +354,9 @@ public class PartyPlugin extends Plugin implements KeyListener
.runeLiteFormattedMessage(joinMessage) .runeLiteFormattedMessage(joinMessage)
.build()); .build());
if (partyData.getMemberId().equals(party.getLocalMember().getMemberId())) final PartyMember localMember = party.getLocalMember();
if (localMember != null && partyData.getMemberId().equals(localMember.getMemberId()))
{ {
final String helpMessage = new ChatMessageBuilder() final String helpMessage = new ChatMessageBuilder()
.append(ChatColorType.HIGHLIGHT) .append(ChatColorType.HIGHLIGHT)

View File

@@ -80,6 +80,8 @@ public class PartyStatsOverlay extends Overlay
boolean only1 = plugin.getPartyDataMap().size() == 1; boolean only1 = plugin.getPartyDataMap().size() == 1;
synchronized (plugin.getPartyDataMap())
{
partyDataMap.forEach((k, v) -> partyDataMap.forEach((k, v) ->
{ {
if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k)) if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k))
@@ -128,6 +130,7 @@ public class PartyStatsOverlay extends Overlay
body.getChildren().add(panel); body.getChildren().add(panel);
}); });
}
return body.render(graphics); return body.render(graphics);
} }