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
{
private final UUID memberId;
private final UUID partyId;
private final String name;
}

View File

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

View File

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

View File

@@ -37,6 +37,7 @@ import java.util.Map;
import java.util.UUID;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Named;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType;
@@ -48,6 +49,7 @@ import net.runelite.api.Skill;
import net.runelite.api.SoundEffectID;
import net.runelite.api.Tile;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.CommandExecuted;
import net.runelite.api.events.FocusChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuOptionClicked;
@@ -120,6 +122,10 @@ public class PartyPlugin extends Plugin implements KeyListener
@Inject
private ChatMessageManager chatMessageManager;
@Inject
@Named("developerMode")
boolean developerMode;
@Getter
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);
}
@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
PartyData getPartyData(final UUID uuid)
{

View File

@@ -114,6 +114,13 @@ public class PartyService
@Subscribe
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());
members.add(partyMember);