ChatboxPerformancePlugin: Hook the cs2 to know when to rebuild
This commit is contained in:
@@ -26,12 +26,15 @@ package net.runelite.client.plugins.chatboxperformance;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.events.ClientTick;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetPositionMode;
|
||||
import net.runelite.api.widgets.WidgetSizeMode;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -45,36 +48,35 @@ public class ChatboxPerformancePlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@Override
|
||||
public void startUp()
|
||||
{
|
||||
if (client.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
clientThread.invokeLater(() -> client.runScript(ScriptID.RESET_CHATBOX_INPUT));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
if (client.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
clientThread.invokeLater(() -> client.runScript(ScriptID.RESET_CHATBOX_INPUT));
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onClientTick(ClientTick event)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent ev)
|
||||
{
|
||||
if (!areWidgetsFixed())
|
||||
if (!"chatboxBackgroundBuilt".equals(ev.getEventName()))
|
||||
{
|
||||
fixChatbox();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean areWidgetsFixed()
|
||||
{
|
||||
Widget widget = client.getWidget(WidgetInfo.CHATBOX_TRANSPARENT_BACKGROUND);
|
||||
if (widget == null)
|
||||
{
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
Widget[] widgets = widget.getChildren();
|
||||
|
||||
if (widgets != null && widgets.length > 0)
|
||||
{
|
||||
Widget last = widgets[widgets.length - 1];
|
||||
return last != null && last.getOpacity() < 254;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void fixChatbox()
|
||||
{
|
||||
fixDarkBackground();
|
||||
fixWhiteLines(true);
|
||||
fixWhiteLines(false);
|
||||
|
||||
Reference in New Issue
Block a user