emoji: clean up modicons loading

This just needs to be run after modicons is initialized, and doesn't
need to be checked on gamestate change.
This commit is contained in:
Adam
2022-05-06 21:45:39 -04:00
parent 026395fad5
commit 44de746d5b
2 changed files with 33 additions and 30 deletions

View File

@@ -37,7 +37,6 @@ import net.runelite.api.IndexedSprite;
import net.runelite.api.MessageNode;
import net.runelite.api.Player;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.OverheadTextChanged;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.eventbus.Subscribe;
@@ -67,27 +66,27 @@ public class EmojiPlugin extends Plugin
@Override
protected void startUp()
{
clientThread.invoke(this::loadEmojiIcons);
}
@Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged)
{
if (gameStateChanged.getGameState() == GameState.LOGGED_IN)
clientThread.invoke(() ->
{
if (client.getModIcons() == null)
{
return false;
}
loadEmojiIcons();
}
return true;
});
}
private void loadEmojiIcons()
{
final IndexedSprite[] modIcons = client.getModIcons();
if (modIconsStart != -1 || modIcons == null)
if (modIconsStart != -1)
{
return;
}
final Emoji[] emojis = Emoji.values();
final IndexedSprite[] modIcons = client.getModIcons();
assert modIcons != null;
final IndexedSprite[] newModIcons = Arrays.copyOf(modIcons, modIcons.length + emojis.length);
modIconsStart = modIcons.length;