client: move core singleton eventbus registration to singleton constructors

This commit is contained in:
Adam
2021-02-18 19:40:33 -05:00
parent 28b291f9b9
commit e0be69c725
13 changed files with 76 additions and 117 deletions

View File

@@ -56,32 +56,20 @@ import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.client.account.SessionManager;
import net.runelite.client.callback.Hooks;
import net.runelite.client.chat.ChatMessageManager;
import net.runelite.client.chat.CommandManager;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.discord.DiscordService;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.externalplugins.ExternalPluginManager;
import net.runelite.client.game.FriendChatManager;
import net.runelite.client.game.ItemManager;
import net.runelite.client.game.LootManager;
import net.runelite.client.game.chatbox.ChatboxPanelManager;
import net.runelite.client.menus.MenuManager;
import net.runelite.client.plugins.PluginManager;
import net.runelite.client.rs.ClientLoader;
import net.runelite.client.rs.ClientUpdateCheckMode;
import net.runelite.client.ui.ClientUI;
import net.runelite.client.ui.DrawManager;
import net.runelite.client.ui.FatalErrorDialog;
import net.runelite.client.ui.SplashScreen;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.ui.overlay.OverlayRenderer;
import net.runelite.client.ui.overlay.WidgetOverlay;
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
import net.runelite.client.ui.overlay.tooltip.TooltipOverlay;
import net.runelite.client.ui.overlay.worldmap.WorldMapOverlay;
import net.runelite.client.ws.PartyService;
import net.runelite.http.api.RuneLiteAPI;
import okhttp3.Cache;
import okhttp3.OkHttpClient;
@@ -117,9 +105,6 @@ public class RuneLite
@Inject
private ConfigManager configManager;
@Inject
private DrawManager drawManager;
@Inject
private SessionManager sessionManager;
@@ -132,48 +117,15 @@ public class RuneLite
@Inject
private ClientUI clientUI;
@Inject
private Provider<InfoBoxManager> infoBoxManager;
@Inject
private OverlayManager overlayManager;
@Inject
private Provider<PartyService> partyService;
@Inject
private Provider<ItemManager> itemManager;
@Inject
private Provider<OverlayRenderer> overlayRenderer;
@Inject
private Provider<FriendChatManager> friendsChatManager;
@Inject
private Provider<ChatMessageManager> chatMessageManager;
@Inject
private Provider<MenuManager> menuManager;
@Inject
private Provider<CommandManager> commandManager;
@Inject
private Provider<TooltipOverlay> tooltipOverlay;
@Inject
private Provider<WorldMapOverlay> worldMapOverlay;
@Inject
private Provider<LootManager> lootManager;
@Inject
private Provider<ChatboxPanelManager> chatboxPanelManager;
@Inject
private Provider<Hooks> hooks;
@Inject
@Nullable
private Client client;
@@ -362,27 +314,11 @@ public class RuneLite
eventBus.register(pluginManager);
eventBus.register(externalPluginManager);
eventBus.register(overlayManager);
eventBus.register(drawManager);
eventBus.register(configManager);
eventBus.register(discordService);
if (!isOutdated)
{
// Initialize chat colors
chatMessageManager.get().loadColors();
eventBus.register(infoBoxManager.get());
eventBus.register(partyService.get());
eventBus.register(overlayRenderer.get());
eventBus.register(friendsChatManager.get());
eventBus.register(itemManager.get());
eventBus.register(menuManager.get());
eventBus.register(chatMessageManager.get());
eventBus.register(commandManager.get());
eventBus.register(lootManager.get());
eventBus.register(chatboxPanelManager.get());
eventBus.register(hooks.get());
// Add core overlays
WidgetOverlay.createOverlays(client).forEach(overlayManager::add);
overlayManager.add(worldMapOverlay.get());

View File

@@ -83,44 +83,19 @@ public class Hooks implements Callbacks
private static final GameTick GAME_TICK = new GameTick();
private static final BeforeRender BEFORE_RENDER = new BeforeRender();
@Inject
private Client client;
@Inject
private OverlayRenderer renderer;
@Inject
private EventBus eventBus;
@Inject
private DeferredEventBus deferredEventBus;
@Inject
private Scheduler scheduler;
@Inject
private InfoBoxManager infoBoxManager;
@Inject
private ChatMessageManager chatMessageManager;
@Inject
private MouseManager mouseManager;
@Inject
private KeyManager keyManager;
@Inject
private ClientThread clientThread;
@Inject
private DrawManager drawManager;
@Inject
private Notifier notifier;
@Inject
private ClientUI clientUi;
private final Client client;
private final OverlayRenderer renderer;
private final EventBus eventBus;
private final DeferredEventBus deferredEventBus;
private final Scheduler scheduler;
private final InfoBoxManager infoBoxManager;
private final ChatMessageManager chatMessageManager;
private final MouseManager mouseManager;
private final KeyManager keyManager;
private final ClientThread clientThread;
private final DrawManager drawManager;
private final Notifier notifier;
private final ClientUI clientUi;
private Dimension lastStretchedDimensions;
private VolatileImage stretchedImage;
@@ -155,6 +130,39 @@ public class Hooks implements Callbacks
return lastGraphics;
}
@Inject
private Hooks(
Client client,
OverlayRenderer renderer,
EventBus eventBus,
DeferredEventBus deferredEventBus,
Scheduler scheduler,
InfoBoxManager infoBoxManager,
ChatMessageManager chatMessageManager,
MouseManager mouseManager,
KeyManager keyManager,
ClientThread clientThread,
DrawManager drawManager,
Notifier notifier,
ClientUI clientUi
)
{
this.client = client;
this.renderer = renderer;
this.eventBus = eventBus;
this.deferredEventBus = deferredEventBus;
this.scheduler = scheduler;
this.infoBoxManager = infoBoxManager;
this.chatMessageManager = chatMessageManager;
this.mouseManager = mouseManager;
this.keyManager = keyManager;
this.clientThread = clientThread;
this.drawManager = drawManager;
this.notifier = notifier;
this.clientUi = clientUi;
eventBus.register(this);
}
@Override
public void post(Object event)
{

View File

@@ -50,6 +50,7 @@ import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.events.VarbitChanged;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ChatColorConfig;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.events.ConfigChanged;
import net.runelite.client.ui.JagexColors;
@@ -72,11 +73,14 @@ public class ChatMessageManager
private ChatMessageManager(
Client client,
ChatColorConfig chatColorConfig,
ClientThread clientThread)
ClientThread clientThread,
EventBus eventBus)
{
this.client = client;
this.chatColorConfig = chatColorConfig;
this.clientThread = clientThread;
eventBus.register(this);
loadColors();
}
@Subscribe
@@ -254,7 +258,7 @@ public class ChatMessageManager
/**
* Load all configured colors
*/
public void loadColors()
private void loadColors()
{
colorCache.clear();

View File

@@ -63,6 +63,7 @@ public class CommandManager
this.client = client;
this.eventBus = eventBus;
this.clientThread = clientThread;
eventBus.register(this);
}
public void register(ChatboxInputListener chatboxInputListener)

