diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java index 48b358e5b0..0ee3624ea9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java @@ -119,7 +119,7 @@ public class PartyPlugin extends Plugin implements KeyListener private ChatMessageManager chatMessageManager; @Getter - private final Map partyDataMap = new HashMap<>(); + private final Map partyDataMap = Collections.synchronizedMap(new HashMap<>()); @Getter private final List pendingTilePings = Collections.synchronizedList(new ArrayList<>()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java index 243c0c746c..4ec7ea53f8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java @@ -80,54 +80,57 @@ public class PartyStatsOverlay extends Overlay boolean only1 = plugin.getPartyDataMap().size() == 1; - partyDataMap.forEach((k, v) -> + synchronized (plugin.getPartyDataMap()) { - if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k)) + partyDataMap.forEach((k, v) -> { - if (only1) + if (party.getLocalMember() != null && party.getLocalMember().getMemberId().equals(k)) { - body.getChildren().add(TitleComponent.builder() - .text("No other party members") - .color(Color.RED) - .build()); + if (only1) + { + body.getChildren().add(TitleComponent.builder() + .text("No other party members") + .color(Color.RED) + .build()); + } + + return; } - return; - } + final PanelComponent panel = v.getPanel(); + panel.getChildren().clear(); - final PanelComponent panel = v.getPanel(); - panel.getChildren().clear(); + final TitleComponent name = TitleComponent.builder() + .text(v.getName()) + .build(); - final TitleComponent name = TitleComponent.builder() - .text(v.getName()) - .build(); + panel.getChildren().add(name); - panel.getChildren().add(name); + if (v.getHitpoints() > 0) + { + final ProgressBarComponent hpBar = new ProgressBarComponent(); + hpBar.setBackgroundColor(HP_BG); + hpBar.setForegroundColor(HP_FG); + hpBar.setMaximum(v.getMaxHitpoints()); + hpBar.setValue(v.getHitpoints()); + hpBar.setLabelDisplayMode(ProgressBarComponent.LabelDisplayMode.FULL); + panel.getChildren().add(hpBar); + } - if (v.getHitpoints() > 0) - { - final ProgressBarComponent hpBar = new ProgressBarComponent(); - hpBar.setBackgroundColor(HP_BG); - hpBar.setForegroundColor(HP_FG); - hpBar.setMaximum(v.getMaxHitpoints()); - hpBar.setValue(v.getHitpoints()); - hpBar.setLabelDisplayMode(ProgressBarComponent.LabelDisplayMode.FULL); - panel.getChildren().add(hpBar); - } + if (v.getPrayer() > 0) + { + final ProgressBarComponent prayBar = new ProgressBarComponent(); + prayBar.setBackgroundColor(PRAY_BG); + prayBar.setForegroundColor(PRAY_FG); + prayBar.setMaximum(v.getMaxPrayer()); + prayBar.setValue(v.getPrayer()); + prayBar.setLabelDisplayMode(ProgressBarComponent.LabelDisplayMode.FULL); + panel.getChildren().add(prayBar); + } - if (v.getPrayer() > 0) - { - final ProgressBarComponent prayBar = new ProgressBarComponent(); - prayBar.setBackgroundColor(PRAY_BG); - prayBar.setForegroundColor(PRAY_FG); - prayBar.setMaximum(v.getMaxPrayer()); - prayBar.setValue(v.getPrayer()); - prayBar.setLabelDisplayMode(ProgressBarComponent.LabelDisplayMode.FULL); - panel.getChildren().add(prayBar); - } - - body.getChildren().add(panel); - }); + body.getChildren().add(panel); + }); + } return body.render(graphics); }