Merge pull request #5981 from deathbeam/varbit-stuff
Move ChatMessageManager#refreshAll to client thread
This commit is contained in:
@@ -35,7 +35,6 @@ import java.util.Collection;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -49,6 +48,7 @@ import net.runelite.api.events.ResizeableChanged;
|
|||||||
import net.runelite.api.events.ScriptCallbackEvent;
|
import net.runelite.api.events.ScriptCallbackEvent;
|
||||||
import net.runelite.api.events.SetMessage;
|
import net.runelite.api.events.SetMessage;
|
||||||
import net.runelite.api.events.VarbitChanged;
|
import net.runelite.api.events.VarbitChanged;
|
||||||
|
import net.runelite.client.callback.ClientThread;
|
||||||
import net.runelite.client.config.ChatColorConfig;
|
import net.runelite.client.config.ChatColorConfig;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
|
|
||||||
@@ -57,18 +57,20 @@ public class ChatMessageManager
|
|||||||
{
|
{
|
||||||
private final Multimap<ChatMessageType, ChatColor> colorCache = HashMultimap.create();
|
private final Multimap<ChatMessageType, ChatColor> colorCache = HashMultimap.create();
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final ScheduledExecutorService executor;
|
|
||||||
private final ChatColorConfig chatColorConfig;
|
private final ChatColorConfig chatColorConfig;
|
||||||
|
private final ClientThread clientThread;
|
||||||
private int transparencyVarbit = -1;
|
private int transparencyVarbit = -1;
|
||||||
private final Queue<QueuedMessage> queuedMessages = new ConcurrentLinkedQueue<>();
|
private final Queue<QueuedMessage> queuedMessages = new ConcurrentLinkedQueue<>();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ChatMessageManager(Client client, ScheduledExecutorService executor,
|
private ChatMessageManager(
|
||||||
ChatColorConfig chatColorConfig)
|
Client client,
|
||||||
|
ChatColorConfig chatColorConfig,
|
||||||
|
ClientThread clientThread)
|
||||||
{
|
{
|
||||||
this.client = client;
|
this.client = client;
|
||||||
this.executor = executor;
|
|
||||||
this.chatColorConfig = chatColorConfig;
|
this.chatColorConfig = chatColorConfig;
|
||||||
|
this.clientThread = clientThread;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -95,7 +97,7 @@ public class ChatMessageManager
|
|||||||
if (event.getGroup().equals("textrecolor"))
|
if (event.getGroup().equals("textrecolor"))
|
||||||
{
|
{
|
||||||
loadColors();
|
loadColors();
|
||||||
refreshAll();
|
clientThread.invokeLater(this::refreshAll);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -594,15 +596,12 @@ public class ChatMessageManager
|
|||||||
|
|
||||||
private void refreshAll()
|
private void refreshAll()
|
||||||
{
|
{
|
||||||
executor.submit(() ->
|
client.getChatLineMap().values().stream()
|
||||||
{
|
.filter(Objects::nonNull)
|
||||||
client.getChatLineMap().values().stream()
|
.flatMap(clb -> Arrays.stream(clb.getLines()))
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.flatMap(clb -> Arrays.stream(clb.getLines()))
|
.forEach(this::update);
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.forEach(this::update);
|
|
||||||
|
|
||||||
client.refreshChat();
|
client.refreshChat();
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user