View File

@@ -45,6 +45,7 @@ import net.runelite.api.IndexedSprite;
import net.runelite.api.SpriteID;
import net.runelite.api.events.FriendsChatChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.util.ImageUtil;
import net.runelite.client.util.Text;
@@ -93,10 +94,11 @@ public class FriendChatManager
private int offset;
@Inject
private FriendChatManager(Client client, SpriteManager spriteManager)
private FriendChatManager(Client client, SpriteManager spriteManager, EventBus eventBus)
{
this.client = client;
this.spriteManager = spriteManager;
eventBus.register(this);
}
public boolean isMember(String name)

View File

@@ -55,6 +55,7 @@ import net.runelite.api.SpritePixels;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.PostItemComposition;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.util.AsyncBufferedImage;
import net.runelite.http.api.item.ItemClient;
@@ -169,7 +170,7 @@ public class ItemManager
@Inject
public ItemManager(Client client, ScheduledExecutorService scheduledExecutorService, ClientThread clientThread,
OkHttpClient okHttpClient)
OkHttpClient okHttpClient, EventBus eventBus)
{
this.client = client;
this.clientThread = clientThread;
@@ -213,6 +214,8 @@ public class ItemManager
return loadItemOutline(key.itemId, key.itemQuantity, key.outlineColor);
}
});
eventBus.register(this);
}
private void loadPrices()

