Fix starting party without everyone

This commit is contained in:
bjornenalfa
2019-03-10 13:05:05 +01:00
parent a950763a92
commit a865079862
2 changed files with 16 additions and 14 deletions

View File

@@ -51,6 +51,7 @@ public class RaidsPartyOverlay extends Overlay
{
public static final String PARTY_OVERLAY_DEBUG = "Debug";
public static final String PARTY_OVERLAY_RESET = "Reset missing";
public static final String PARTY_OVERLAY_REFRESH = "Refresh party";
@Inject
private Client client;
@@ -69,6 +70,7 @@ public class RaidsPartyOverlay extends Overlay
getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Raids party overlay"));
getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, PARTY_OVERLAY_DEBUG, "Raids party overlay"));
getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, PARTY_OVERLAY_RESET, "Raids party overlay"));
getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, PARTY_OVERLAY_REFRESH, "Raids party overlay"));
}
@Override

View File

@@ -235,8 +235,8 @@ public class RaidsPlugin extends Plugin
startingPartyMembers.clear();
missingPartyMembers.clear();
partyMembers.addAll(Lists.transform(players, Player::getName));
startingPartyMembers.addAll(partyMembers);
startingPartyMembers.addAll(Lists.transform(players, Player::getName));
partyMembers.addAll(startingPartyMembers);
}
}
@@ -296,15 +296,21 @@ public class RaidsPlugin extends Plugin
switch (entry.getOption()) {
case RaidsPartyOverlay.PARTY_OVERLAY_DEBUG:
System.out.println("Starting players: ");
getPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
getStartingPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
System.out.println("Current players: ");
getPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
System.out.println("Missing players: ");
getMissingPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
break;
case RaidsPartyOverlay.PARTY_OVERLAY_RESET:
startingPartyMembers.clear();
updatePartyMembers(true);
startingPartyMembers.addAll(partyMembers);
missingPartyMembers.clear();
break;
case RaidsPartyOverlay.PARTY_OVERLAY_REFRESH:
updatePartyMembers(true);
break;
default:
break;
}
@@ -317,14 +323,8 @@ public class RaidsPlugin extends Plugin
return;
}
if (force) {
partyMembers.clear();
startingPartyMembers.clear();
missingPartyMembers.clear();
}
if (startingPartyMembers.size() == partySize) {
// Skip update if we have a list of starting party members the same size as current party
if (startingPartyMembers.size() == partySize && !force) {
// Skip update if the part is as big as when we started
return;
}
@@ -334,7 +334,7 @@ public class RaidsPlugin extends Plugin
try {
widgets = client.getWidget(WidgetInfo.RAIDING_PARTY).getStaticChildren()[2].getStaticChildren()[3].getDynamicChildren();
} catch (NullPointerException e) {
return; // Raid widget not (fully) loaded yet
return; // Raid widget not loaded
}
partyMembers.clear();
@@ -349,8 +349,8 @@ public class RaidsPlugin extends Plugin
}
}
// If there are more people now than there were, update starting members
if (partySize > startingPartyMembers.size()) {
// If we don't have any starting members, update starting members
if (startingPartyMembers.size() == 0 || force) {
missingPartyMembers.clear();
startingPartyMembers.clear();
startingPartyMembers.addAll(partyMembers);