Merge branch 'master' into dps

This commit is contained in:
Adam
2019-05-11 21:07:57 -04:00
5 changed files with 41 additions and 2 deletions

View File

@@ -34,5 +34,6 @@ import net.runelite.http.api.ws.WebsocketMessage;
public class UserJoin extends WebsocketMessage public class UserJoin extends WebsocketMessage
{ {
private final UUID memberId; private final UUID memberId;
private final UUID partyId;
private final String name; private final String name;
} }

View File

@@ -548,8 +548,14 @@ public class ChatMessageManager
{ {
if (!queuedMessages.isEmpty()) if (!queuedMessages.isEmpty())
{ {
queuedMessages.forEach(this::add); try
queuedMessages.clear(); {
queuedMessages.forEach(this::add);
}
finally
{
queuedMessages.clear();
}
} }
} }

View File

@@ -26,12 +26,14 @@ package net.runelite.client.chat;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NonNull;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
@Data @Data
@Builder @Builder
public class QueuedMessage public class QueuedMessage
{ {
@NonNull
private final ChatMessageType type; private final ChatMessageType type;
private final String value; private final String value;
private String name; private String name;

View File

@@ -37,6 +37,7 @@ import java.util.Map;
import java.util.UUID; import java.util.UUID;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType; import net.runelite.api.ChatMessageType;
@@ -48,6 +49,7 @@ import net.runelite.api.Skill;
import net.runelite.api.SoundEffectID; import net.runelite.api.SoundEffectID;
import net.runelite.api.Tile; import net.runelite.api.Tile;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.CommandExecuted;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.MenuOptionClicked;
@@ -120,6 +122,10 @@ public class PartyPlugin extends Plugin implements KeyListener
@Inject @Inject
private ChatMessageManager chatMessageManager; private ChatMessageManager chatMessageManager;
@Inject
@Named("developerMode")
boolean developerMode;
@Getter @Getter
private final Map<UUID, PartyData> partyDataMap = Collections.synchronizedMap(new HashMap<>()); private final Map<UUID, PartyData> partyDataMap = Collections.synchronizedMap(new HashMap<>());
@@ -448,6 +454,23 @@ public class PartyPlugin extends Plugin implements KeyListener
worldMapManager.removeIf(PartyWorldMapPoint.class::isInstance); worldMapManager.removeIf(PartyWorldMapPoint.class::isInstance);
} }
@Subscribe
public void onCommandExecuted(CommandExecuted commandExecuted)
{
if (!developerMode || !commandExecuted.getCommand().equals("partyinfo"))
{
return;
}
chatMessageManager.queue(QueuedMessage.builder().type(ChatMessageType.GAMEMESSAGE).value("Party " + party.getPartyId()).build());
chatMessageManager.queue(QueuedMessage.builder().type(ChatMessageType.GAMEMESSAGE).value("Local Party " + party.getLocalPartyId()).build());
chatMessageManager.queue(QueuedMessage.builder().type(ChatMessageType.GAMEMESSAGE).value("Local ID " + party.getLocalMember().getMemberId()).build());
for (PartyMember partyMember : party.getMembers())
{
chatMessageManager.queue(QueuedMessage.builder().type(ChatMessageType.GAMEMESSAGE).value(" " + partyMember.getName() + " " + partyMember.getMemberId()).build());
}
}
@Nullable @Nullable
PartyData getPartyData(final UUID uuid) PartyData getPartyData(final UUID uuid)
{ {

View File

@@ -114,6 +114,13 @@ public class PartyService
@Subscribe @Subscribe
public void onUserJoin(final UserJoin message) public void onUserJoin(final UserJoin message)
{ {
if (!partyId.equals(message.getPartyId()))
{
// This can happen when a session is resumed server side after the client party
// changes when disconnected.
return;
}
final PartyMember partyMember = new PartyMember(message.getMemberId(), message.getName()); final PartyMember partyMember = new PartyMember(message.getMemberId(), message.getName());
members.add(partyMember); members.add(partyMember);