View File

@@ -84,6 +84,7 @@ public class LootManager
{
this.eventBus = eventBus;
this.client = client;
eventBus.register(this);
}
@Subscribe

View File

@@ -79,6 +79,8 @@ public class ChatboxPanelManager
this.chatboxTextMenuInputProvider = chatboxTextMenuInputProvider;
this.chatboxTextInputProvider = chatboxTextInputProvider;
eventBus.register(this);
}
public void close()

View File

@@ -24,7 +24,6 @@
*/
package net.runelite.client.menus;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;
@@ -65,11 +64,11 @@ public class MenuManager
private final Multimap<Integer, WidgetMenuOption> managedMenuOptions = LinkedHashMultimap.create();
@Inject
@VisibleForTesting
MenuManager(Client client, EventBus eventBus)
private MenuManager(Client client, EventBus eventBus)
{
this.client = client;
this.eventBus = eventBus;
eventBus.register(this);
}
/**

View File

@@ -58,6 +58,7 @@ import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.api.widgets.WidgetItem;
import net.runelite.client.config.RuneLiteConfig;
import net.runelite.client.eventbus.EventBus;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
@@ -113,7 +114,8 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
final RuneLiteConfig runeLiteConfig,
final MouseManager mouseManager,
final KeyManager keyManager,
final ClientUI clientUI)
final ClientUI clientUI,
final EventBus eventBus)
{
this.client = client;
this.overlayManager = overlayManager;
@@ -121,6 +123,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
this.clientUI = clientUI;
keyManager.registerKeyListener(this);
mouseManager.registerMouseListener(this);
eventBus.register(this);
}
@Subscribe

View File

@@ -95,6 +95,7 @@ public class InfoBoxManager
this.eventBus = eventBus;
this.overlayManager = overlayManager;
this.configManager = configManager;
eventBus.register(this);
}
@Subscribe

View File

@@ -78,6 +78,7 @@ public class PartyService
this.sessionManager = sessionManager;
this.eventBus = eventBus;
this.chat = chat;
eventBus.register(this);
}
public void changeParty(UUID newParty)

View File

@@ -35,6 +35,7 @@ import net.runelite.api.MessageNode;
import net.runelite.api.Player;
import net.runelite.api.events.ChatMessage;
import net.runelite.client.config.ChatColorConfig;
import net.runelite.client.events.ConfigChanged;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -62,8 +63,6 @@ public class ChatMessageManagerTest
public void before()
{
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
chatMessageManager.loadColors();
}
@Test
@@ -71,7 +70,10 @@ public class ChatMessageManagerTest
{
when(chatColorConfig.opaqueServerMessage()).thenReturn(Color.decode("#b20000"));
chatMessageManager.loadColors();
// rebuild color cache
ConfigChanged configChanged = new ConfigChanged();
configChanged.setGroup("textrecolor");
chatMessageManager.onConfigChanged(configChanged);
ChatMessage chatMessage = new ChatMessage();
chatMessage.setType(ChatMessageType.GAMEMESSAGE);
@@ -93,8 +95,6 @@ public class ChatMessageManagerTest
when(chatColorConfig.opaquePublicFriendUsernames()).thenReturn(Color.decode("#b20000"));
chatMessageManager.loadColors();
// Setup message
ChatMessage chatMessage = new ChatMessage();
chatMessage.setType(ChatMessageType.PUBLICCHAT);
@@ -125,8 +125,6 @@ public class ChatMessageManagerTest
when(chatColorConfig.opaquePublicFriendUsernames()).thenReturn(Color.decode("#b20000"));
chatMessageManager.loadColors();
// Setup message
ChatMessage chatMessage = new ChatMessage();
chatMessage.setType(ChatMessageType.PUBLICCHAT);