Fix starting party without everyone
This commit is contained in:
@@ -51,6 +51,7 @@ public class RaidsPartyOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
public static final String PARTY_OVERLAY_DEBUG = "Debug";
|
public static final String PARTY_OVERLAY_DEBUG = "Debug";
|
||||||
public static final String PARTY_OVERLAY_RESET = "Reset missing";
|
public static final String PARTY_OVERLAY_RESET = "Reset missing";
|
||||||
|
public static final String PARTY_OVERLAY_REFRESH = "Refresh party";
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
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_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_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_RESET, "Raids party overlay"));
|
||||||
|
getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, PARTY_OVERLAY_REFRESH, "Raids party overlay"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -235,8 +235,8 @@ public class RaidsPlugin extends Plugin
|
|||||||
startingPartyMembers.clear();
|
startingPartyMembers.clear();
|
||||||
missingPartyMembers.clear();
|
missingPartyMembers.clear();
|
||||||
|
|
||||||
partyMembers.addAll(Lists.transform(players, Player::getName));
|
startingPartyMembers.addAll(Lists.transform(players, Player::getName));
|
||||||
startingPartyMembers.addAll(partyMembers);
|
partyMembers.addAll(startingPartyMembers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,15 +296,21 @@ public class RaidsPlugin extends Plugin
|
|||||||
switch (entry.getOption()) {
|
switch (entry.getOption()) {
|
||||||
case RaidsPartyOverlay.PARTY_OVERLAY_DEBUG:
|
case RaidsPartyOverlay.PARTY_OVERLAY_DEBUG:
|
||||||
System.out.println("Starting players: ");
|
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: ");
|
System.out.println("Current players: ");
|
||||||
getPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
|
getPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
|
||||||
System.out.println("Missing players: ");
|
System.out.println("Missing players: ");
|
||||||
getMissingPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
|
getMissingPartyMembers().stream().map(player -> "* " + player).forEach(System.out::println);
|
||||||
break;
|
break;
|
||||||
case RaidsPartyOverlay.PARTY_OVERLAY_RESET:
|
case RaidsPartyOverlay.PARTY_OVERLAY_RESET:
|
||||||
|
startingPartyMembers.clear();
|
||||||
updatePartyMembers(true);
|
updatePartyMembers(true);
|
||||||
|
startingPartyMembers.addAll(partyMembers);
|
||||||
|
missingPartyMembers.clear();
|
||||||
break;
|
break;
|
||||||
|
case RaidsPartyOverlay.PARTY_OVERLAY_REFRESH:
|
||||||
|
updatePartyMembers(true);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -317,14 +323,8 @@ public class RaidsPlugin extends Plugin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (force) {
|
if (startingPartyMembers.size() == partySize && !force) {
|
||||||
partyMembers.clear();
|
// Skip update if the part is as big as when we started
|
||||||
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
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@ public class RaidsPlugin extends Plugin
|
|||||||
try {
|
try {
|
||||||
widgets = client.getWidget(WidgetInfo.RAIDING_PARTY).getStaticChildren()[2].getStaticChildren()[3].getDynamicChildren();
|
widgets = client.getWidget(WidgetInfo.RAIDING_PARTY).getStaticChildren()[2].getStaticChildren()[3].getDynamicChildren();
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
return; // Raid widget not (fully) loaded yet
|
return; // Raid widget not loaded
|
||||||
}
|
}
|
||||||
|
|
||||||
partyMembers.clear();
|
partyMembers.clear();
|
||||||
@@ -349,8 +349,8 @@ public class RaidsPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there are more people now than there were, update starting members
|
// If we don't have any starting members, update starting members
|
||||||
if (partySize > startingPartyMembers.size()) {
|
if (startingPartyMembers.size() == 0 || force) {
|
||||||
missingPartyMembers.clear();
|
missingPartyMembers.clear();
|
||||||
startingPartyMembers.clear();
|
startingPartyMembers.clear();
|
||||||
startingPartyMembers.addAll(partyMembers);
|
startingPartyMembers.addAll(partyMembers);
|
||||||
|
|||||||
Reference in New Issue
Block a user