From 3de05dec6450ee0661adf66750b3ff1bb6e92d9e Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sat, 13 Jul 2019 07:19:52 +0200 Subject: [PATCH 01/15] RxJava 'eventbus' --- runelite-client/pom.xml | 10 + .../java/net/runelite/client/RuneLite.java | 61 ----- .../net/runelite/client/RuneLiteModule.java | 3 +- .../client/account/SessionManager.java | 15 +- .../net/runelite/client/callback/Hooks.java | 3 +- .../client/chat/ChatCommandManager.java | 12 +- .../client/chat/ChatMessageManager.java | 39 +-- .../runelite/client/chat/CommandManager.java | 15 +- .../runelite/client/config/ConfigManager.java | 3 +- .../client/discord/DiscordService.java | 5 +- .../runelite/client/eventbus/EventBus.java | 223 +----------------- .../eventbus/EventBusImplementation.java | 50 ++++ .../runelite/client/eventbus/Subscribe.java | 41 ---- .../net/runelite/client/game/ClanManager.java | 20 +- .../net/runelite/client/game/ItemManager.java | 22 +- .../net/runelite/client/game/LootManager.java | 52 ++-- .../game/chatbox/ChatboxPanelManager.java | 21 +- .../runelite/client/menus/MenuManager.java | 49 ++-- .../net/runelite/client/plugins/Plugin.java | 10 + .../client/plugins/PluginManager.java | 23 +- .../plugins/aoewarnings/AoeWarningPlugin.java | 64 ++++- .../plugins/barbarianassault/Scorecard.java | 1 - .../client/plugins/cannon/CannonPlugin.java | 65 ++++- .../client/plugins/devtools/VarInspector.java | 9 +- .../client/plugins/gpu/GpuPlugin.java | 57 ++++- .../client/plugins/info/InfoPanel.java | 9 +- .../client/plugins/info/InfoPlugin.java | 34 ++- .../client/plugins/mta/MTAPlugin.java | 7 +- .../npchighlight/NpcIndicatorsPlugin.java | 101 ++++++-- .../ObjectIndicatorsPlugin.java | 104 ++++++-- .../runeliteplus/RuneLitePlusPlugin.java | 28 ++- .../data/LootRecordWriter.java | 5 +- .../plugins/wintertodt/WintertodtPlugin.java | 66 +++++- .../net/runelite/client/ui/ClientToolbar.java | 5 +- .../java/net/runelite/client/ui/ClientUI.java | 29 ++- .../client/ui/overlay/OverlayManager.java | 18 +- .../client/ui/overlay/OverlayRenderer.java | 28 ++- .../ui/overlay/infobox/InfoBoxManager.java | 9 +- .../client/util/DeferredEventBus.java | 23 +- .../client/util/GameEventManager.java | 7 +- .../net/runelite/client/ws/PartyService.java | 20 +- .../java/net/runelite/client/ws/WSClient.java | 5 +- 42 files changed, 775 insertions(+), 596 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/eventbus/Subscribe.java diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index e30b7deb73..b5bf50d355 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -300,6 +300,16 @@ httpmime 4.5.9 + + io.reactivex.rxjava2 + rxjava + 2.2.10 + + + com.jakewharton.rxrelay2 + rxrelay + 2.1.0 + diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index 1fa6aeb5b3..2993fdf108 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -48,16 +48,9 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.client.account.SessionManager; 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.game.ClanManager; -import net.runelite.client.game.ItemManager; -import net.runelite.client.game.LootManager; -import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.graphics.ModelOutlineRenderer; -import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginInstantiationException; import net.runelite.client.plugins.PluginManager; @@ -65,18 +58,14 @@ import net.runelite.client.rs.ClientLoader; import net.runelite.client.rs.ClientUpdateCheckMode; import net.runelite.client.task.Scheduler; import net.runelite.client.ui.ClientUI; -import net.runelite.client.ui.DrawManager; import net.runelite.client.ui.RuneLiteSplashScreen; 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.arrow.ArrowMinimapOverlay; import net.runelite.client.ui.overlay.arrow.ArrowWorldOverlay; -import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay; import net.runelite.client.ui.overlay.tooltip.TooltipOverlay; import net.runelite.client.ui.overlay.worldmap.WorldMapOverlay; -import net.runelite.client.ws.PartyService; import org.slf4j.LoggerFactory; @Singleton @@ -97,15 +86,9 @@ public class RuneLite @Inject private PluginManager pluginManager; - @Inject - private EventBus eventBus; - @Inject private ConfigManager configManager; - @Inject - private DrawManager drawManager; - @Inject private SessionManager sessionManager; @@ -118,33 +101,12 @@ public class RuneLite @Inject private ClientUI clientUI; - @Inject - private InfoBoxManager infoBoxManager; - @Inject private OverlayManager overlayManager; - @Inject - private PartyService partyService; - - @Inject - private Provider itemManager; - - @Inject - private Provider overlayRenderer; - - @Inject - private Provider clanManager; - @Inject private Provider chatMessageManager; - @Inject - private Provider menuManager; - - @Inject - private Provider commandManager; - @Inject private Provider infoBoxOverlay; @@ -160,12 +122,6 @@ public class RuneLite @Inject private Provider arrowMinimapOverlay; - @Inject - private Provider lootManager; - - @Inject - private Provider chatboxPanelManager; - @Inject @Nullable private Client client; @@ -351,28 +307,11 @@ public class RuneLite // Close the splash screen splashScreen.close(); - // Register event listeners - eventBus.register(clientUI); - eventBus.register(pluginManager); - eventBus.register(overlayManager); - eventBus.register(drawManager); - eventBus.register(infoBoxManager); - eventBus.register(partyService); - if (!isOutdated) { // Initialize chat colors chatMessageManager.get().loadColors(); - eventBus.register(overlayRenderer.get()); - eventBus.register(clanManager.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()); - // Add core overlays WidgetOverlay.createOverlays(client).forEach(overlayManager::add); overlayManager.add(infoBoxOverlay.get()); diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java index f394c17f40..22813b4c0a 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java @@ -42,6 +42,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.RuneLitePlusConfig; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.game.ItemManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.PluginManager; @@ -84,7 +85,7 @@ public class RuneLiteModule extends AbstractModule bind(Callbacks.class).to(Hooks.class); bind(EventBus.class) - .toInstance(new EventBus()); + .toInstance(new EventBusImplementation()); bind(EventBus.class) .annotatedWith(Names.named("Deferred EventBus")) diff --git a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java index 4caef359c3..75e8ec8212 100644 --- a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java +++ b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java @@ -25,6 +25,7 @@ package net.runelite.client.account; import com.google.gson.Gson; +import io.reactivex.disposables.Disposable; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; @@ -39,7 +40,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.client.RuneLite; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.util.LinkBrowser; @@ -57,17 +58,20 @@ public class SessionManager @Getter private AccountSession accountSession; - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final ConfigManager configManager; private final WSClient wsClient; @Inject - private SessionManager(ConfigManager configManager, EventBus eventBus, WSClient wsClient) + private SessionManager(ConfigManager configManager, EventBusImplementation eventBus, WSClient wsClient) { this.configManager = configManager; this.eventBus = eventBus; this.wsClient = wsClient; - eventBus.register(this); + + this.eventBus + .observableOfType(LoginResponse.class) + .subscribe(this::onLoginResponse); } public void loadSession() @@ -207,8 +211,7 @@ public class SessionManager LinkBrowser.browse(login.getOauthUrl()); } - @Subscribe - public void onLoginResponse(LoginResponse loginResponse) + private void onLoginResponse(LoginResponse loginResponse) { log.debug("Now logged in as {}", loginResponse.getUsername()); diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index 5c53677308..8d1873a20f 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -60,6 +60,7 @@ import net.runelite.client.Notifier; import net.runelite.client.RuneLite; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseManager; import net.runelite.client.task.Scheduler; @@ -88,7 +89,7 @@ public class Hooks implements Callbacks private static final OverlayManager overlayManager = injector.getInstance(OverlayManager.class); @Inject - private EventBus eventBus; + private EventBusImplementation eventBus; @Inject private DeferredEventBus deferredEventBus; diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java index f930992d08..c19a84a405 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java @@ -35,7 +35,7 @@ import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.ChatMessage; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.ChatInput; import net.runelite.client.events.ChatboxInput; import net.runelite.client.events.PrivateMessageInput; @@ -49,12 +49,15 @@ public class ChatCommandManager implements ChatboxInputListener private final ScheduledExecutorService scheduledExecutorService; @Inject - private ChatCommandManager(EventBus eventBus, CommandManager commandManager, Client client, ScheduledExecutorService scheduledExecutorService) + private ChatCommandManager(EventBusImplementation eventBus, CommandManager commandManager, Client client, ScheduledExecutorService scheduledExecutorService) { this.client = client; this.scheduledExecutorService = scheduledExecutorService; - eventBus.register(this); + // eventBus.register(this); commandManager.register(this); + + eventBus.observableOfType(ChatMessage.class) + .subscribe(this::onChatMessage); } public void registerCommand(String command, BiConsumer execute) @@ -82,8 +85,7 @@ public class ChatCommandManager implements ChatboxInputListener commands.remove(command.toLowerCase()); } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOGGED_IN) { diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index c571282a00..5baa5ba42a 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -52,7 +52,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.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.ui.JagexColors; import net.runelite.client.util.ColorUtil; @@ -70,17 +70,32 @@ public class ChatMessageManager @Inject private ChatMessageManager( - Client client, - ChatColorConfig chatColorConfig, - ClientThread clientThread) + final Client client, + final ChatColorConfig chatColorConfig, + final ClientThread clientThread, + final EventBusImplementation eventbus) { this.client = client; this.chatColorConfig = chatColorConfig; this.clientThread = clientThread; + + eventbus.observableOfType(VarbitChanged.class) + .subscribe(this::onVarbitChanged); + + eventbus.observableOfType(ResizeableChanged.class) + .subscribe(this::onResizeableChanged); + + eventbus.observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged); + + eventbus.observableOfType(ChatMessage.class) + .subscribe(this::onChatMessage); + + eventbus.observableOfType(ScriptCallbackEvent.class) + .subscribe(this::onScriptCallbackEvent); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { int setting = client.getVar(Varbits.TRANSPARENT_CHATBOX); @@ -91,14 +106,12 @@ public class ChatMessageManager } } - @Subscribe - public void onResizeableChanged(ResizeableChanged event) + private void onResizeableChanged(ResizeableChanged event) { refreshAll(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("textrecolor")) { @@ -107,8 +120,7 @@ public class ChatMessageManager } } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { MessageNode messageNode = chatMessage.getMessageNode(); ChatMessageType chatMessageType = chatMessage.getType(); @@ -173,8 +185,7 @@ public class ChatMessageManager } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent) + private void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent) { final String eventName = scriptCallbackEvent.getEventName(); diff --git a/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java index 7529fc6d56..fc07646f0a 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java @@ -37,8 +37,7 @@ import net.runelite.api.VarClientStr; import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.ChatboxInput; import net.runelite.client.events.PrivateMessageInput; @@ -51,18 +50,25 @@ public class CommandManager private static final String PRIVMATE_MESSAGE = "privateMessage"; private final Client client; - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final ClientThread clientThread; private boolean sending; private final List chatboxInputListenerList = new ArrayList<>(); @Inject - private CommandManager(Client client, EventBus eventBus, ClientThread clientThread) + private CommandManager( + final Client client, + final EventBusImplementation eventBus, + final ClientThread clientThread + ) { this.client = client; this.eventBus = eventBus; this.clientThread = clientThread; + + eventBus.observableOfType(ScriptCallbackEvent.class) + .subscribe(this::onScriptCallbackEvent); } public void register(ChatboxInputListener chatboxInputListener) @@ -75,7 +81,6 @@ public class CommandManager chatboxInputListenerList.remove(chatboxInputListener); } - @Subscribe private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (sending) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index b22c8e67a7..2a5ba38441 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -66,6 +66,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.client.RuneLite; import static net.runelite.client.RuneLite.PROFILES_DIR; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.util.ColorUtil; import net.runelite.client.ui.FontManager; @@ -79,7 +80,7 @@ public class ConfigManager private static final File STANDARD_SETTINGS_FILE = new File(RuneLite.RUNELITE_DIR, STANDARD_SETTINGS_FILE_NAME); @Inject - EventBus eventBus; + EventBusImplementation eventBus; private final ConfigInvocationHandler handler = new ConfigInvocationHandler(this); private final Properties properties = new Properties(); diff --git a/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java b/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java index 091c479ac6..7b6b858788 100644 --- a/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java +++ b/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java @@ -39,6 +39,7 @@ import net.runelite.client.discord.events.DiscordJoinRequest; import net.runelite.client.discord.events.DiscordReady; import net.runelite.client.discord.events.DiscordSpectateGame; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.discord.DiscordEventHandlers; import net.runelite.discord.DiscordRPC; import net.runelite.discord.DiscordRichPresence; @@ -48,7 +49,7 @@ import net.runelite.discord.DiscordUser; @Slf4j public class DiscordService implements AutoCloseable { - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final RuneLiteProperties runeLiteProperties; private final ScheduledExecutorService executorService; private final DiscordRPC discordRPC; @@ -61,7 +62,7 @@ public class DiscordService implements AutoCloseable @Inject private DiscordService( - final EventBus eventBus, + final EventBusImplementation eventBus, final RuneLiteProperties runeLiteProperties, final ScheduledExecutorService executorService) { diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java index a28f2f4371..cc8925c933 100644 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java @@ -25,225 +25,14 @@ */ package net.runelite.client.eventbus; -import com.google.common.base.Preconditions; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; -import java.lang.invoke.CallSite; -import java.lang.invoke.LambdaMetafactory; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.function.Consumer; -import javax.annotation.Nonnull; -import javax.annotation.concurrent.ThreadSafe; -import lombok.EqualsAndHashCode; -import lombok.RequiredArgsConstructor; -import lombok.Value; -import lombok.extern.slf4j.Slf4j; +import io.reactivex.Observable; +import java.util.List; -@Slf4j -@RequiredArgsConstructor -@ThreadSafe -public class EventBus +public interface EventBus { - @FunctionalInterface - public interface SubscriberMethod - { - void invoke(Object event); - } + void post(Object event); - @Value - private static class Subscriber - { - private final Object object; - private final Method method; - @EqualsAndHashCode.Exclude - private final SubscriberMethod lamda; + Observable observableOfType(Class eventClass); - void invoke(final Object arg) throws Exception - { - if (lamda != null) - { - lamda.invoke(arg); - } - else - { - method.invoke(object, arg); - } - } - } - - private final Consumer exceptionHandler; - private ImmutableMultimap subscribers = ImmutableMultimap.of(); - - /** - * Instantiates EventBus with default exception handler - */ - public EventBus() - { - this((e) -> log.warn("Uncaught exception in event subscriber", e)); - } - - /** - * Registers subscriber to EventBus. All methods in subscriber and it's parent classes are checked for - * {@link Subscribe} annotation and then added to map of subscriptions. - * - * @param object subscriber to register - * @throws IllegalArgumentException in case subscriber method name is wrong (correct format is 'on' + EventName - */ - public synchronized void register(@Nonnull final Object object) - { - final ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); - - if (subscribers != null) - { - builder.putAll(subscribers); - } - - for (Class clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass()) - { - for (final Method method : clazz.getDeclaredMethods()) - { - final Subscribe sub = method.getAnnotation(Subscribe.class); - - if (sub == null) - { - continue; - } - - Preconditions.checkArgument(method.getReturnType() == Void.TYPE, "@Subscribed method \"" + method + "\" cannot return a value"); - Preconditions.checkArgument(method.getParameterCount() == 1, "@Subscribed method \"" + method + "\" must take exactly 1 argument"); - Preconditions.checkArgument(!Modifier.isStatic(method.getModifiers()), "@Subscribed method \"" + method + "\" cannot be static"); - - final Class parameterClazz = method.getParameterTypes()[0]; - - Preconditions.checkArgument(!parameterClazz.isPrimitive(), "@Subscribed method \"" + method + "\" cannot subscribe to primitives"); - Preconditions.checkArgument((parameterClazz.getModifiers() & (Modifier.ABSTRACT | Modifier.INTERFACE)) == 0, "@Subscribed method \"" + method + "\" cannot subscribe to polymorphic classes"); - - for (Class psc = parameterClazz.getSuperclass(); psc != null; psc = psc.getSuperclass()) - { - if (subscribers.containsKey(psc)) - { - throw new IllegalArgumentException("@Subscribed method \"" + method + "\" cannot subscribe to class which inherits from subscribed class \"" + psc + "\""); - } - } - - final String preferredName = "on" + parameterClazz.getSimpleName(); - Preconditions.checkArgument(method.getName().equals(preferredName), "Subscribed method " + method + " should be named " + preferredName); - - method.setAccessible(true); - SubscriberMethod lambda = null; - - try - { - final MethodHandles.Lookup caller = privateLookupIn(clazz); - final MethodType subscription = MethodType.methodType(void.class, parameterClazz); - final MethodHandle target = caller.findVirtual(clazz, method.getName(), subscription); - final CallSite site = LambdaMetafactory.metafactory( - caller, - "invoke", - MethodType.methodType(SubscriberMethod.class, clazz), - subscription.changeParameterType(0, Object.class), - target, - subscription); - - final MethodHandle factory = site.getTarget(); - lambda = (SubscriberMethod) factory.bindTo(object).invokeExact(); - } - catch (Throwable e) - { - log.warn("Unable to create lambda for method {}", method, e); - } - - final Subscriber subscriber = new Subscriber(object, method, lambda); - builder.put(parameterClazz, subscriber); - log.debug("Registering {} - {}", parameterClazz, subscriber); - } - } - - subscribers = builder.build(); - } - - /** - * Unregisters all subscribed methods from provided subscriber object. - * - * @param object object to unsubscribe from - */ - public synchronized void unregister(@Nonnull final Object object) - { - if (subscribers == null) - { - return; - } - - final Multimap map = HashMultimap.create(); - map.putAll(subscribers); - - for (Class clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass()) - { - for (final Method method : clazz.getDeclaredMethods()) - { - final Subscribe sub = method.getAnnotation(Subscribe.class); - - if (sub == null) - { - continue; - } - - final Class parameterClazz = method.getParameterTypes()[0]; - map.remove(parameterClazz, new Subscriber(object, method, null)); - } - } - - subscribers = ImmutableMultimap.copyOf(map); - } - - /** - * Posts provided event to all registered subscribers. Subscriber calls are invoked immediately and in order - * in which subscribers were registered. - * - * @param event event to post - */ - public void post(@Nonnull final Object event) - { - for (final Subscriber subscriber : subscribers.get(event.getClass())) - { - try - { - subscriber.invoke(event); - } - catch (Exception e) - { - exceptionHandler.accept(e); - } - } - } - - private static MethodHandles.Lookup privateLookupIn(Class clazz) throws IllegalAccessException, NoSuchFieldException, InvocationTargetException - { - try - { - // Java 9+ has privateLookupIn method on MethodHandles, but since we are shipping and using Java 8 - // we need to access it via reflection. This is preferred way because it's Java 9+ public api and is - // likely to not change - final Method privateLookupIn = MethodHandles.class.getMethod("privateLookupIn", Class.class, MethodHandles.Lookup.class); - return (MethodHandles.Lookup) privateLookupIn.invoke(null, clazz, MethodHandles.lookup()); - } - catch (NoSuchMethodException e) - { - // In Java 8 we first do standard lookupIn class - final MethodHandles.Lookup lookupIn = MethodHandles.lookup().in(clazz); - - // and then we mark it as trusted for private lookup via reflection on private field - final Field modes = MethodHandles.Lookup.class.getDeclaredField("allowedModes"); - modes.setAccessible(true); - modes.setInt(lookupIn, -1); // -1 == TRUSTED - return lookupIn; - } - } + Observable observableOfTypes(List> eventClasses); } diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java new file mode 100644 index 0000000000..1ff22546ae --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java @@ -0,0 +1,50 @@ +package net.runelite.client.eventbus; + +import com.jakewharton.rxrelay2.PublishRelay; +import com.jakewharton.rxrelay2.Relay; +import io.reactivex.Observable; +import java.util.List; +import java.util.Objects; +import javax.inject.Singleton; + +@Singleton +public class EventBusImplementation implements EventBus +{ + private final Relay bus = PublishRelay.create().toSerialized(); + + @Override + public void post(Object event) + { + if (this.bus.hasObservers()) + { + this.bus.accept(event); + } + } + + @Override + public Observable observableOfType(Class eventClass) + { + return this.bus + .filter(Objects::nonNull) // Filter out null objects, better safe than sorry + .filter(eventClass::isInstance) // We're only interested in a specific event class + .cast(eventClass); // Cast it for easier usage + } + + @Override + public Observable observableOfTypes(List> eventClasses) + { + return this.bus + .filter(Objects::nonNull) // Filter out null objects, better safe than sorry + .filter(event -> { + for (Class eventClass : eventClasses) + { + if (eventClass.isInstance(event)) + { + return true; + } + } + + return false; + }); // We're only interested in a specific event classes + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/Subscribe.java b/runelite-client/src/main/java/net/runelite/client/eventbus/Subscribe.java deleted file mode 100644 index e34e350be0..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/Subscribe.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2018, Abex - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.client.eventbus; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Marks a method as an event subscriber. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.METHOD) -@Documented -public @interface Subscribe -{ -} diff --git a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java index 0b80bbc7e9..ac5bdcc197 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java @@ -44,7 +44,7 @@ import net.runelite.api.IndexedSprite; import net.runelite.api.SpriteID; import net.runelite.api.events.ClanChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.Text; @@ -97,10 +97,20 @@ public class ClanManager private int modIconsLength; @Inject - private ClanManager(Client client, SpriteManager spriteManager) + private ClanManager( + final Client client, + final SpriteManager spriteManager, + final EventBusImplementation eventbus + ) { this.client = client; this.spriteManager = spriteManager; + + eventbus.observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged); + + eventbus.observableOfType(ClanChanged.class) + .subscribe(this::onClanChanged); } public ClanMemberRank getRank(String playerName) @@ -123,8 +133,7 @@ public class ClanManager return modIconsLength - CLANCHAT_IMAGES.length + clanMemberRank.ordinal() - 1; } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGGED_IN && modIconsLength == 0) @@ -133,8 +142,7 @@ public class ClanManager } } - @Subscribe - public void onClanChanged(ClanChanged clanChanged) + private void onClanChanged(ClanChanged clanChanged) { clanRanksCache.invalidateAll(); } diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index f06de90882..f47307536c 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -164,7 +164,7 @@ import net.runelite.api.Sprite; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.PostItemDefinition; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.http.api.item.ItemClient; import net.runelite.http.api.item.ItemPrice; import net.runelite.http.api.item.ItemStats; @@ -265,7 +265,12 @@ public class ItemManager build(); @Inject - public ItemManager(Client client, ScheduledExecutorService executor, ClientThread clientThread) + public ItemManager( + Client client, + ScheduledExecutorService executor, + ClientThread clientThread, + EventBusImplementation eventbus + ) { this.client = client; this.scheduledExecutorService = executor; @@ -309,6 +314,12 @@ public class ItemManager return loadItemOutline(key.itemId, key.itemQuantity, key.outlineColor); } }); + + eventbus.observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged); + + eventbus.observableOfType(PostItemDefinition.class) + .subscribe(this::onPostItemDefinition); } private void loadPrices() @@ -352,9 +363,7 @@ public class ItemManager } } - - @Subscribe - public void onGameStateChanged(final GameStateChanged event) + private void onGameStateChanged(final GameStateChanged event) { if (event.getGameState() == GameState.HOPPING || event.getGameState() == GameState.LOGIN_SCREEN) { @@ -362,8 +371,7 @@ public class ItemManager } } - @Subscribe - public void onPostItemDefinition(PostItemDefinition event) + private void onPostItemDefinition(PostItemDefinition event) { itemDefinitions.put(event.getItemDefinition().getId(), event.getItemDefinition()); } diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index e297e103c7..6d09f2f361 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -53,8 +53,7 @@ import net.runelite.api.events.ItemQuantityChanged; import net.runelite.api.events.ItemSpawned; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.PlayerDespawned; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.NpcLootReceived; import net.runelite.client.events.PlayerLootReceived; @@ -66,7 +65,7 @@ public class LootManager NpcID.CAVE_KRAKEN, AnimationID.CAVE_KRAKEN_DEATH ); - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final Client client; private final ListMultimap itemSpawns = ArrayListMultimap.create(); private final Set killPoints = new HashSet<>(); @@ -74,14 +73,37 @@ public class LootManager private WorldPoint krakenPlayerLocation; @Inject - private LootManager(EventBus eventBus, Client client) + private LootManager( + final EventBusImplementation eventBus, + final Client client + ) { this.eventBus = eventBus; this.client = client; + + eventBus.observableOfType(GameTick.class) + .subscribe(this::onGameTick); + + eventBus.observableOfType(NpcDespawned.class) + .subscribe(this::onNpcDespawned); + + eventBus.observableOfType(PlayerDespawned.class) + .subscribe(this::onPlayerDespawned); + + eventBus.observableOfType(ItemSpawned.class) + .subscribe(this::onItemSpawned); + + eventBus.observableOfType(ItemDespawned.class) + .subscribe(this::onItemDespawned); + + eventBus.observableOfType(ItemQuantityChanged.class) + .subscribe(this::onItemQuantityChanged); + + eventBus.observableOfType(AnimationChanged.class) + .subscribe(this::onAnimationChanged); } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { final NPC npc = npcDespawned.getNpc(); if (!npc.isDead()) @@ -123,8 +145,7 @@ public class LootManager processNpcLoot(npc); } - @Subscribe - public void onPlayerDespawned(PlayerDespawned playerDespawned) + private void onPlayerDespawned(PlayerDespawned playerDespawned) { final Player player = playerDespawned.getPlayer(); // Only care about dead Players @@ -153,8 +174,7 @@ public class LootManager eventBus.post(new PlayerLootReceived(player, items)); } - @Subscribe - public void onItemSpawned(ItemSpawned itemSpawned) + private void onItemSpawned(ItemSpawned itemSpawned) { final Item item = itemSpawned.getItem(); final Tile tile = itemSpawned.getTile(); @@ -164,16 +184,14 @@ public class LootManager log.debug("Item spawn {} ({}) location {},{}", item.getId(), item.getQuantity(), location); } - @Subscribe - public void onItemDespawned(ItemDespawned itemDespawned) + private void onItemDespawned(ItemDespawned itemDespawned) { final Item item = itemDespawned.getItem(); final LocalPoint location = itemDespawned.getTile().getLocalLocation(); log.debug("Item despawn {} ({}) location {},{}", item.getId(), item.getQuantity(), location); } - @Subscribe - public void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged) + private void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged) { final Item item = itemQuantityChanged.getItem(); final Tile tile = itemQuantityChanged.getTile(); @@ -189,8 +207,7 @@ public class LootManager itemSpawns.put(packed, new ItemStack(item.getId(), diff, location)); } - @Subscribe - public void onAnimationChanged(AnimationChanged e) + private void onAnimationChanged(AnimationChanged e) { if (!(e.getActor() instanceof NPC)) { @@ -219,8 +236,7 @@ public class LootManager } } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { playerLocationLastTick = client.getLocalPlayer().getWorldLocation(); itemSpawns.clear(); diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java index 3e70483d2f..4ed2dd8282 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java @@ -40,8 +40,7 @@ import net.runelite.api.widgets.JavaScriptCallback; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseListener; @@ -54,7 +53,7 @@ public class ChatboxPanelManager { private final Client client; private final ClientThread clientThread; - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final KeyManager keyManager; private final MouseManager mouseManager; @@ -66,7 +65,7 @@ public class ChatboxPanelManager private ChatboxInput currentInput = null; @Inject - private ChatboxPanelManager(EventBus eventBus, Client client, ClientThread clientThread, + private ChatboxPanelManager(EventBusImplementation eventBus, Client client, ClientThread clientThread, KeyManager keyManager, MouseManager mouseManager, Provider chatboxTextMenuInputProvider, Provider chatboxTextInputProvider) { @@ -79,6 +78,12 @@ public class ChatboxPanelManager this.chatboxTextMenuInputProvider = chatboxTextMenuInputProvider; this.chatboxTextInputProvider = chatboxTextInputProvider; + + eventBus.observableOfType(ScriptCallbackEvent.class) + .subscribe(this::onScriptCallbackEvent); + + eventBus.observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged); } public void close() @@ -103,7 +108,7 @@ public class ChatboxPanelManager { client.runScript(ScriptID.CLEAR_CHATBOX_PANEL); - eventBus.register(input); + // eventBus.register(input); if (input instanceof KeyListener) { keyManager.registerKeyListener((KeyListener) input); @@ -150,8 +155,7 @@ public class ChatboxPanelManager .prompt(prompt); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent ev) + private void onScriptCallbackEvent(ScriptCallbackEvent ev) { if (currentInput != null && "resetChatboxInput".equals(ev.getEventName())) { @@ -159,7 +163,6 @@ public class ChatboxPanelManager } } - @Subscribe private void onGameStateChanged(GameStateChanged ev) { if (currentInput != null && ev.getGameState() == GameState.LOGIN_SCREEN) @@ -179,7 +182,7 @@ public class ChatboxPanelManager log.warn("Exception closing {}", currentInput.getClass(), e); } - eventBus.unregister(currentInput); + // eventBus.unregister(currentInput); if (currentInput instanceof KeyListener) { keyManager.unregisterKeyListener((KeyListener) currentInput); diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java index 70ab8ebadf..1550c69a68 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java @@ -65,8 +65,7 @@ import net.runelite.api.events.PlayerMenuOptionsChanged; import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.events.WidgetPressed; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.util.Text; @Singleton @@ -81,7 +80,7 @@ public class MenuManager static final Pattern LEVEL_PATTERN = Pattern.compile("\\(level-[0-9]*\\)"); private final Client client; - private final EventBus eventBus; + private final EventBusImplementation eventBus; //Maps the indexes that are being used to the menu option. private final Map playerMenuIndexMap = new HashMap<>(); @@ -102,10 +101,31 @@ public class MenuManager private MenuEntry firstEntry = null; @Inject - private MenuManager(Client client, EventBus eventBus) + private MenuManager(Client client, EventBusImplementation eventBus) { this.client = client; this.eventBus = eventBus; + + eventBus.observableOfType(MenuOpened.class) + .subscribe(this::onMenuOpened); + + eventBus.observableOfType(MenuEntryAdded.class) + .subscribe(this::onMenuEntryAdded); + + eventBus.observableOfType(BeforeRender.class) + .subscribe(this::onBeforeRender); + + eventBus.observableOfType(PlayerMenuOptionsChanged.class) + .subscribe(this::onPlayerMenuOptionsChanged); + + eventBus.observableOfType(NpcActionChanged.class) + .subscribe(this::onNpcActionChanged); + + eventBus.observableOfType(WidgetPressed.class) + .subscribe(this::onWidgetPressed); + + eventBus.observableOfType(MenuOptionClicked.class) + .subscribe(this::onMenuOptionClicked); } /** @@ -145,8 +165,7 @@ public class MenuManager return false; } - @Subscribe - public void onMenuOpened(MenuOpened event) + private void onMenuOpened(MenuOpened event) { currentPriorityEntries.clear(); @@ -256,8 +275,7 @@ public class MenuManager client.setMenuEntries(arrayEntries); } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { int widgetId = event.getActionParam1(); Collection options = managedMenuOptions.get(widgetId); @@ -280,8 +298,7 @@ public class MenuManager } } - @Subscribe - public void onBeforeRender(BeforeRender event) + private void onBeforeRender(BeforeRender event) { rebuildLeftClickMenu(); } @@ -364,8 +381,7 @@ public class MenuManager } } - @Subscribe - public void onPlayerMenuOptionsChanged(PlayerMenuOptionsChanged event) + private void onPlayerMenuOptionsChanged(PlayerMenuOptionsChanged event) { int idx = event.getIndex(); @@ -389,8 +405,7 @@ public class MenuManager addPlayerMenuItem(newIdx, menuText); } - @Subscribe - public void onNpcActionChanged(NpcActionChanged event) + private void onNpcActionChanged(NpcActionChanged event) { NPCDefinition composition = event.getNpcDefinition(); for (String npcOption : npcMenuOptions) @@ -439,14 +454,12 @@ public class MenuManager } } - @Subscribe - public void onWidgetPressed(WidgetPressed event) + private void onWidgetPressed(WidgetPressed event) { leftClickEntry = rebuildLeftClickMenu(); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (!client.isMenuOpen() && event.isAuthentic()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java index 5e2b612474..580b9f8404 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java @@ -27,7 +27,10 @@ package net.runelite.client.plugins; import com.google.inject.Binder; import com.google.inject.Injector; import com.google.inject.Module; +import io.reactivex.disposables.Disposable; import java.io.File; +import java.util.ArrayList; +import java.util.List; public abstract class Plugin implements Module { @@ -35,6 +38,7 @@ public abstract class Plugin implements Module public File file; public PluginClassLoader loader; + private List disposables = new ArrayList<>(); @Override public void configure(Binder binder) @@ -47,6 +51,12 @@ public abstract class Plugin implements Module protected void shutDown() throws Exception { + this.disposables.forEach(Disposable::dispose); + } + + protected void addSubscription(Disposable disposable) + { + this.disposables.add(disposable); } public final Injector getInjector() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 52488fb4e3..f231d38e26 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -67,8 +67,7 @@ import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.PluginChanged; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; @@ -87,7 +86,7 @@ public class PluginManager private static final String PLUGIN_PACKAGE = "net.runelite.client.plugins"; private final boolean developerMode; - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final Scheduler scheduler; private final ConfigManager configManager; private final ScheduledExecutorService executor; @@ -107,7 +106,7 @@ public class PluginManager @VisibleForTesting PluginManager( @Named("developerMode") final boolean developerMode, - final EventBus eventBus, + final EventBusImplementation eventBus, final Scheduler scheduler, final ConfigManager configManager, final ScheduledExecutorService executor, @@ -119,6 +118,12 @@ public class PluginManager this.configManager = configManager; this.executor = executor; this.sceneTileManager = sceneTileManager; + + eventBus.observableOfType(SessionOpen.class) + .subscribe(this::onSessionOpen); + + eventBus.observableOfType(SessionClose.class) + .subscribe(this::onSessionClose); } public void watch() @@ -126,14 +131,12 @@ public class PluginManager pluginWatcher.start(); } - @Subscribe - public void onSessionOpen(SessionOpen event) + private void onSessionOpen(SessionOpen event) { refreshPlugins(); } - @Subscribe - public void onSessionClose(SessionClose event) + private void onSessionClose(SessionClose event) { refreshPlugins(); } @@ -368,7 +371,7 @@ public class PluginManager } } - eventBus.register(plugin); + // eventBus.register(plugin); schedule(plugin); eventBus.post(new PluginChanged(plugin, true)); } @@ -392,7 +395,7 @@ public class PluginManager try { unschedule(plugin); - eventBus.unregister(plugin); + // eventBus.unregister(plugin); // plugins always stop in the event thread SwingUtilities.invokeAndWait(() -> diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java index 95ea50287e..d11a2989a7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java @@ -59,7 +59,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.ProjectileMoved; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -92,6 +92,8 @@ public class AoeWarningPlugin extends Plugin private BombOverlay bombOverlay; @Inject private Client client; + @Inject + private EventBusImplementation eventbus; @Getter(AccessLevel.PACKAGE) private List LightningTrail = new ArrayList<>(); @Getter(AccessLevel.PACKAGE) @@ -170,6 +172,7 @@ public class AoeWarningPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(coreOverlay); overlayManager.add(bombOverlay); @@ -179,13 +182,53 @@ public class AoeWarningPlugin extends Plugin @Override protected void shutDown() throws Exception { + super.shutDown(); + overlayManager.remove(coreOverlay); overlayManager.remove(bombOverlay); reset(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ProjectileMoved.class) + .subscribe(this::onProjectileMoved) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameObjectSpawned.class) + .subscribe(this::onGameObjectSpawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameObjectDespawned.class) + .subscribe(this::onGameObjectDespawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameTick.class) + .subscribe(this::onGameTick) + ); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("aoe")) { @@ -195,8 +238,7 @@ public class AoeWarningPlugin extends Plugin updateConfig(); } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { Projectile projectile = event.getProjectile(); @@ -223,8 +265,7 @@ public class AoeWarningPlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { final GameObject gameObject = event.getGameObject(); final WorldPoint wp = gameObject.getWorldLocation(); @@ -260,8 +301,7 @@ public class AoeWarningPlugin extends Plugin } } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { GameObject gameObject = event.getGameObject(); WorldPoint wp = gameObject.getWorldLocation(); @@ -286,8 +326,7 @@ public class AoeWarningPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged delta) + private void onGameStateChanged(GameStateChanged delta) { if (client.getGameState() == GameState.LOGGED_IN) { @@ -295,8 +334,7 @@ public class AoeWarningPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (this.configLightningTrail) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java index df5b7423b4..0c853cc360 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java @@ -33,7 +33,6 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ChatMessage; import net.runelite.client.chat.ChatMessageBuilder; -import net.runelite.client.eventbus.Subscribe; @Getter(AccessLevel.PACKAGE) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 2c6c68ecb3..25798ea3ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -56,7 +56,7 @@ import net.runelite.api.events.ProjectileMoved; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -123,6 +123,9 @@ public class CannonPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBusImplementation eventbus; + private boolean lock; private boolean showEmptyCannonNotification; @@ -146,6 +149,7 @@ public class CannonPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(cannonOverlay); overlayManager.add(cannonSpotOverlay); @@ -155,6 +159,8 @@ public class CannonPlugin extends Plugin @Override protected void shutDown() throws Exception { + super.shutDown(); + cannonSpotOverlay.setHidden(true); overlayManager.remove(cannonOverlay); overlayManager.remove(cannonSpotOverlay); @@ -167,8 +173,46 @@ public class CannonPlugin extends Plugin spotPoints.clear(); } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(ItemContainerChanged.class) + .subscribe(this::onItemContainerChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameObjectSpawned.class) + .subscribe(this::onGameObjectSpawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ProjectileMoved.class) + .subscribe(this::onProjectileMoved) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ChatMessage.class) + .subscribe(this::onChatMessage) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameTick.class) + .subscribe(this::onGameTick) + ); + } + + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer() != client.getItemContainer(InventoryID.INVENTORY)) { @@ -178,8 +222,7 @@ public class CannonPlugin extends Plugin cannonSpotOverlay.setHidden(!ItemUtil.containsAllItemIds(event.getItemContainer().getItems(), CANNON_PARTS)); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("cannon")) { @@ -223,8 +266,7 @@ public class CannonPlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { GameObject gameObject = event.getGameObject(); @@ -238,8 +280,7 @@ public class CannonPlugin extends Plugin } } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { Projectile projectile = event.getProjectile(); @@ -261,8 +302,7 @@ public class CannonPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.GAMEMESSAGE) { @@ -345,8 +385,7 @@ public class CannonPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { skipProjectileCheckThisTick = false; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index bea864d8bc..4f1f8f6134 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -56,6 +56,7 @@ import net.runelite.api.events.VarClientIntChanged; import net.runelite.api.events.VarClientStrChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ColorScheme; @@ -86,7 +87,7 @@ class VarInspector extends JFrame private final static int MAX_LOG_ENTRIES = 10_000; private final Client client; - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final JPanel tracker = new JPanel(); @@ -99,7 +100,7 @@ class VarInspector extends JFrame private Map varcs = null; @Inject - VarInspector(Client client, EventBus eventBus, DevToolsPlugin plugin) + VarInspector(Client client, EventBusImplementation eventBus, DevToolsPlugin plugin) { this.eventBus = eventBus; this.client = client; @@ -348,7 +349,7 @@ class VarInspector extends JFrame System.arraycopy(client.getVarps(), 0, oldVarps2, 0, oldVarps2.length); varcs = new HashMap<>(client.getVarcMap()); - eventBus.register(this); + // eventBus.register(this); setVisible(true); toFront(); repaint(); @@ -357,7 +358,7 @@ class VarInspector extends JFrame public void close() { tracker.removeAll(); - eventBus.unregister(this); + // eventBus.unregister(this); setVisible(false); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index e8cbcb9977..1ebdddaf1f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -66,12 +66,17 @@ import net.runelite.api.SceneTileModel; import net.runelite.api.SceneTilePaint; import net.runelite.api.Texture; import net.runelite.api.TextureProvider; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; +import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.GameTick; +import net.runelite.api.events.ItemContainerChanged; +import net.runelite.api.events.ProjectileMoved; import net.runelite.api.hooks.DrawCallbacks; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginInstantiationException; @@ -121,6 +126,9 @@ public class GpuPlugin extends Plugin implements DrawCallbacks @Inject private PluginManager pluginManager; + @Inject + private EventBusImplementation eventbus; + private Canvas canvas; private JAWTWindow jawtWindow; private GL4 gl; @@ -238,8 +246,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks private int fogCircularity; private int fogDensity; - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("gpu")) { @@ -259,9 +266,11 @@ public class GpuPlugin extends Plugin implements DrawCallbacks } @Override - protected void startUp() + protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + clientThread.invoke(() -> { try @@ -353,15 +362,23 @@ public class GpuPlugin extends Plugin implements DrawCallbacks log.error("error stopping plugin", ex); } - shutDown(); + try + { + shutDown(); + } + catch (Exception ex) + { + } } }); } @Override - protected void shutDown() + protected void shutDown() throws Exception { + super.shutDown(); + clientThread.invoke(() -> { client.setGpu(false); @@ -431,6 +448,21 @@ public class GpuPlugin extends Plugin implements DrawCallbacks }); } + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + } + @Provides GpuPluginConfig provideConfig(ConfigManager configManager) { @@ -800,8 +832,14 @@ public class GpuPlugin extends Plugin implements DrawCallbacks // We inject code in the game engine mixin to prevent the client from doing canvas replacement, // so this should not ever be hit log.warn("Canvas invalidated!"); - shutDown(); - startUp(); + try + { + shutDown(); + startUp(); + } + catch (Exception e) + { + } return; } @@ -1282,8 +1320,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks textureManager.animate(texture, diff); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() != GameState.LOGGED_IN) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java index 9227aba3af..d4b7f685ba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java @@ -52,8 +52,7 @@ import static net.runelite.client.RuneLite.LOGS_DIR; import net.runelite.client.RuneLiteProperties; import net.runelite.client.account.SessionManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.ui.ColorScheme; @@ -87,7 +86,7 @@ public class InfoPanel extends PluginPanel private RuneLiteProperties runeLiteProperties; @Inject - private EventBus eventBus; + private EventBusImplementation eventBus; @Inject private SessionManager sessionManager; @@ -187,7 +186,7 @@ public class InfoPanel extends PluginPanel add(actionsContainer, BorderLayout.CENTER); updateLoggedIn(); - eventBus.register(this); + // eventBus.register(this); } /** @@ -316,13 +315,11 @@ public class InfoPanel extends PluginPanel return "" + key + "" + value + ""; } - @Subscribe public void onSessionOpen(SessionOpen sessionOpen) { updateLoggedIn(); } - @Subscribe public void onSessionClose(SessionClose e) { updateLoggedIn(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java index 1578ee408b..cd029e85a4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java @@ -27,6 +27,11 @@ package net.runelite.client.plugins.info; import java.awt.image.BufferedImage; import javax.inject.Inject; import javax.inject.Singleton; +import net.runelite.api.events.ConfigChanged; +import net.runelite.api.events.ItemContainerChanged; +import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.events.SessionClose; +import net.runelite.client.events.SessionOpen; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.ClientToolbar; @@ -44,12 +49,18 @@ public class InfoPlugin extends Plugin @Inject private ClientToolbar clientToolbar; + @Inject + private EventBusImplementation eventbus; + private NavigationButton navButton; + + private InfoPanel panel; + @Override protected void startUp() throws Exception { - final InfoPanel panel = injector.getInstance(InfoPanel.class); + panel = injector.getInstance(InfoPanel.class); panel.init(); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "info_icon.png"); @@ -62,11 +73,30 @@ public class InfoPlugin extends Plugin .build(); clientToolbar.addNavigation(navButton); + + addSubscriptions(); } @Override - protected void shutDown() + protected void shutDown() throws Exception { + super.shutDown(); + clientToolbar.removeNavigation(navButton); } + + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(SessionOpen.class) + .subscribe(panel::onSessionOpen) + ); + + this.addSubscription( + this.eventbus + .observableOfType(SessionClose.class) + .subscribe(panel::onSessionClose) + ); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java index 907f66f03d..0350579ae3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java @@ -31,6 +31,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.mta.alchemy.AlchemyRoom; @@ -60,7 +61,7 @@ public class MTAPlugin extends Plugin private EnchantmentRoom enchantmentRoom; @Inject - private EventBus eventBus; + private EventBusImplementation eventBus; @Inject private MTASceneOverlay sceneOverlay; @Inject @@ -85,7 +86,7 @@ public class MTAPlugin extends Plugin for (MTARoom room : rooms) { - eventBus.register(room); + // eventBus.register(room); } } @@ -97,7 +98,7 @@ public class MTAPlugin extends Plugin for (MTARoom room : rooms) { - eventBus.unregister(room); + // eventBus.unregister(room); } telekineticRoom.resetRoom(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 0f8f150190..6aa6628621 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -66,7 +66,7 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -116,6 +116,9 @@ public class NpcIndicatorsPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBusImplementation eventbus; + @Setter(AccessLevel.PACKAGE) private boolean hotKeyPressed = false; @@ -207,6 +210,7 @@ public class NpcIndicatorsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(npcSceneOverlay); overlayManager.add(npcMinimapOverlay); @@ -222,6 +226,8 @@ public class NpcIndicatorsPlugin extends Plugin @Override protected void shutDown() throws Exception { + super.shutDown(); + overlayManager.remove(npcSceneOverlay); overlayManager.remove(npcMinimapOverlay); deadNpcsToDisplay.clear(); @@ -234,8 +240,70 @@ public class NpcIndicatorsPlugin extends Plugin keyManager.unregisterKeyListener(inputListener); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(FocusChanged.class) + .subscribe(this::onFocusChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(MenuEntryAdded.class) + .subscribe(this::onMenuEntryAdded) + ); + + this.addSubscription( + this.eventbus + .observableOfType(MenuOptionClicked.class) + .subscribe(this::onMenuOptionClicked) + ); + + this.addSubscription( + this.eventbus + .observableOfType(NpcSpawned.class) + .subscribe(this::onNpcSpawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(NpcDefinitionChanged.class) + .subscribe(this::onNpcDefinitionChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(NpcDespawned.class) + .subscribe(this::onNpcDespawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GraphicsObjectCreated.class) + .subscribe(this::onGraphicsObjectCreated) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameTick.class) + .subscribe(this::onGameTick) + ); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN || event.getGameState() == GameState.HOPPING) @@ -248,8 +316,7 @@ public class NpcIndicatorsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (!configChanged.getGroup().equals("npcindicators")) { @@ -262,8 +329,7 @@ public class NpcIndicatorsPlugin extends Plugin rebuildAllNpcs(); } - @Subscribe - public void onFocusChanged(FocusChanged focusChanged) + private void onFocusChanged(FocusChanged focusChanged) { if (!focusChanged.isFocused()) { @@ -271,8 +337,7 @@ public class NpcIndicatorsPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { MenuEntry[] menuEntries = client.getMenuEntries(); String target = event.getTarget(); @@ -306,8 +371,7 @@ public class NpcIndicatorsPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked click) + private void onMenuOptionClicked(MenuOptionClicked click) { if (click.getMenuAction() != MenuAction.RUNELITE || (!click.getOption().equals(TAG) @@ -344,8 +408,7 @@ public class NpcIndicatorsPlugin extends Plugin click.consume(); } - @Subscribe - public void onNpcSpawned(NpcSpawned npcSpawned) + private void onNpcSpawned(NpcSpawned npcSpawned) { NPC npc = npcSpawned.getNpc(); highlightNpcIfMatch(npc); @@ -356,8 +419,7 @@ public class NpcIndicatorsPlugin extends Plugin } } - @Subscribe - public void onNpcDefinitionChanged(NpcDefinitionChanged event) + private void onNpcDefinitionChanged(NpcDefinitionChanged event) { NPC npc = event.getNpc(); highlightNpcIfMatch(npc); @@ -373,8 +435,7 @@ public class NpcIndicatorsPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { final NPC npc = npcDespawned.getNpc(); @@ -386,8 +447,7 @@ public class NpcIndicatorsPlugin extends Plugin highlightedNpcs.remove(npc); } - @Subscribe - public void onGraphicsObjectCreated(GraphicsObjectCreated event) + private void onGraphicsObjectCreated(GraphicsObjectCreated event) { final GraphicsObject go = event.getGraphicsObject(); @@ -397,8 +457,7 @@ public class NpcIndicatorsPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { removeOldHighlightedRespawns(); validateSpawnedNpcs(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java index 56db18f616..1b63b044a7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java @@ -64,7 +64,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -108,6 +108,9 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener @Inject private KeyManager keyManager; + @Inject + private EventBusImplementation eventbus; + @Getter(AccessLevel.PACKAGE) private RenderStyle objectMarkerRenderStyle; @Getter(AccessLevel.PACKAGE) @@ -127,6 +130,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); keyManager.registerKeyListener(this); @@ -135,6 +139,14 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener @Override protected void shutDown() { + try + { + super.shutDown(); + } + catch (Exception e) + { + } + overlayManager.remove(overlay); keyManager.unregisterKeyListener(this); points.clear(); @@ -142,6 +154,69 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener hotKeyPressed = false; } + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(FocusChanged.class) + .subscribe(this::onFocusChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameObjectSpawned.class) + .subscribe(this::onGameObjectSpawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(DecorativeObjectSpawned.class) + .subscribe(this::onDecorativeObjectSpawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameObjectDespawned.class) + .subscribe(this::onGameObjectDespawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(DecorativeObjectDespawned.class) + .subscribe(this::onDecorativeObjectDespawned) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(MenuOptionClicked.class) + .subscribe(this::onMenuOptionClicked) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(MenuEntryAdded.class) + .subscribe(this::onMenuEntryAdded) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + } + @Override public void keyTyped(KeyEvent e) { @@ -166,8 +241,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onFocusChanged(final FocusChanged event) + private void onFocusChanged(final FocusChanged event) { if (!event.isFocused()) { @@ -175,34 +249,29 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { final GameObject eventObject = event.getGameObject(); checkObjectPoints(eventObject); } - @Subscribe - public void onDecorativeObjectSpawned(DecorativeObjectSpawned event) + private void onDecorativeObjectSpawned(DecorativeObjectSpawned event) { final DecorativeObject eventObject = event.getDecorativeObject(); checkObjectPoints(eventObject); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { objects.remove(event.getGameObject()); } - @Subscribe - public void onDecorativeObjectDespawned(DecorativeObjectDespawned event) + private void onDecorativeObjectDespawned(DecorativeObjectDespawned event) { objects.remove(event.getDecorativeObject()); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { GameState gameState = gameStateChanged.getGameState(); if (gameState == GameState.LOADING) @@ -227,8 +296,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!hotKeyPressed || event.getType() != MenuAction.EXAMINE_OBJECT.getId()) { @@ -284,8 +352,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener client.setMenuEntries(menuEntries); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (event.getMenuAction() != MenuAction.RUNELITE || (!event.getOption().equals(MARK) @@ -443,8 +510,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener }.getType()); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("objectindicators")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java index 0b7ffb8271..0cdcf529e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java @@ -39,7 +39,7 @@ import static net.runelite.api.widgets.WidgetInfo.*; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.RuneLitePlusConfig; import net.runelite.client.discord.DiscordService; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -105,6 +105,9 @@ public class RuneLitePlusPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBusImplementation eventbus; + private final RuneLitePlusKeyListener keyListener = new RuneLitePlusKeyListener(); private int entered = -1; private int enterIdx; @@ -113,6 +116,8 @@ public class RuneLitePlusPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + if (config.customPresence()) { ClientUI.currentPresenceName = ("RuneLitePlus"); @@ -127,8 +132,7 @@ public class RuneLitePlusPlugin extends Plugin expectInput = false; } - @Subscribe - protected void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("runeliteplus")) { @@ -165,13 +169,29 @@ public class RuneLitePlusPlugin extends Plugin @Override protected void shutDown() throws Exception { + super.shutDown(); + entered = 0; enterIdx = 0; expectInput = false; keyManager.unregisterKeyListener(keyListener); } - @Subscribe + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ScriptCallbackEvent.class) + .subscribe(this::onScriptCallbackEvent) + ); + } + private void onScriptCallbackEvent(ScriptCallbackEvent e) { if (!config.keyboardPin()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java b/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java index 13b001151c..d4c340df67 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java @@ -41,6 +41,7 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import static net.runelite.client.RuneLite.RUNELITE_DIR; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.stonedloottracker.data.events.LootTrackerNameChange; import net.runelite.client.plugins.stonedloottracker.data.events.LootTrackerRecordStored; import net.runelite.http.api.RuneLiteAPI; @@ -55,10 +56,10 @@ public class LootRecordWriter // Data is stored in a folder with the players in-game username private File playerFolder = LOOT_RECORD_DIR; - private final EventBus bus; + private final EventBusImplementation bus; @Inject - public LootRecordWriter(EventBus bus) + public LootRecordWriter(EventBusImplementation bus) { this.bus = bus; playerFolder.mkdir(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java index 910b9ae241..bca3584121 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java @@ -54,7 +54,7 @@ import net.runelite.api.events.VarbitChanged; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.wintertodt.config.WintertodtNotifyMode; @@ -93,6 +93,9 @@ public class WintertodtPlugin extends Plugin @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBusImplementation eventbus; + @Getter(AccessLevel.PACKAGE) private WintertodtActivity currentActivity = WintertodtActivity.IDLE; @@ -123,6 +126,8 @@ public class WintertodtPlugin extends Plugin this.notifyCondition = config.notifyCondition(); this.damageNotificationColor = config.damageNotificationColor(); + addSubscriptions(); + reset(); overlayManager.add(overlay); } @@ -130,12 +135,52 @@ public class WintertodtPlugin extends Plugin @Override protected void shutDown() throws Exception { + super.shutDown(); + overlayManager.remove(overlay); reset(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + this.addSubscription( + this.eventbus + .observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(GameTick.class) + .subscribe(this::onGameTick) + ); + + this.addSubscription( + this.eventbus + .observableOfType(VarbitChanged.class) + .subscribe(this::onVarbitChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ChatMessage.class) + .subscribe(this::onChatMessage) + ); + + this.addSubscription( + this.eventbus + .observableOfType(AnimationChanged.class) + .subscribe(this::onAnimationChanged) + ); + + this.addSubscription( + this.eventbus + .observableOfType(ItemContainerChanged.class) + .subscribe(this::onItemContainerChanged) + ); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("wintertodt")) { @@ -164,8 +209,7 @@ public class WintertodtPlugin extends Plugin return false; } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (!isInWintertodtRegion()) { @@ -189,8 +233,7 @@ public class WintertodtPlugin extends Plugin checkActionTimeout(); } - @Subscribe - public void onVarbitChanged(VarbitChanged varbitChanged) + private void onVarbitChanged(VarbitChanged varbitChanged) { int timerValue = client.getVar(Varbits.WINTERTODT_TIMER); if (timerValue != previousTimerValue) @@ -236,8 +279,7 @@ public class WintertodtPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (!isInWintertodt) { @@ -380,8 +422,7 @@ public class WintertodtPlugin extends Plugin notifier.notify(notification); } - @Subscribe - public void onAnimationChanged(final AnimationChanged event) + private void onAnimationChanged(final AnimationChanged event) { if (!isInWintertodt) { @@ -429,8 +470,7 @@ public class WintertodtPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { final ItemContainer container = event.getItemContainer(); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java index 20bfe8897b..33adc900b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java @@ -29,6 +29,7 @@ import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.NavigationButtonAdded; import net.runelite.client.events.NavigationButtonRemoved; @@ -38,11 +39,11 @@ import net.runelite.client.events.NavigationButtonRemoved; @Singleton public class ClientToolbar { - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final Set buttons = new HashSet<>(); @Inject - private ClientToolbar(final EventBus eventBus) + private ClientToolbar(final EventBusImplementation eventBus) { this.eventBus = eventBus; } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 8b3fc96130..7522520495 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -84,7 +84,7 @@ import net.runelite.client.config.ExpandResizeType; import net.runelite.client.config.Keybind; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.WarningOnExit; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.NavigationButtonAdded; import net.runelite.client.events.NavigationButtonRemoved; import net.runelite.client.input.KeyManager; @@ -158,7 +158,8 @@ public class ClientUI MouseManager mouseManager, @Nullable Applet client, ConfigManager configManager, - Provider clientThreadProvider) + Provider clientThreadProvider, + EventBusImplementation eventbus) { this.properties = properties; this.config = config; @@ -167,10 +168,21 @@ public class ClientUI this.client = client; this.configManager = configManager; this.clientThreadProvider = clientThreadProvider; + + eventbus.observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged); + + eventbus.observableOfType(NavigationButtonAdded.class) + .subscribe(this::onNavigationButtonAdded); + + eventbus.observableOfType(NavigationButtonRemoved.class) + .subscribe(this::onNavigationButtonRemoved); + + eventbus.observableOfType(GameStateChanged.class) + .subscribe(this::onGameStateChanged); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals(CONFIG_GROUP) && !(event.getGroup().equals(PLUS_CONFIG_GROUP) @@ -185,8 +197,7 @@ public class ClientUI SwingUtilities.invokeLater(() -> updateFrameConfig(event.getKey().equals("lockWindowSize"))); } - @Subscribe - public void onNavigationButtonAdded(final NavigationButtonAdded event) + private void onNavigationButtonAdded(final NavigationButtonAdded event) { SwingUtilities.invokeLater(() -> { @@ -252,8 +263,7 @@ public class ClientUI }); } - @Subscribe - public void onNavigationButtonRemoved(final NavigationButtonRemoved event) + private void onNavigationButtonRemoved(final NavigationButtonRemoved event) { SwingUtilities.invokeLater(() -> { @@ -270,8 +280,7 @@ public class ClientUI }); } - @Subscribe - public void onGameStateChanged(final GameStateChanged event) + private void onGameStateChanged(final GameStateChanged event) { if (event.getGameState() != GameState.LOGGED_IN || !(client instanceof Client) || !config.usernameInTitle()) { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index 40d82c357d..d91e803cfc 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -47,7 +47,7 @@ import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PluginChanged; @@ -104,24 +104,28 @@ public class OverlayManager private final Map> overlayLayers = new EnumMap<>(OverlayLayer.class); private final ConfigManager configManager; - private final EventBus eventBus; + private final EventBusImplementation eventBus; @Inject - private OverlayManager(final ConfigManager configManager, final EventBus eventBus) + private OverlayManager(final ConfigManager configManager, final EventBusImplementation eventBus) { this.configManager = configManager; this.eventBus = eventBus; + + eventBus.observableOfType(PluginChanged.class) + .subscribe(this::onPluginChanged); + + eventBus.observableOfType(MenuOptionClicked.class) + .subscribe(this::onMenuOptionClicked); } - @Subscribe - public void onPluginChanged(final PluginChanged event) + private void onPluginChanged(final PluginChanged event) { overlays.forEach(this::loadOverlay); rebuildOverlayLayers(); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (event.getMenuAction() != MenuAction.RUNELITE_OVERLAY) { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 76d5a21386..83f81592d8 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -50,7 +50,7 @@ import net.runelite.api.events.FocusChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseAdapter; @@ -59,6 +59,7 @@ import net.runelite.client.ui.JagexColors; import net.runelite.client.util.ColorUtil; import net.runelite.client.ui.FontManager; import net.runelite.client.util.MiscUtils; +import net.runelite.http.api.ws.messages.party.UserPart; @Singleton public class OverlayRenderer extends MouseAdapter implements KeyListener @@ -101,7 +102,8 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener final OverlayManager overlayManager, final RuneLiteConfig runeLiteConfig, final MouseManager mouseManager, - final KeyManager keyManager) + final KeyManager keyManager, + final EventBusImplementation eventbus) { this.client = client; this.overlayManager = overlayManager; @@ -109,6 +111,18 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener this.updateConfig(); keyManager.registerKeyListener(this); mouseManager.registerMouseListener(this); + + eventbus.observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged); + + eventbus.observableOfType(FocusChanged.class) + .subscribe(this::onFocusChanged); + + eventbus.observableOfType(ClientTick.class) + .subscribe(this::onClientTick); + + eventbus.observableOfType(BeforeRender.class) + .subscribe(this::onBeforeRender); } private void updateConfig() @@ -120,8 +134,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener this.interfaceFont = FontManager.getFontFromType(clientFont, runeLiteConfig.interfaceFontType()); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("runelite")) { @@ -129,8 +142,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener } } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void onFocusChanged(FocusChanged event) { if (!event.isFocused()) { @@ -140,7 +152,6 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener } } - @Subscribe protected void onClientTick(ClientTick t) { if (menuEntries == null) @@ -167,8 +178,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener client.setMenuEntries(newEntries); } - @Subscribe - public void onBeforeRender(BeforeRender event) + private void onBeforeRender(BeforeRender event) { menuEntries = null; } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java index 56ef1a66fd..3f5f11356f 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java @@ -39,7 +39,7 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.PluginDescriptor; @Singleton @@ -50,13 +50,14 @@ public class InfoBoxManager private final RuneLiteConfig runeLiteConfig; @Inject - private InfoBoxManager(final RuneLiteConfig runeLiteConfig) + private InfoBoxManager(final RuneLiteConfig runeLiteConfig, final EventBusImplementation eventbus) { this.runeLiteConfig = runeLiteConfig; + eventbus.observableOfType(ConfigChanged.class) + .subscribe(this::onConfigChanged); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("runelite") && event.getKey().equals("infoBoxSize")) { diff --git a/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java b/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java index 4ac1941d7f..a002334a2b 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java @@ -28,35 +28,22 @@ import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import javax.inject.Inject; import javax.inject.Singleton; -import net.runelite.client.eventbus.EventBus; -import org.jetbrains.annotations.NotNull; +import net.runelite.client.eventbus.EventBusImplementation; @Singleton -public class DeferredEventBus extends EventBus +public class DeferredEventBus extends EventBusImplementation { - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final Queue pendingEvents = new ConcurrentLinkedQueue<>(); @Inject - private DeferredEventBus(EventBus eventBus) + private DeferredEventBus(EventBusImplementation eventBus) { this.eventBus = eventBus; } @Override - public void register(@NotNull Object object) - { - eventBus.register(object); - } - - @Override - public void unregister(@NotNull Object object) - { - eventBus.unregister(object); - } - - @Override - public void post(@NotNull Object object) + public void post(Object object) { pendingEvents.add(object); } diff --git a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java index e837bb54d9..61b61d75e6 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java +++ b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java @@ -51,11 +51,12 @@ import net.runelite.api.events.PlayerSpawned; import net.runelite.api.events.WallObjectSpawned; import net.runelite.client.callback.ClientThread; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; @Singleton public class GameEventManager { - private final EventBus eventBus = new EventBus(); + private final EventBusImplementation eventBus = new EventBusImplementation(); private final Client client; private final ClientThread clientThread; @@ -110,7 +111,7 @@ public class GameEventManager clientThread.invoke(() -> { - eventBus.register(subscriber); + // eventBus.register(subscriber); for (final InventoryID inventory : InventoryID.values()) { @@ -192,7 +193,7 @@ public class GameEventManager }); }); - eventBus.unregister(subscriber); + // eventBus.unregister(subscriber); }); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java index caec527320..dfe83b635b 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java @@ -33,10 +33,10 @@ import javax.inject.Singleton; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.events.GameStateChanged; import net.runelite.client.account.AccountSession; import net.runelite.client.account.SessionManager; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.PartyChanged; import net.runelite.http.api.ws.messages.party.Join; import net.runelite.http.api.ws.messages.party.Part; @@ -52,7 +52,7 @@ public class PartyService private final WSClient wsClient; private final SessionManager sessionManager; - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final List members = new ArrayList<>(); @Getter @@ -65,11 +65,17 @@ public class PartyService private String username; @Inject - private PartyService(final WSClient wsClient, final SessionManager sessionManager, final EventBus eventBus) + private PartyService(final WSClient wsClient, final SessionManager sessionManager, final EventBusImplementation eventBus) { this.wsClient = wsClient; this.sessionManager = sessionManager; this.eventBus = eventBus; + + eventBus.observableOfType(UserJoin.class) + .subscribe(this::onUserJoin); + + eventBus.observableOfType(UserPart.class) + .subscribe(this::onUserPart); } public void changeParty(UUID newParty) @@ -111,8 +117,7 @@ public class PartyService wsClient.send(new Join(partyId, username)); } - @Subscribe - public void onUserJoin(final UserJoin message) + private void onUserJoin(final UserJoin message) { if (!partyId.equals(message.getPartyId())) { @@ -135,8 +140,7 @@ public class PartyService } } - @Subscribe - public void onUserPart(final UserPart message) + private void onUserPart(final UserPart message) { members.removeIf(member -> member.getMemberId().equals(message.getMemberId())); } diff --git a/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java b/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java index 5b92f5c533..ca8d1ab739 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java @@ -35,6 +35,7 @@ import javax.inject.Singleton; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.http.api.RuneLiteAPI; import net.runelite.http.api.ws.WebsocketGsonFactory; import net.runelite.http.api.ws.WebsocketMessage; @@ -49,7 +50,7 @@ import okhttp3.WebSocketListener; @Singleton public class WSClient extends WebSocketListener implements AutoCloseable { - private final EventBus eventBus; + private final EventBusImplementation eventBus; private final Collection> messages = new HashSet<>(); private volatile Gson gson; @@ -58,7 +59,7 @@ public class WSClient extends WebSocketListener implements AutoCloseable private WebSocket webSocket; @Inject - private WSClient(EventBus eventBus) + private WSClient(EventBusImplementation eventBus) { this.eventBus = eventBus; this.gson = WebsocketGsonFactory.build(WebsocketGsonFactory.factory(messages)); From fc9e700c7c4477dbe2b310d7967f65f0038639b4 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 03:50:20 +0200 Subject: [PATCH 02/15] Rework rx eventbus implementation --- .../net/runelite/api/hooks/Callbacks.java | 4 +- .../net/runelite/client/RuneLiteModule.java | 3 +- .../client/account/SessionManager.java | 15 ++-- .../net/runelite/client/callback/Hooks.java | 17 ++-- .../client/chat/ChatCommandManager.java | 6 +- .../client/chat/ChatMessageManager.java | 23 ++---- .../runelite/client/chat/CommandManager.java | 11 ++- .../runelite/client/config/ConfigManager.java | 12 ++- .../client/discord/DiscordService.java | 17 ++-- .../runelite/client/eventbus/EventBus.java | 82 ++++++++++++------- .../eventbus/EventBusImplementation.java | 50 ----------- .../net/runelite/client/game/ClanManager.java | 11 +-- .../net/runelite/client/game/ItemManager.java | 10 +-- .../net/runelite/client/game/LootManager.java | 37 +++------ .../game/chatbox/ChatboxPanelManager.java | 12 ++- .../runelite/client/menus/MenuManager.java | 36 +++----- .../net/runelite/client/plugins/Plugin.java | 7 -- .../client/plugins/PluginManager.java | 17 ++-- .../plugins/aoewarnings/AoeWarningPlugin.java | 45 ++-------- .../client/plugins/cannon/CannonPlugin.java | 45 ++-------- .../client/plugins/gpu/GpuPlugin.java | 21 +---- .../client/plugins/info/InfoPanel.java | 4 +- .../client/plugins/info/InfoPlugin.java | 21 ++--- .../npchighlight/NpcIndicatorsPlugin.java | 75 +++-------------- .../ObjectIndicatorsPlugin.java | 80 +++--------------- .../runeliteplus/RuneLitePlusPlugin.java | 19 ++--- .../net/runelite/client/ui/ClientToolbar.java | 9 +- .../java/net/runelite/client/ui/ClientUI.java | 19 ++--- .../client/ui/overlay/OverlayManager.java | 14 ++-- .../client/ui/overlay/OverlayRenderer.java | 22 ++--- .../ui/overlay/infobox/InfoBoxManager.java | 8 +- .../client/util/DeferredEventBus.java | 23 +++--- .../client/util/GameEventManager.java | 19 ++--- .../net/runelite/client/ws/PartyService.java | 18 ++-- .../java/net/runelite/client/ws/WSClient.java | 7 +- .../net/runelite/mixins/RSActorMixin.java | 12 +-- .../net/runelite/mixins/RSClanChatMixin.java | 4 +- .../net/runelite/mixins/RSClientMixin.java | 46 +++++------ .../runelite/mixins/RSDynamicObjectMixin.java | 2 +- .../runelite/mixins/RSFriendSystemMixin.java | 4 +- .../net/runelite/mixins/RSGameShellMixin.java | 2 +- .../mixins/RSGraphicsObjectMixin.java | 2 +- .../runelite/mixins/RSGroundItemMixin.java | 2 +- .../mixins/RSHealthBarDefinitionMixin.java | 2 +- .../runelite/mixins/RSItemContainerMixin.java | 2 +- .../mixins/RSItemDefinitionMixin.java | 2 +- .../runelite/mixins/RSKeyHandlerMixin.java | 2 +- .../runelite/mixins/RSNPCDefinitionMixin.java | 2 +- .../java/net/runelite/mixins/RSNPCMixin.java | 4 +- .../runelite/mixins/RSProjectileMixin.java | 4 +- .../java/net/runelite/mixins/RSTileMixin.java | 34 ++++---- .../net/runelite/mixins/RSVarcsMixin.java | 4 +- .../net/runelite/mixins/RSWidgetMixin.java | 4 +- .../net/runelite/mixins/RSWorldMixin.java | 2 +- .../net/runelite/mixins/ScriptVMMixin.java | 2 +- .../net/runelite/mixins/SoundEffectMixin.java | 4 +- 56 files changed, 325 insertions(+), 636 deletions(-) delete mode 100644 runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java diff --git a/runelite-api/src/main/java/net/runelite/api/hooks/Callbacks.java b/runelite-api/src/main/java/net/runelite/api/hooks/Callbacks.java index bbbaa34dfd..861ecf1196 100644 --- a/runelite-api/src/main/java/net/runelite/api/hooks/Callbacks.java +++ b/runelite-api/src/main/java/net/runelite/api/hooks/Callbacks.java @@ -41,14 +41,14 @@ public interface Callbacks * * @param event the event */ - void post(Object event); + void post(Class eventClass, Object event); /** * Post a deferred event, which gets delayed until the next cycle. * * @param event the event */ - void postDeferred(Object event); + void postDeferred(Class eventClass, Object event); /** * Called each client cycle. diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java index 22813b4c0a..f394c17f40 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java @@ -42,7 +42,6 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.RuneLitePlusConfig; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.game.ItemManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.PluginManager; @@ -85,7 +84,7 @@ public class RuneLiteModule extends AbstractModule bind(Callbacks.class).to(Hooks.class); bind(EventBus.class) - .toInstance(new EventBusImplementation()); + .toInstance(new EventBus()); bind(EventBus.class) .annotatedWith(Names.named("Deferred EventBus")) diff --git a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java index 75e8ec8212..32fe52d7f8 100644 --- a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java +++ b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java @@ -25,7 +25,7 @@ package net.runelite.client.account; import com.google.gson.Gson; -import io.reactivex.disposables.Disposable; +import io.reactivex.functions.Consumer; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; @@ -40,7 +40,6 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.client.RuneLite; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.util.LinkBrowser; @@ -58,20 +57,18 @@ public class SessionManager @Getter private AccountSession accountSession; - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final ConfigManager configManager; private final WSClient wsClient; @Inject - private SessionManager(ConfigManager configManager, EventBusImplementation eventBus, WSClient wsClient) + private SessionManager(ConfigManager configManager, EventBus eventBus, WSClient wsClient) { this.configManager = configManager; this.eventBus = eventBus; this.wsClient = wsClient; - this.eventBus - .observableOfType(LoginResponse.class) - .subscribe(this::onLoginResponse); + this.eventBus.subscribe(LoginResponse.class, this, o -> this.onLoginResponse((LoginResponse) o)); } public void loadSession() @@ -154,7 +151,7 @@ public class SessionManager configManager.switchSession(); } - eventBus.post(new SessionOpen()); + eventBus.post(SessionOpen.class, new SessionOpen()); } private void closeSession() @@ -183,7 +180,7 @@ public class SessionManager // Restore config configManager.switchSession(); - eventBus.post(new SessionClose()); + eventBus.post(SessionClose.class, new SessionClose()); } public void login() diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index 8d1873a20f..93c3927554 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -60,7 +60,6 @@ import net.runelite.client.Notifier; import net.runelite.client.RuneLite; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseManager; import net.runelite.client.task.Scheduler; @@ -89,7 +88,7 @@ public class Hooks implements Callbacks private static final OverlayManager overlayManager = injector.getInstance(OverlayManager.class); @Inject - private EventBusImplementation eventBus; + private EventBus eventBus; @Inject private DeferredEventBus deferredEventBus; @@ -129,15 +128,15 @@ public class Hooks implements Callbacks private boolean shouldProcessGameTick; @Override - public void post(Object event) + public void post(Class eventClass, Object event) { - eventBus.post(event); + eventBus.post(eventClass, event); } @Override - public void postDeferred(Object event) + public void postDeferred(Class eventClass, Object event) { - deferredEventBus.post(event); + deferredEventBus.post(eventClass, event); } @Override @@ -149,13 +148,13 @@ public class Hooks implements Callbacks deferredEventBus.replay(); - eventBus.post(GameTick.INSTANCE); + eventBus.post(GameTick.class, GameTick.INSTANCE); int tick = client.getTickCount(); client.setTickCount(tick + 1); } - eventBus.post(BeforeRender.INSTANCE); + eventBus.post(BeforeRender.class, BeforeRender.INSTANCE); clientThread.invoke(); @@ -510,7 +509,7 @@ public class Hooks implements Callbacks public static boolean drawMenu() { BeforeMenuRender event = new BeforeMenuRender(); - client.getCallbacks().post(event); + client.getCallbacks().post(BeforeMenuRender.class, event); return event.isConsumed(); } } diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java index c19a84a405..0454949813 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java @@ -35,7 +35,6 @@ import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.ChatMessage; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.ChatInput; import net.runelite.client.events.ChatboxInput; import net.runelite.client.events.PrivateMessageInput; @@ -49,15 +48,14 @@ public class ChatCommandManager implements ChatboxInputListener private final ScheduledExecutorService scheduledExecutorService; @Inject - private ChatCommandManager(EventBusImplementation eventBus, CommandManager commandManager, Client client, ScheduledExecutorService scheduledExecutorService) + private ChatCommandManager(EventBus eventBus, CommandManager commandManager, Client client, ScheduledExecutorService scheduledExecutorService) { this.client = client; this.scheduledExecutorService = scheduledExecutorService; // eventBus.register(this); commandManager.register(this); - eventBus.observableOfType(ChatMessage.class) - .subscribe(this::onChatMessage); + eventBus.subscribe(ChatMessage.class, this, o -> this.onChatMessage((ChatMessage) o)); } public void registerCommand(String command, BiConsumer execute) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index 5baa5ba42a..a5f878b749 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -52,7 +52,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.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.ui.JagexColors; import net.runelite.client.util.ColorUtil; @@ -73,26 +73,17 @@ public class ChatMessageManager final Client client, final ChatColorConfig chatColorConfig, final ClientThread clientThread, - final EventBusImplementation eventbus) + final EventBus eventbus) { this.client = client; this.chatColorConfig = chatColorConfig; this.clientThread = clientThread; - eventbus.observableOfType(VarbitChanged.class) - .subscribe(this::onVarbitChanged); - - eventbus.observableOfType(ResizeableChanged.class) - .subscribe(this::onResizeableChanged); - - eventbus.observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged); - - eventbus.observableOfType(ChatMessage.class) - .subscribe(this::onChatMessage); - - eventbus.observableOfType(ScriptCallbackEvent.class) - .subscribe(this::onScriptCallbackEvent); + eventbus.subscribe(VarbitChanged.class, this, o -> this.onVarbitChanged((VarbitChanged) o)); + eventbus.subscribe(ResizeableChanged.class, this, o -> this.onResizeableChanged((ResizeableChanged) o)); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(ChatMessage.class, this, o -> this.onChatMessage((ChatMessage) o)); + eventbus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); } private void onVarbitChanged(VarbitChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java index fc07646f0a..f5169a80ea 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java @@ -37,7 +37,7 @@ import net.runelite.api.VarClientStr; import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ChatboxInput; import net.runelite.client.events.PrivateMessageInput; @@ -50,7 +50,7 @@ public class CommandManager private static final String PRIVMATE_MESSAGE = "privateMessage"; private final Client client; - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final ClientThread clientThread; private boolean sending; @@ -59,7 +59,7 @@ public class CommandManager @Inject private CommandManager( final Client client, - final EventBusImplementation eventBus, + final EventBus eventBus, final ClientThread clientThread ) { @@ -67,8 +67,7 @@ public class CommandManager this.eventBus = eventBus; this.clientThread = clientThread; - eventBus.observableOfType(ScriptCallbackEvent.class) - .subscribe(this::onScriptCallbackEvent); + eventBus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); } public void register(ChatboxInputListener chatboxInputListener) @@ -120,7 +119,7 @@ public class CommandManager String[] args = Arrays.copyOfRange(split, 1, split.length); CommandExecuted commandExecuted = new CommandExecuted(command, args); - eventBus.post(commandExecuted); + eventBus.post(CommandExecuted.class, commandExecuted); } private void handleInput(ScriptCallbackEvent event) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index 2a5ba38441..505f5dca30 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -66,9 +66,8 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.client.RuneLite; import static net.runelite.client.RuneLite.PROFILES_DIR; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; -import net.runelite.client.util.ColorUtil; import net.runelite.client.ui.FontManager; +import net.runelite.client.util.ColorUtil; @Singleton @Slf4j @@ -80,7 +79,7 @@ public class ConfigManager private static final File STANDARD_SETTINGS_FILE = new File(RuneLite.RUNELITE_DIR, STANDARD_SETTINGS_FILE_NAME); @Inject - EventBusImplementation eventBus; + EventBus eventBus; private final ConfigInvocationHandler handler = new ConfigInvocationHandler(this); private final Properties properties = new Properties(); @@ -90,7 +89,6 @@ public class ConfigManager @Inject public ConfigManager(ScheduledExecutorService scheduledExecutorService) { - scheduledExecutorService.scheduleWithFixedDelay(this::sendConfig, 30, 30, TimeUnit.SECONDS); } @@ -195,7 +193,7 @@ public class ConfigManager configChanged.setKey(key); configChanged.setOldValue(null); configChanged.setNewValue(value); - eventBus.post(configChanged); + eventBus.post(ConfigChanged.class, configChanged); }); } catch (Exception ex) @@ -234,7 +232,7 @@ public class ConfigManager private void postConfigChanged(ConfigChanged configChanged) { configObjectCache.remove(configChanged.getGroup() + "." + configChanged.getKey()); - eventBus.post(configChanged); + eventBus.post(ConfigChanged.class, configChanged); } public T getConfig(Class clazz) @@ -333,7 +331,7 @@ public class ConfigManager configChanged.setKey(key); configChanged.setOldValue(oldValue); - eventBus.post(configChanged); + eventBus.post(ConfigChanged.class, configChanged); } public ConfigDescriptor getConfigDescriptor(Object configurationProxy) diff --git a/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java b/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java index 7b6b858788..b8abbc518b 100644 --- a/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java +++ b/runelite-client/src/main/java/net/runelite/client/discord/DiscordService.java @@ -39,7 +39,6 @@ import net.runelite.client.discord.events.DiscordJoinRequest; import net.runelite.client.discord.events.DiscordReady; import net.runelite.client.discord.events.DiscordSpectateGame; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.discord.DiscordEventHandlers; import net.runelite.discord.DiscordRPC; import net.runelite.discord.DiscordRichPresence; @@ -49,7 +48,7 @@ import net.runelite.discord.DiscordUser; @Slf4j public class DiscordService implements AutoCloseable { - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final RuneLiteProperties runeLiteProperties; private final ScheduledExecutorService executorService; private final DiscordRPC discordRPC; @@ -62,7 +61,7 @@ public class DiscordService implements AutoCloseable @Inject private DiscordService( - final EventBusImplementation eventBus, + final EventBus eventBus, final RuneLiteProperties runeLiteProperties, final ScheduledExecutorService executorService) { @@ -199,7 +198,7 @@ public class DiscordService implements AutoCloseable { log.info("Discord RPC service is ready with user {}.", user.username); currentUser = user; - eventBus.post(new DiscordReady( + eventBus.post(DiscordReady.class, new DiscordReady( user.userId, user.username, user.discriminator, @@ -208,28 +207,28 @@ public class DiscordService implements AutoCloseable private void disconnected(int errorCode, String message) { - eventBus.post(new DiscordDisconnected(errorCode, message)); + eventBus.post(DiscordDisconnected.class, new DiscordDisconnected(errorCode, message)); } private void errored(int errorCode, String message) { log.warn("Discord error: {} - {}", errorCode, message); - eventBus.post(new DiscordErrored(errorCode, message)); + eventBus.post(DiscordErrored.class, new DiscordErrored(errorCode, message)); } private void joinGame(String joinSecret) { - eventBus.post(new DiscordJoinGame(joinSecret)); + eventBus.post(DiscordJoinGame.class, new DiscordJoinGame(joinSecret)); } private void spectateGame(String spectateSecret) { - eventBus.post(new DiscordSpectateGame(spectateSecret)); + eventBus.post(DiscordSpectateGame.class, new DiscordSpectateGame(spectateSecret)); } private void joinRequest(DiscordUser user) { - eventBus.post(new DiscordJoinRequest( + eventBus.post(DiscordJoinRequest.class, new DiscordJoinRequest( user.userId, user.username, user.discriminator, diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java index cc8925c933..97cb77c6d6 100644 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java @@ -1,38 +1,58 @@ -/* - * Copyright (c) 2018, Tomas Slusny - * Copyright (c) 2018, Abex - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ package net.runelite.client.eventbus; -import io.reactivex.Observable; -import java.util.List; +import com.jakewharton.rxrelay2.PublishRelay; +import com.jakewharton.rxrelay2.Relay; +import io.reactivex.annotations.NonNull; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.disposables.Disposable; +import io.reactivex.functions.Consumer; +import java.util.HashMap; +import java.util.Map; +import javax.inject.Singleton; -public interface EventBus +@Singleton +public class EventBus { - void post(Object event); + private Map, Relay> subjectList = new HashMap<>(); + private Map subscriptionsMap = new HashMap<>(); - Observable observableOfType(Class eventClass); + @NonNull + private Relay getSubject(Class eventClass) + { + return subjectList.computeIfAbsent(eventClass, k -> PublishRelay.create().toSerialized()); + } - Observable observableOfTypes(List> eventClasses); + @NonNull + private CompositeDisposable getCompositeDisposable(@NonNull Object object) + { + CompositeDisposable compositeDisposable = subscriptionsMap.get(object); + if (compositeDisposable == null) + { + compositeDisposable = new CompositeDisposable(); + subscriptionsMap.put(object, compositeDisposable); + } + + return compositeDisposable; + } + + public void subscribe(Class eventClass, @NonNull Object lifecycle, @NonNull Consumer action) + { + Disposable disposable = getSubject(eventClass).subscribe(action); + getCompositeDisposable(lifecycle).add(disposable); + } + + public void unregister(@NonNull Object lifecycle) + { + //We have to remove the composition from the map, because once you dispose it can't be used anymore + CompositeDisposable compositeDisposable = subscriptionsMap.remove(lifecycle); + if (compositeDisposable != null) + { + compositeDisposable.dispose(); + } + } + + public void post(Class eventClass, @NonNull Object event) + { + getSubject(eventClass).accept(event); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java deleted file mode 100644 index 1ff22546ae..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusImplementation.java +++ /dev/null @@ -1,50 +0,0 @@ -package net.runelite.client.eventbus; - -import com.jakewharton.rxrelay2.PublishRelay; -import com.jakewharton.rxrelay2.Relay; -import io.reactivex.Observable; -import java.util.List; -import java.util.Objects; -import javax.inject.Singleton; - -@Singleton -public class EventBusImplementation implements EventBus -{ - private final Relay bus = PublishRelay.create().toSerialized(); - - @Override - public void post(Object event) - { - if (this.bus.hasObservers()) - { - this.bus.accept(event); - } - } - - @Override - public Observable observableOfType(Class eventClass) - { - return this.bus - .filter(Objects::nonNull) // Filter out null objects, better safe than sorry - .filter(eventClass::isInstance) // We're only interested in a specific event class - .cast(eventClass); // Cast it for easier usage - } - - @Override - public Observable observableOfTypes(List> eventClasses) - { - return this.bus - .filter(Objects::nonNull) // Filter out null objects, better safe than sorry - .filter(event -> { - for (Class eventClass : eventClasses) - { - if (eventClass.isInstance(event)) - { - return true; - } - } - - return false; - }); // We're only interested in a specific event classes - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java index ac5bdcc197..307c6ac5b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java @@ -44,7 +44,7 @@ import net.runelite.api.IndexedSprite; import net.runelite.api.SpriteID; import net.runelite.api.events.ClanChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.Text; @@ -100,17 +100,14 @@ public class ClanManager private ClanManager( final Client client, final SpriteManager spriteManager, - final EventBusImplementation eventbus + final EventBus eventbus ) { this.client = client; this.spriteManager = spriteManager; - eventbus.observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged); - - eventbus.observableOfType(ClanChanged.class) - .subscribe(this::onClanChanged); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(ClanChanged.class, this, o -> this.onClanChanged((ClanChanged) o)); } public ClanMemberRank getRank(String playerName) diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index f47307536c..8a234dce71 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -164,7 +164,7 @@ import net.runelite.api.Sprite; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.PostItemDefinition; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.http.api.item.ItemClient; import net.runelite.http.api.item.ItemPrice; import net.runelite.http.api.item.ItemStats; @@ -269,7 +269,7 @@ public class ItemManager Client client, ScheduledExecutorService executor, ClientThread clientThread, - EventBusImplementation eventbus + EventBus eventbus ) { this.client = client; @@ -315,11 +315,9 @@ public class ItemManager } }); - eventbus.observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged); - eventbus.observableOfType(PostItemDefinition.class) - .subscribe(this::onPostItemDefinition); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(PostItemDefinition.class, this, o -> this.onPostItemDefinition((PostItemDefinition) o)); } private void loadPrices() diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index 6d09f2f361..54e26f99c7 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -53,7 +53,7 @@ import net.runelite.api.events.ItemQuantityChanged; import net.runelite.api.events.ItemSpawned; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.PlayerDespawned; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.NpcLootReceived; import net.runelite.client.events.PlayerLootReceived; @@ -65,7 +65,7 @@ public class LootManager NpcID.CAVE_KRAKEN, AnimationID.CAVE_KRAKEN_DEATH ); - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final Client client; private final ListMultimap itemSpawns = ArrayListMultimap.create(); private final Set killPoints = new HashSet<>(); @@ -74,33 +74,20 @@ public class LootManager @Inject private LootManager( - final EventBusImplementation eventBus, + final EventBus eventBus, final Client client ) { this.eventBus = eventBus; this.client = client; - eventBus.observableOfType(GameTick.class) - .subscribe(this::onGameTick); - - eventBus.observableOfType(NpcDespawned.class) - .subscribe(this::onNpcDespawned); - - eventBus.observableOfType(PlayerDespawned.class) - .subscribe(this::onPlayerDespawned); - - eventBus.observableOfType(ItemSpawned.class) - .subscribe(this::onItemSpawned); - - eventBus.observableOfType(ItemDespawned.class) - .subscribe(this::onItemDespawned); - - eventBus.observableOfType(ItemQuantityChanged.class) - .subscribe(this::onItemQuantityChanged); - - eventBus.observableOfType(AnimationChanged.class) - .subscribe(this::onAnimationChanged); + eventBus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); + eventBus.subscribe(NpcDespawned.class, this, o -> this.onNpcDespawned((NpcDespawned) o)); + eventBus.subscribe(PlayerDespawned.class, this, o -> this.onPlayerDespawned((PlayerDespawned) o)); + eventBus.subscribe(ItemSpawned.class, this, o -> this.onItemSpawned((ItemSpawned) o)); + eventBus.subscribe(ItemDespawned.class, this, o -> this.onItemDespawned((ItemDespawned) o)); + eventBus.subscribe(ItemQuantityChanged.class, this, o -> this.onItemQuantityChanged((ItemQuantityChanged) o)); + eventBus.subscribe(AnimationChanged.class, this, o -> this.onAnimationChanged((AnimationChanged) o)); } private void onNpcDespawned(NpcDespawned npcDespawned) @@ -171,7 +158,7 @@ public class LootManager } killPoints.add(location); - eventBus.post(new PlayerLootReceived(player, items)); + eventBus.post(PlayerLootReceived.class, new PlayerLootReceived(player, items)); } private void onItemSpawned(ItemSpawned itemSpawned) @@ -273,7 +260,7 @@ public class LootManager } killPoints.add(location); - eventBus.post(new NpcLootReceived(npc, allItems)); + eventBus.post(NpcLootReceived.class, new NpcLootReceived(npc, allItems)); } private WorldPoint getDropLocation(NPC npc, WorldPoint worldLocation) diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java index 4ed2dd8282..15d5229006 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java @@ -40,7 +40,7 @@ import net.runelite.api.widgets.JavaScriptCallback; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseListener; @@ -53,7 +53,7 @@ public class ChatboxPanelManager { private final Client client; private final ClientThread clientThread; - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final KeyManager keyManager; private final MouseManager mouseManager; @@ -65,7 +65,7 @@ public class ChatboxPanelManager private ChatboxInput currentInput = null; @Inject - private ChatboxPanelManager(EventBusImplementation eventBus, Client client, ClientThread clientThread, + private ChatboxPanelManager(EventBus eventBus, Client client, ClientThread clientThread, KeyManager keyManager, MouseManager mouseManager, Provider chatboxTextMenuInputProvider, Provider chatboxTextInputProvider) { @@ -79,11 +79,9 @@ public class ChatboxPanelManager this.chatboxTextMenuInputProvider = chatboxTextMenuInputProvider; this.chatboxTextInputProvider = chatboxTextInputProvider; - eventBus.observableOfType(ScriptCallbackEvent.class) - .subscribe(this::onScriptCallbackEvent); - eventBus.observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); + eventBus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); } public void close() diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java index 1550c69a68..41e6eba005 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java @@ -65,7 +65,7 @@ import net.runelite.api.events.PlayerMenuOptionsChanged; import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.events.WidgetPressed; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.util.Text; @Singleton @@ -80,7 +80,7 @@ public class MenuManager static final Pattern LEVEL_PATTERN = Pattern.compile("\\(level-[0-9]*\\)"); private final Client client; - private final EventBusImplementation eventBus; + private final EventBus eventBus; //Maps the indexes that are being used to the menu option. private final Map playerMenuIndexMap = new HashMap<>(); @@ -101,31 +101,19 @@ public class MenuManager private MenuEntry firstEntry = null; @Inject - private MenuManager(Client client, EventBusImplementation eventBus) + private MenuManager(Client client, EventBus eventBus) { this.client = client; this.eventBus = eventBus; - eventBus.observableOfType(MenuOpened.class) - .subscribe(this::onMenuOpened); - eventBus.observableOfType(MenuEntryAdded.class) - .subscribe(this::onMenuEntryAdded); - - eventBus.observableOfType(BeforeRender.class) - .subscribe(this::onBeforeRender); - - eventBus.observableOfType(PlayerMenuOptionsChanged.class) - .subscribe(this::onPlayerMenuOptionsChanged); - - eventBus.observableOfType(NpcActionChanged.class) - .subscribe(this::onNpcActionChanged); - - eventBus.observableOfType(WidgetPressed.class) - .subscribe(this::onWidgetPressed); - - eventBus.observableOfType(MenuOptionClicked.class) - .subscribe(this::onMenuOptionClicked); + eventBus.subscribe(MenuOpened.class, this, o -> this.onMenuOpened((MenuOpened) o)); + eventBus.subscribe(MenuEntryAdded.class, this, o -> this.onMenuEntryAdded((MenuEntryAdded) o)); + eventBus.subscribe(BeforeRender.class, this, o -> this.onBeforeRender((BeforeRender) o)); + eventBus.subscribe(PlayerMenuOptionsChanged.class, this, o -> this.onPlayerMenuOptionsChanged((PlayerMenuOptionsChanged) o)); + eventBus.subscribe(NpcActionChanged.class, this, o -> this.onNpcActionChanged((NpcActionChanged) o)); + eventBus.subscribe(WidgetPressed.class, this, o -> this.onWidgetPressed((WidgetPressed) o)); + eventBus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); } /** @@ -494,7 +482,7 @@ public class MenuManager customMenu.setMenuOption(event.getOption()); customMenu.setMenuTarget(event.getTarget()); customMenu.setWidget(curMenuOption.getWidget()); - eventBus.post(customMenu); + eventBus.post(WidgetMenuOptionClicked.class, customMenu); return; // don't continue because it's not a player option } } @@ -509,7 +497,7 @@ public class MenuManager playerMenuOptionClicked.setMenuOption(event.getOption()); playerMenuOptionClicked.setMenuTarget(username); - eventBus.post(playerMenuOptionClicked); + eventBus.post(PlayerMenuOptionClicked.class, playerMenuOptionClicked); } private void addPlayerMenuItem(int playerOptionIndex, String menuText) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java index 580b9f8404..d08da47428 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java @@ -38,7 +38,6 @@ public abstract class Plugin implements Module public File file; public PluginClassLoader loader; - private List disposables = new ArrayList<>(); @Override public void configure(Binder binder) @@ -51,12 +50,6 @@ public abstract class Plugin implements Module protected void shutDown() throws Exception { - this.disposables.forEach(Disposable::dispose); - } - - protected void addSubscription(Disposable disposable) - { - this.disposables.add(disposable); } public final Injector getInjector() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index f231d38e26..40b199cfe6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -67,7 +67,7 @@ import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.PluginChanged; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; @@ -86,7 +86,7 @@ public class PluginManager private static final String PLUGIN_PACKAGE = "net.runelite.client.plugins"; private final boolean developerMode; - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final Scheduler scheduler; private final ConfigManager configManager; private final ScheduledExecutorService executor; @@ -106,7 +106,7 @@ public class PluginManager @VisibleForTesting PluginManager( @Named("developerMode") final boolean developerMode, - final EventBusImplementation eventBus, + final EventBus eventBus, final Scheduler scheduler, final ConfigManager configManager, final ScheduledExecutorService executor, @@ -119,11 +119,8 @@ public class PluginManager this.executor = executor; this.sceneTileManager = sceneTileManager; - eventBus.observableOfType(SessionOpen.class) - .subscribe(this::onSessionOpen); - - eventBus.observableOfType(SessionClose.class) - .subscribe(this::onSessionClose); + eventBus.subscribe(SessionOpen.class, this, o -> this.onSessionOpen((SessionOpen) o)); + eventBus.subscribe(SessionClose.class, this, o -> this.onSessionClose((SessionClose) o)); } public void watch() @@ -373,7 +370,7 @@ public class PluginManager // eventBus.register(plugin); schedule(plugin); - eventBus.post(new PluginChanged(plugin, true)); + eventBus.post(PluginChanged.class, new PluginChanged(plugin, true)); } catch (InterruptedException | InvocationTargetException | IllegalArgumentException ex) { @@ -411,7 +408,7 @@ public class PluginManager }); log.debug("Plugin {} is now stopped", plugin.getClass().getSimpleName()); - eventBus.post(new PluginChanged(plugin, false)); + eventBus.post(PluginChanged.class, new PluginChanged(plugin, false)); } catch (InterruptedException | InvocationTargetException ex) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java index d11a2989a7..48bc45c8cf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java @@ -59,7 +59,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.ProjectileMoved; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -93,7 +93,7 @@ public class AoeWarningPlugin extends Plugin @Inject private Client client; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; @Getter(AccessLevel.PACKAGE) private List LightningTrail = new ArrayList<>(); @Getter(AccessLevel.PACKAGE) @@ -191,41 +191,12 @@ public class AoeWarningPlugin extends Plugin private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ProjectileMoved.class) - .subscribe(this::onProjectileMoved) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameObjectSpawned.class) - .subscribe(this::onGameObjectSpawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameObjectDespawned.class) - .subscribe(this::onGameObjectDespawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameTick.class) - .subscribe(this::onGameTick) - ); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(ProjectileMoved.class, this, o -> this.onProjectileMoved((ProjectileMoved) o)); + eventbus.subscribe(GameObjectSpawned.class, this, o -> this.onGameObjectSpawned((GameObjectSpawned) o)); + eventbus.subscribe(GameObjectDespawned.class, this, o -> this.onGameObjectDespawned((GameObjectDespawned) o)); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 25798ea3ae..344dd5b4e6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -56,7 +56,7 @@ import net.runelite.api.events.ProjectileMoved; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -124,7 +124,7 @@ public class CannonPlugin extends Plugin private ClientThread clientThread; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; private boolean lock; @@ -175,41 +175,12 @@ public class CannonPlugin extends Plugin private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(ItemContainerChanged.class) - .subscribe(this::onItemContainerChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameObjectSpawned.class) - .subscribe(this::onGameObjectSpawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ProjectileMoved.class) - .subscribe(this::onProjectileMoved) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ChatMessage.class) - .subscribe(this::onChatMessage) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameTick.class) - .subscribe(this::onGameTick) - ); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(ItemContainerChanged.class, this, o -> this.onItemContainerChanged((ItemContainerChanged) o)); + eventbus.subscribe(GameObjectSpawned.class, this, o -> this.onGameObjectSpawned((GameObjectSpawned) o)); + eventbus.subscribe(ProjectileMoved.class, this, o -> this.onProjectileMoved((ProjectileMoved) o)); + eventbus.subscribe(ChatMessage.class, this, o -> this.onChatMessage((ChatMessage) o)); + eventbus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); } private void onItemContainerChanged(ItemContainerChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 1ebdddaf1f..0cb07b7afc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -66,17 +66,12 @@ import net.runelite.api.SceneTileModel; import net.runelite.api.SceneTilePaint; import net.runelite.api.Texture; import net.runelite.api.TextureProvider; -import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; -import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.GameTick; -import net.runelite.api.events.ItemContainerChanged; -import net.runelite.api.events.ProjectileMoved; import net.runelite.api.hooks.DrawCallbacks; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginInstantiationException; @@ -127,7 +122,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks private PluginManager pluginManager; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; private Canvas canvas; private JAWTWindow jawtWindow; @@ -450,17 +445,9 @@ public class GpuPlugin extends Plugin implements DrawCallbacks private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged) - ); - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); } @Provides diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java index d4b7f685ba..0e9700812b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java @@ -52,7 +52,7 @@ import static net.runelite.client.RuneLite.LOGS_DIR; import net.runelite.client.RuneLiteProperties; import net.runelite.client.account.SessionManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.ui.ColorScheme; @@ -86,7 +86,7 @@ public class InfoPanel extends PluginPanel private RuneLiteProperties runeLiteProperties; @Inject - private EventBusImplementation eventBus; + private EventBus eventBus; @Inject private SessionManager sessionManager; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java index cd029e85a4..763be3bcf9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java @@ -27,9 +27,7 @@ package net.runelite.client.plugins.info; import java.awt.image.BufferedImage; import javax.inject.Inject; import javax.inject.Singleton; -import net.runelite.api.events.ConfigChanged; -import net.runelite.api.events.ItemContainerChanged; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.plugins.Plugin; @@ -50,7 +48,7 @@ public class InfoPlugin extends Plugin private ClientToolbar clientToolbar; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; private NavigationButton navButton; @@ -80,23 +78,14 @@ public class InfoPlugin extends Plugin @Override protected void shutDown() throws Exception { - super.shutDown(); + eventbus.unregister(this); clientToolbar.removeNavigation(navButton); } private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(SessionOpen.class) - .subscribe(panel::onSessionOpen) - ); - - this.addSubscription( - this.eventbus - .observableOfType(SessionClose.class) - .subscribe(panel::onSessionClose) - ); + eventbus.subscribe(SessionOpen.class, this, o -> panel.onSessionOpen((SessionOpen) o)); + eventbus.subscribe(SessionClose.class, this, o -> panel.onSessionClose((SessionClose) o)); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 6aa6628621..563cbf25a0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -66,7 +66,7 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -117,7 +117,7 @@ public class NpcIndicatorsPlugin extends Plugin private ClientThread clientThread; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; @Setter(AccessLevel.PACKAGE) private boolean hotKeyPressed = false; @@ -226,7 +226,7 @@ public class NpcIndicatorsPlugin extends Plugin @Override protected void shutDown() throws Exception { - super.shutDown(); + eventbus.unregister(this); overlayManager.remove(npcSceneOverlay); overlayManager.remove(npcMinimapOverlay); @@ -242,65 +242,16 @@ public class NpcIndicatorsPlugin extends Plugin private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(FocusChanged.class) - .subscribe(this::onFocusChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(MenuEntryAdded.class) - .subscribe(this::onMenuEntryAdded) - ); - - this.addSubscription( - this.eventbus - .observableOfType(MenuOptionClicked.class) - .subscribe(this::onMenuOptionClicked) - ); - - this.addSubscription( - this.eventbus - .observableOfType(NpcSpawned.class) - .subscribe(this::onNpcSpawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(NpcDefinitionChanged.class) - .subscribe(this::onNpcDefinitionChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(NpcDespawned.class) - .subscribe(this::onNpcDespawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GraphicsObjectCreated.class) - .subscribe(this::onGraphicsObjectCreated) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameTick.class) - .subscribe(this::onGameTick) - ); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(FocusChanged.class, this, o -> this.onFocusChanged((FocusChanged) o)); + eventbus.subscribe(MenuEntryAdded.class, this, o -> this.onMenuEntryAdded((MenuEntryAdded) o)); + eventbus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); + eventbus.subscribe(NpcSpawned.class, this, o -> this.onNpcSpawned((NpcSpawned) o)); + eventbus.subscribe(NpcDefinitionChanged.class, this, o -> this.onNpcDefinitionChanged((NpcDefinitionChanged) o)); + eventbus.subscribe(NpcDespawned.class, this, o -> this.onNpcDespawned((NpcDespawned) o)); + eventbus.subscribe(GraphicsObjectCreated.class, this, o -> this.onGraphicsObjectCreated((GraphicsObjectCreated) o)); + eventbus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); } private void onGameStateChanged(GameStateChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java index 1b63b044a7..d6f820ee45 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java @@ -64,7 +64,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -109,7 +109,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener private KeyManager keyManager; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; @Getter(AccessLevel.PACKAGE) private RenderStyle objectMarkerRenderStyle; @@ -139,13 +139,7 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener @Override protected void shutDown() { - try - { - super.shutDown(); - } - catch (Exception e) - { - } + eventbus.unregister(this); overlayManager.remove(overlay); keyManager.unregisterKeyListener(this); @@ -156,65 +150,15 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(FocusChanged.class) - .subscribe(this::onFocusChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameObjectSpawned.class) - .subscribe(this::onGameObjectSpawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(DecorativeObjectSpawned.class) - .subscribe(this::onDecorativeObjectSpawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameObjectDespawned.class) - .subscribe(this::onGameObjectDespawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(DecorativeObjectDespawned.class) - .subscribe(this::onDecorativeObjectDespawned) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(MenuOptionClicked.class) - .subscribe(this::onMenuOptionClicked) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(MenuEntryAdded.class) - .subscribe(this::onMenuEntryAdded) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(FocusChanged.class, this, o -> this.onFocusChanged((FocusChanged) o)); + eventbus.subscribe(GameObjectSpawned.class, this, o -> this.onGameObjectSpawned((GameObjectSpawned) o)); + eventbus.subscribe(DecorativeObjectSpawned.class, this, o -> this.onDecorativeObjectSpawned((DecorativeObjectSpawned) o)); + eventbus.subscribe(GameObjectDespawned.class, this, o -> this.onGameObjectDespawned((GameObjectDespawned) o)); + eventbus.subscribe(DecorativeObjectDespawned.class, this, o -> this.onDecorativeObjectDespawned((DecorativeObjectDespawned) o)); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); + eventbus.subscribe(MenuEntryAdded.class, this, o -> this.onMenuEntryAdded((MenuEntryAdded) o)); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java index 0cdcf529e1..338c309d84 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java @@ -39,7 +39,7 @@ import static net.runelite.api.widgets.WidgetInfo.*; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.RuneLitePlusConfig; import net.runelite.client.discord.DiscordService; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -106,7 +106,7 @@ public class RuneLitePlusPlugin extends Plugin private ClientThread clientThread; @Inject - private EventBusImplementation eventbus; + private EventBus eventbus; private final RuneLitePlusKeyListener keyListener = new RuneLitePlusKeyListener(); private int entered = -1; @@ -169,7 +169,7 @@ public class RuneLitePlusPlugin extends Plugin @Override protected void shutDown() throws Exception { - super.shutDown(); + eventbus.unregister(this); entered = 0; enterIdx = 0; @@ -179,17 +179,8 @@ public class RuneLitePlusPlugin extends Plugin private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ScriptCallbackEvent.class) - .subscribe(this::onScriptCallbackEvent) - ); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); } private void onScriptCallbackEvent(ScriptCallbackEvent e) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java index 33adc900b0..e49ef782ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientToolbar.java @@ -29,7 +29,6 @@ import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.NavigationButtonAdded; import net.runelite.client.events.NavigationButtonRemoved; @@ -39,11 +38,11 @@ import net.runelite.client.events.NavigationButtonRemoved; @Singleton public class ClientToolbar { - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final Set buttons = new HashSet<>(); @Inject - private ClientToolbar(final EventBusImplementation eventBus) + private ClientToolbar(final EventBus eventBus) { this.eventBus = eventBus; } @@ -62,7 +61,7 @@ public class ClientToolbar if (buttons.add(button)) { - eventBus.post(new NavigationButtonAdded(button)); + eventBus.post(NavigationButtonAdded.class, new NavigationButtonAdded(button)); } } @@ -75,7 +74,7 @@ public class ClientToolbar { if (buttons.remove(button)) { - eventBus.post(new NavigationButtonRemoved(button)); + eventBus.post(NavigationButtonRemoved.class, new NavigationButtonRemoved(button)); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 7522520495..1a2c088db1 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -84,7 +84,7 @@ import net.runelite.client.config.ExpandResizeType; import net.runelite.client.config.Keybind; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.WarningOnExit; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.NavigationButtonAdded; import net.runelite.client.events.NavigationButtonRemoved; import net.runelite.client.input.KeyManager; @@ -159,7 +159,7 @@ public class ClientUI @Nullable Applet client, ConfigManager configManager, Provider clientThreadProvider, - EventBusImplementation eventbus) + EventBus eventbus) { this.properties = properties; this.config = config; @@ -169,17 +169,10 @@ public class ClientUI this.configManager = configManager; this.clientThreadProvider = clientThreadProvider; - eventbus.observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged); - - eventbus.observableOfType(NavigationButtonAdded.class) - .subscribe(this::onNavigationButtonAdded); - - eventbus.observableOfType(NavigationButtonRemoved.class) - .subscribe(this::onNavigationButtonRemoved); - - eventbus.observableOfType(GameStateChanged.class) - .subscribe(this::onGameStateChanged); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(NavigationButtonAdded.class, this, o -> this.onNavigationButtonAdded((NavigationButtonAdded) o)); + eventbus.subscribe(NavigationButtonRemoved.class, this, o -> this.onNavigationButtonRemoved((NavigationButtonRemoved) o)); + eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index d91e803cfc..5bdb5f595f 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -47,7 +47,6 @@ import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PluginChanged; @@ -104,19 +103,16 @@ public class OverlayManager private final Map> overlayLayers = new EnumMap<>(OverlayLayer.class); private final ConfigManager configManager; - private final EventBusImplementation eventBus; + private final EventBus eventBus; @Inject - private OverlayManager(final ConfigManager configManager, final EventBusImplementation eventBus) + private OverlayManager(final ConfigManager configManager, final EventBus eventBus) { this.configManager = configManager; this.eventBus = eventBus; - eventBus.observableOfType(PluginChanged.class) - .subscribe(this::onPluginChanged); - - eventBus.observableOfType(MenuOptionClicked.class) - .subscribe(this::onMenuOptionClicked); + eventBus.subscribe(PluginChanged.class, this, o -> this.onPluginChanged((PluginChanged) o)); + eventBus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); } private void onPluginChanged(final PluginChanged event) @@ -142,7 +138,7 @@ public class OverlayManager Optional optionalOverlayMenuEntry = menuEntries.stream() .filter(me -> me.getOption().equals(event.getOption())) .findAny(); - optionalOverlayMenuEntry.ifPresent(overlayMenuEntry -> eventBus.post(new OverlayMenuClicked(overlayMenuEntry, overlay))); + optionalOverlayMenuEntry.ifPresent(overlayMenuEntry -> eventBus.post(OverlayMenuClicked.class, new OverlayMenuClicked(overlayMenuEntry, overlay))); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 83f81592d8..c03789dbb2 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -50,16 +50,15 @@ import net.runelite.api.events.FocusChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseAdapter; import net.runelite.client.input.MouseManager; +import net.runelite.client.ui.FontManager; import net.runelite.client.ui.JagexColors; import net.runelite.client.util.ColorUtil; -import net.runelite.client.ui.FontManager; import net.runelite.client.util.MiscUtils; -import net.runelite.http.api.ws.messages.party.UserPart; @Singleton public class OverlayRenderer extends MouseAdapter implements KeyListener @@ -103,7 +102,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener final RuneLiteConfig runeLiteConfig, final MouseManager mouseManager, final KeyManager keyManager, - final EventBusImplementation eventbus) + final EventBus eventbus) { this.client = client; this.overlayManager = overlayManager; @@ -112,17 +111,10 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener keyManager.registerKeyListener(this); mouseManager.registerMouseListener(this); - eventbus.observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged); - - eventbus.observableOfType(FocusChanged.class) - .subscribe(this::onFocusChanged); - - eventbus.observableOfType(ClientTick.class) - .subscribe(this::onClientTick); - - eventbus.observableOfType(BeforeRender.class) - .subscribe(this::onBeforeRender); + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(FocusChanged.class, this, o -> this.onFocusChanged((FocusChanged) o)); + eventbus.subscribe(ClientTick.class, this, o -> this.onClientTick((ClientTick) o)); + eventbus.subscribe(BeforeRender.class, this, o -> this.onBeforeRender((BeforeRender) o)); } private void updateConfig() diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java index 3f5f11356f..d554524a46 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java @@ -39,7 +39,7 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.PluginDescriptor; @Singleton @@ -50,11 +50,11 @@ public class InfoBoxManager private final RuneLiteConfig runeLiteConfig; @Inject - private InfoBoxManager(final RuneLiteConfig runeLiteConfig, final EventBusImplementation eventbus) + private InfoBoxManager(final RuneLiteConfig runeLiteConfig, final EventBus eventbus) { this.runeLiteConfig = runeLiteConfig; - eventbus.observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged); + + eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java b/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java index a002334a2b..59b2111b84 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/util/DeferredEventBus.java @@ -24,28 +24,31 @@ */ package net.runelite.client.util; +import io.reactivex.annotations.NonNull; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import javax.inject.Inject; import javax.inject.Singleton; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; @Singleton -public class DeferredEventBus extends EventBusImplementation +public class DeferredEventBus extends EventBus { - private final EventBusImplementation eventBus; - private final Queue pendingEvents = new ConcurrentLinkedQueue<>(); + private final EventBus eventBus; + private final Queue> pendingEvents = new ConcurrentLinkedQueue<>(); @Inject - private DeferredEventBus(EventBusImplementation eventBus) + private DeferredEventBus(EventBus eventBus) { this.eventBus = eventBus; } @Override - public void post(Object object) + public void post(Class eventClass, @NonNull Object event) { - pendingEvents.add(object); + pendingEvents.add(new ImmutablePair<>(eventClass, event)); } public void replay() @@ -53,10 +56,10 @@ public class DeferredEventBus extends EventBusImplementation int size = pendingEvents.size(); while (size-- > 0) { - Object object = pendingEvents.poll(); - if (object != null) + Pair eventPair = pendingEvents.poll(); + if (eventPair != null) { - eventBus.post(object); + eventBus.post(eventPair.getKey(), eventPair.getValue()); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java index 61b61d75e6..d7cdaed8fe 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java +++ b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java @@ -51,12 +51,11 @@ import net.runelite.api.events.PlayerSpawned; import net.runelite.api.events.WallObjectSpawned; import net.runelite.client.callback.ClientThread; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; @Singleton public class GameEventManager { - private final EventBusImplementation eventBus = new EventBusImplementation(); + private final EventBus eventBus = new EventBus(); private final Client client; private final ClientThread clientThread; @@ -119,7 +118,7 @@ public class GameEventManager if (itemContainer != null) { - eventBus.post(new ItemContainerChanged(inventory.getId(), itemContainer)); + eventBus.post(ItemContainerChanged.class, new ItemContainerChanged(inventory.getId(), itemContainer)); } } @@ -128,7 +127,7 @@ public class GameEventManager if (npc != null) { final NpcSpawned npcSpawned = new NpcSpawned(npc); - eventBus.post(npcSpawned); + eventBus.post(NpcSpawned.class, npcSpawned); } } @@ -137,7 +136,7 @@ public class GameEventManager if (player != null) { final PlayerSpawned playerSpawned = new PlayerSpawned(player); - eventBus.post(playerSpawned); + eventBus.post(PlayerSpawned.class, playerSpawned); } } @@ -148,7 +147,7 @@ public class GameEventManager final WallObjectSpawned objectSpawned = new WallObjectSpawned(); objectSpawned.setTile(tile); objectSpawned.setWallObject(object); - eventBus.post(objectSpawned); + eventBus.post(WallObjectSpawned.class, objectSpawned); }); Optional.ofNullable(tile.getDecorativeObject()).ifPresent(object -> @@ -156,7 +155,7 @@ public class GameEventManager final DecorativeObjectSpawned objectSpawned = new DecorativeObjectSpawned(); objectSpawned.setTile(tile); objectSpawned.setDecorativeObject(object); - eventBus.post(objectSpawned); + eventBus.post(DecorativeObjectSpawned.class, objectSpawned); }); Optional.ofNullable(tile.getGroundObject()).ifPresent(object -> @@ -164,7 +163,7 @@ public class GameEventManager final GroundObjectSpawned objectSpawned = new GroundObjectSpawned(); objectSpawned.setTile(tile); objectSpawned.setGroundObject(object); - eventBus.post(objectSpawned); + eventBus.post(GroundObjectSpawned.class, objectSpawned); }); Arrays.stream(tile.getGameObjects()) @@ -174,7 +173,7 @@ public class GameEventManager final GameObjectSpawned objectSpawned = new GameObjectSpawned(); objectSpawned.setTile(tile); objectSpawned.setGameObject(object); - eventBus.post(objectSpawned); + eventBus.post(GameObjectSpawned.class, objectSpawned); }); Optional.ofNullable(tile.getItemLayer()).ifPresent(itemLayer -> @@ -188,7 +187,7 @@ public class GameEventManager current = current.getNext(); final ItemSpawned itemSpawned = new ItemSpawned(tile, item); - eventBus.post(itemSpawned); + eventBus.post(ItemSpawned.class, itemSpawned); } }); }); diff --git a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java index dfe83b635b..02300e7b52 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java @@ -33,10 +33,9 @@ import javax.inject.Singleton; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import net.runelite.api.events.GameStateChanged; import net.runelite.client.account.AccountSession; import net.runelite.client.account.SessionManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.PartyChanged; import net.runelite.http.api.ws.messages.party.Join; import net.runelite.http.api.ws.messages.party.Part; @@ -52,7 +51,7 @@ public class PartyService private final WSClient wsClient; private final SessionManager sessionManager; - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final List members = new ArrayList<>(); @Getter @@ -65,17 +64,14 @@ public class PartyService private String username; @Inject - private PartyService(final WSClient wsClient, final SessionManager sessionManager, final EventBusImplementation eventBus) + private PartyService(final WSClient wsClient, final SessionManager sessionManager, final EventBus eventBus) { this.wsClient = wsClient; this.sessionManager = sessionManager; this.eventBus = eventBus; - eventBus.observableOfType(UserJoin.class) - .subscribe(this::onUserJoin); - - eventBus.observableOfType(UserPart.class) - .subscribe(this::onUserPart); + eventBus.subscribe(UserJoin.class, this, o -> this.onUserJoin((UserJoin) o)); + eventBus.subscribe(UserPart.class, this, o -> this.onUserPart((UserPart) o)); } public void changeParty(UUID newParty) @@ -100,7 +96,7 @@ public class PartyService wsClient.changeSession(null); } - eventBus.post(new PartyChanged(partyId)); + eventBus.post(PartyChanged.class, new PartyChanged(partyId)); return; } @@ -113,7 +109,7 @@ public class PartyService wsClient.changeSession(uuid); } - eventBus.post(new PartyChanged(partyId)); + eventBus.post(PartyChanged.class, new PartyChanged(partyId)); wsClient.send(new Join(partyId, username)); } diff --git a/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java b/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java index ca8d1ab739..8006b5ee1e 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/WSClient.java @@ -35,7 +35,6 @@ import javax.inject.Singleton; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.http.api.RuneLiteAPI; import net.runelite.http.api.ws.WebsocketGsonFactory; import net.runelite.http.api.ws.WebsocketMessage; @@ -50,7 +49,7 @@ import okhttp3.WebSocketListener; @Singleton public class WSClient extends WebSocketListener implements AutoCloseable { - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final Collection> messages = new HashSet<>(); private volatile Gson gson; @@ -59,7 +58,7 @@ public class WSClient extends WebSocketListener implements AutoCloseable private WebSocket webSocket; @Inject - private WSClient(EventBusImplementation eventBus) + private WSClient(EventBus eventBus) { this.eventBus = eventBus; this.gson = WebsocketGsonFactory.build(WebsocketGsonFactory.factory(messages)); @@ -175,7 +174,7 @@ public class WSClient extends WebSocketListener implements AutoCloseable } log.debug("Got: {}", text); - eventBus.post(message); + eventBus.post(PartyMessage.class, message); } @Override diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java index 65951bc9c5..09aaf32a92 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java @@ -188,7 +188,7 @@ public abstract class RSActorMixin implements RSActor { AnimationChanged animationChange = new AnimationChanged(); animationChange.setActor(this); - client.getCallbacks().post(animationChange); + client.getCallbacks().post(AnimationChanged.class, animationChange); } @FieldHook("spotAnimation") @@ -197,7 +197,7 @@ public abstract class RSActorMixin implements RSActor { SpotAnimationChanged spotAnimationChanged = new SpotAnimationChanged(); spotAnimationChanged.setActor(this); - client.getCallbacks().post(spotAnimationChanged); + client.getCallbacks().post(SpotAnimationChanged.class, spotAnimationChanged); } @FieldHook("targetIndex") @@ -205,7 +205,7 @@ public abstract class RSActorMixin implements RSActor public void interactingChanged(int idx) { InteractingChanged interactingChanged = new InteractingChanged(this, getInteracting()); - client.getCallbacks().post(interactingChanged); + client.getCallbacks().post(InteractingChanged.class, interactingChanged); } @FieldHook("overheadText") @@ -216,7 +216,7 @@ public abstract class RSActorMixin implements RSActor if (overheadText != null) { OverheadTextChanged overheadTextChanged = new OverheadTextChanged(this, overheadText); - client.getCallbacks().post(overheadTextChanged); + client.getCallbacks().post(OverheadTextChanged.class, overheadTextChanged); } } @@ -252,7 +252,7 @@ public abstract class RSActorMixin implements RSActor client.getLogger().debug("You died!"); LocalPlayerDeath event = LocalPlayerDeath.INSTANCE; - client.getCallbacks().post(event); + client.getCallbacks().post(LocalPlayerDeath.class, event); } else if (this instanceof RSNPC) { @@ -281,6 +281,6 @@ public abstract class RSActorMixin implements RSActor final HitsplatApplied event = new HitsplatApplied(); event.setActor(this); event.setHitsplat(hitsplat); - client.getCallbacks().post(event); + client.getCallbacks().post(HitsplatApplied.class, event); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java index beacf0eec4..3b2fba39bc 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java @@ -28,7 +28,7 @@ public abstract class RSClanChatMixin implements RSClanChat } ClanMemberJoined event = new ClanMemberJoined(member); - client.getCallbacks().postDeferred(event); + client.getCallbacks().postDeferred(ClanMemberJoined.class, event); } @Inject @@ -42,6 +42,6 @@ public abstract class RSClanChatMixin implements RSClanChat } ClanMemberLeft event = new ClanMemberLeft(member); - client.getCallbacks().postDeferred(event); + client.getCallbacks().postDeferred(ClanMemberLeft.class, event); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index cca4cae90d..9e188974d9 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -698,7 +698,7 @@ public abstract class RSClientMixin implements RSClient ) ); - client.getCallbacks().post(event); + client.getCallbacks().post(MenuEntryAdded.class, event); } } @@ -909,7 +909,7 @@ public abstract class RSClientMixin implements RSClient { DraggingWidgetChanged draggingWidgetChanged = new DraggingWidgetChanged(); draggingWidgetChanged.setDraggingWidget(client.isDraggingWidget()); - client.getCallbacks().post(draggingWidgetChanged); + client.getCallbacks().post(DraggingWidgetChanged.class, draggingWidgetChanged); } @Inject @@ -947,7 +947,7 @@ public abstract class RSClientMixin implements RSClient { WidgetLoaded event = new WidgetLoaded(); event.setGroupId(groupId); - client.getCallbacks().post(event); + client.getCallbacks().post(WidgetLoaded.class, event); } } @@ -985,7 +985,7 @@ public abstract class RSClientMixin implements RSClient { Skill updatedSkill = possibleSkills[idx]; experienceChanged.setSkill(updatedSkill); - client.getCallbacks().post(experienceChanged); + client.getCallbacks().post(ExperienceChanged.class, experienceChanged); } } @@ -1000,7 +1000,7 @@ public abstract class RSClientMixin implements RSClient Skill updatedSkill = skills[idx]; BoostedLevelChanged boostedLevelChanged = new BoostedLevelChanged(); boostedLevelChanged.setSkill(updatedSkill); - client.getCallbacks().post(boostedLevelChanged); + client.getCallbacks().post(BoostedLevelChanged.class, boostedLevelChanged); } } @@ -1019,7 +1019,7 @@ public abstract class RSClientMixin implements RSClient PlayerMenuOptionsChanged optionsChanged = new PlayerMenuOptionsChanged(); optionsChanged.setIndex(idx); - client.getCallbacks().post(optionsChanged); + client.getCallbacks().post(PlayerMenuOptionsChanged.class, optionsChanged); } @FieldHook("gameState") @@ -1028,7 +1028,7 @@ public abstract class RSClientMixin implements RSClient { GameStateChanged gameStateChange = new GameStateChanged(); gameStateChange.setGameState(client.getGameState()); - client.getCallbacks().post(gameStateChange); + client.getCallbacks().post(GameStateChanged.class, gameStateChange); } @@ -1047,7 +1047,7 @@ public abstract class RSClientMixin implements RSClient { npc.setIndex(idx); - client.getCallbacks().postDeferred(new NpcSpawned(npc)); + client.getCallbacks().postDeferred(NpcSpawned.class, new NpcSpawned(npc)); } } @@ -1067,11 +1067,11 @@ public abstract class RSClientMixin implements RSClient if (oldPlayer != null) { - client.getCallbacks().post(new PlayerDespawned(oldPlayer)); + client.getCallbacks().post(PlayerDespawned.class, new PlayerDespawned(oldPlayer)); } if (player != null) { - client.getCallbacks().postDeferred(new PlayerSpawned(player)); + client.getCallbacks().postDeferred(PlayerSpawned.class, new PlayerSpawned(player)); } } @@ -1094,7 +1094,7 @@ public abstract class RSClientMixin implements RSClient GrandExchangeOfferChanged offerChangedEvent = new GrandExchangeOfferChanged(); offerChangedEvent.setOffer(internalOffer); offerChangedEvent.setSlot(idx); - client.getCallbacks().post(offerChangedEvent); + client.getCallbacks().post(GrandExchangeOfferChanged.class, offerChangedEvent); } @FieldHook("Varps_main") @@ -1103,7 +1103,7 @@ public abstract class RSClientMixin implements RSClient { VarbitChanged varbitChanged = new VarbitChanged(); varbitChanged.setIndex(idx); - client.getCallbacks().post(varbitChanged); + client.getCallbacks().post(VarbitChanged.class, varbitChanged); } @FieldHook("isResizable") @@ -1117,7 +1117,7 @@ public abstract class RSClientMixin implements RSClient { ResizeableChanged resizeableChanged = new ResizeableChanged(); resizeableChanged.setResized(isResized); - client.getCallbacks().post(resizeableChanged); + client.getCallbacks().post(ResizeableChanged.class, resizeableChanged); oldIsResized = isResized; } @@ -1127,21 +1127,21 @@ public abstract class RSClientMixin implements RSClient @Inject public static void clanMemberManagerChanged(int idx) { - client.getCallbacks().post(new ClanChanged(client.getClanMemberManager() != null)); + client.getCallbacks().post(ClanChanged.class, new ClanChanged(client.getClanMemberManager() != null)); } @FieldHook("canvasWidth") @Inject public static void canvasWidthChanged(int idx) { - client.getCallbacks().post(CanvasSizeChanged.INSTANCE); + client.getCallbacks().post(CanvasSizeChanged.class, CanvasSizeChanged.INSTANCE); } @FieldHook("canvasHeight") @Inject public static void canvasHeightChanged(int idx) { - client.getCallbacks().post(CanvasSizeChanged.INSTANCE); + client.getCallbacks().post(CanvasSizeChanged.class, CanvasSizeChanged.INSTANCE); } @Inject @@ -1305,7 +1305,7 @@ public abstract class RSClientMixin implements RSClient authentic ); - client.getCallbacks().post(menuOptionClicked); + client.getCallbacks().post(MenuOptionClicked.class, menuOptionClicked); if (menuOptionClicked.isConsumed()) { @@ -1329,7 +1329,7 @@ public abstract class RSClientMixin implements RSClient { if (client.getTempMenuAction() != null) { - client.getCallbacks().post(WidgetPressed.INSTANCE); + client.getCallbacks().post(WidgetPressed.class, WidgetPressed.INSTANCE); } } @@ -1337,7 +1337,7 @@ public abstract class RSClientMixin implements RSClient @Inject public static void onUsernameChanged(int idx) { - client.getCallbacks().post(UsernameChanged.INSTANCE); + client.getCallbacks().post(UsernameChanged.class, UsernameChanged.INSTANCE); } @Override @@ -1368,7 +1368,7 @@ public abstract class RSClientMixin implements RSClient { final MenuOpened event = new MenuOpened(); event.setMenuEntries(getMenuEntries()); - callbacks.post(event); + callbacks.post(MenuOpened.class, event); } @Inject @@ -1395,7 +1395,7 @@ public abstract class RSClientMixin implements RSClient final ChatMessageType chatMessageType = ChatMessageType.of(type); final ChatMessage chatMessage = new ChatMessage(messageNode, chatMessageType, name, message, sender, messageNode.getTimestamp()); - client.getCallbacks().post(chatMessage); + client.getCallbacks().post(ChatMessage.class, chatMessage); } @Inject @@ -1579,7 +1579,7 @@ public abstract class RSClientMixin implements RSClient @FieldHook("cycleCntr") public static void onCycleCntrChanged(int idx) { - client.getCallbacks().post(ClientTick.INSTANCE); + client.getCallbacks().post(ClientTick.class, ClientTick.INSTANCE); } @Copy("shouldLeftClickOpenMenu") @@ -1597,7 +1597,7 @@ public abstract class RSClientMixin implements RSClient } MenuShouldLeftClick menuShouldLeftClick = new MenuShouldLeftClick(); - client.getCallbacks().post(menuShouldLeftClick); + client.getCallbacks().post(MenuShouldLeftClick.class, menuShouldLeftClick); if (menuShouldLeftClick.isForceRightClick()) { diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java index ed1a4a70b9..6d6ba9711f 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java @@ -96,7 +96,7 @@ public abstract class RSDynamicObjectMixin implements RSDynamicObject DynamicObjectAnimationChanged dynamicObjectAnimationChanged = new DynamicObjectAnimationChanged(); dynamicObjectAnimationChanged.setObject(id); dynamicObjectAnimationChanged.setAnimation(animationID); - client.getCallbacks().post(dynamicObjectAnimationChanged); + client.getCallbacks().post(DynamicObjectAnimationChanged.class, dynamicObjectAnimationChanged); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendSystemMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendSystemMixin.java index d273a3bf33..f8237649c5 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendSystemMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendSystemMixin.java @@ -20,7 +20,7 @@ public abstract class RSFriendSystemMixin implements RSFriendSystem public void rl$removeFriend(String friendName) { FriendRemoved friendRemoved = new FriendRemoved(friendName); - client.getCallbacks().post(friendRemoved); + client.getCallbacks().post(FriendRemoved.class, friendRemoved); } @MethodHook("addFriend") @@ -28,6 +28,6 @@ public abstract class RSFriendSystemMixin implements RSFriendSystem public void rl$addFriend(String friendName) { FriendAdded friendAdded = new FriendAdded(friendName); - client.getCallbacks().post(friendAdded); + client.getCallbacks().post(FriendAdded.class, friendAdded); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSGameShellMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSGameShellMixin.java index e45d2612e7..2f01378803 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSGameShellMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSGameShellMixin.java @@ -72,7 +72,7 @@ public abstract class RSGameShellMixin implements RSGameShell { final FocusChanged focusChanged = new FocusChanged(); focusChanged.setFocused(true); - client.getCallbacks().post(focusChanged); + client.getCallbacks().post(FocusChanged.class, focusChanged); } @Inject diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSGraphicsObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSGraphicsObjectMixin.java index c7757732ba..4d5b4d9371 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSGraphicsObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSGraphicsObjectMixin.java @@ -18,7 +18,7 @@ public abstract class RSGraphicsObjectMixin implements RSGraphicsObject RSGraphicsObjectMixin() { final GraphicsObjectCreated event = new GraphicsObjectCreated(this); - client.getCallbacks().post(event); + client.getCallbacks().post(GraphicsObjectCreated.class, event); } @Override diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSGroundItemMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSGroundItemMixin.java index 23d0ce6586..f85f894617 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSGroundItemMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSGroundItemMixin.java @@ -67,7 +67,7 @@ public abstract class RSGroundItemMixin implements RSGroundItem client.getLogger().debug("Item quantity changed: {} ({} -> {})", getId(), getQuantity(), quantity); ItemQuantityChanged itemQuantityChanged = new ItemQuantityChanged(this, getTile(), getQuantity(), quantity); - client.getCallbacks().post(itemQuantityChanged); + client.getCallbacks().post(ItemQuantityChanged.class, itemQuantityChanged); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSHealthBarDefinitionMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSHealthBarDefinitionMixin.java index 383892e7b5..6c1090bf30 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSHealthBarDefinitionMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSHealthBarDefinitionMixin.java @@ -21,6 +21,6 @@ public abstract class RSHealthBarDefinitionMixin implements RSHealthBarDefinitio { PostHealthBar postHealthBar = new PostHealthBar(); postHealthBar.setHealthBar(this); - client.getCallbacks().post(postHealthBar); + client.getCallbacks().post(PostHealthBar.class, postHealthBar); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java index fe1149b101..a2d807e09c 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSItemContainerMixin.java @@ -97,6 +97,6 @@ public abstract class RSItemContainerMixin implements RSItemContainer rl$lastContainer = itemContainerId; ItemContainerChanged event = new ItemContainerChanged(itemContainerId, client.getItemContainer(container)); - client.getCallbacks().postDeferred(event); + client.getCallbacks().postDeferred(ItemContainerChanged.class, event); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSItemDefinitionMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSItemDefinitionMixin.java index 68105f05bc..69d0a0cf27 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSItemDefinitionMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSItemDefinitionMixin.java @@ -62,6 +62,6 @@ public abstract class RSItemDefinitionMixin implements RSItemDefinition { final PostItemDefinition event = new PostItemDefinition(); event.setItemDefinition(this); - client.getCallbacks().post(event); + client.getCallbacks().post(PostItemDefinition.class, event); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyHandlerMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyHandlerMixin.java index a7879dee08..d5e4a71392 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyHandlerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyHandlerMixin.java @@ -66,6 +66,6 @@ public abstract class RSKeyHandlerMixin implements RSKeyHandler { final FocusChanged focusChanged = new FocusChanged(); focusChanged.setFocused(false); - client.getCallbacks().post(focusChanged); + client.getCallbacks().post(FocusChanged.class, focusChanged); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCDefinitionMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCDefinitionMixin.java index 07d16f949a..345605597a 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCDefinitionMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCDefinitionMixin.java @@ -45,6 +45,6 @@ public abstract class RSNPCDefinitionMixin implements RSNPCDefinition NpcActionChanged npcActionChanged = new NpcActionChanged(); npcActionChanged.setNpcDefinition(this); npcActionChanged.setIdx(idx); - client.getCallbacks().post(npcActionChanged); + client.getCallbacks().post(NpcActionChanged.class, npcActionChanged); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java index e33afa700b..bb7932fe63 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java @@ -110,11 +110,11 @@ public abstract class RSNPCMixin implements RSNPC { if (composition == null) { - client.getCallbacks().post(new NpcDespawned(this)); + client.getCallbacks().post(NpcDespawned.class, new NpcDespawned(this)); } else if (this.getId() != -1) { - client.getCallbacks().post(new NpcDefinitionChanged(this)); + client.getCallbacks().post(NpcDefinitionChanged.class, new NpcDefinitionChanged(this)); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java index 1c10eeb835..c7ea22cac6 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSProjectileMixin.java @@ -48,7 +48,7 @@ public abstract class RSProjectileMixin implements RSProjectile { final ProjectileSpawned projectileSpawned = new ProjectileSpawned(); projectileSpawned.setProjectile(this); - client.getCallbacks().post(projectileSpawned); + client.getCallbacks().post(ProjectileSpawned.class, projectileSpawned); } @Inject @@ -109,6 +109,6 @@ public abstract class RSProjectileMixin implements RSProjectile projectileMoved.setProjectile(this); projectileMoved.setPosition(position); projectileMoved.setZ(targetZ); - client.getCallbacks().post(projectileMoved); + client.getCallbacks().post(ProjectileMoved.class, projectileMoved); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java index ed17140360..7e7f158253 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java @@ -129,14 +129,14 @@ public abstract class RSTileMixin implements RSTile WallObjectDespawned wallObjectDespawned = new WallObjectDespawned(); wallObjectDespawned.setTile(this); wallObjectDespawned.setWallObject(previous); - client.getCallbacks().post(wallObjectDespawned); + client.getCallbacks().post(WallObjectDespawned.class, wallObjectDespawned); } else if (current != null && previous == null) { WallObjectSpawned wallObjectSpawned = new WallObjectSpawned(); wallObjectSpawned.setTile(this); wallObjectSpawned.setWallObject(current); - client.getCallbacks().post(wallObjectSpawned); + client.getCallbacks().post(WallObjectSpawned.class, wallObjectSpawned); } else if (current != null) { @@ -144,7 +144,7 @@ public abstract class RSTileMixin implements RSTile wallObjectChanged.setTile(this); wallObjectChanged.setPrevious(previous); wallObjectChanged.setWallObject(current); - client.getCallbacks().post(wallObjectChanged); + client.getCallbacks().post(WallObjectChanged.class, wallObjectChanged); } } @@ -162,14 +162,14 @@ public abstract class RSTileMixin implements RSTile DecorativeObjectDespawned decorativeObjectDespawned = new DecorativeObjectDespawned(); decorativeObjectDespawned.setTile(this); decorativeObjectDespawned.setDecorativeObject(previous); - client.getCallbacks().post(decorativeObjectDespawned); + client.getCallbacks().post(DecorativeObjectDespawned.class, decorativeObjectDespawned); } else if (current != null && previous == null) { DecorativeObjectSpawned decorativeObjectSpawned = new DecorativeObjectSpawned(); decorativeObjectSpawned.setTile(this); decorativeObjectSpawned.setDecorativeObject(current); - client.getCallbacks().post(decorativeObjectSpawned); + client.getCallbacks().post(DecorativeObjectSpawned.class, decorativeObjectSpawned); } else if (current != null) { @@ -177,7 +177,7 @@ public abstract class RSTileMixin implements RSTile decorativeObjectChanged.setTile(this); decorativeObjectChanged.setPrevious(previous); decorativeObjectChanged.setDecorativeObject(current); - client.getCallbacks().post(decorativeObjectChanged); + client.getCallbacks().post(DecorativeObjectChanged.class, decorativeObjectChanged); } } @@ -195,14 +195,14 @@ public abstract class RSTileMixin implements RSTile GroundObjectDespawned groundObjectDespawned = new GroundObjectDespawned(); groundObjectDespawned.setTile(this); groundObjectDespawned.setGroundObject(previous); - client.getCallbacks().post(groundObjectDespawned); + client.getCallbacks().post(GroundObjectDespawned.class, groundObjectDespawned); } else if (current != null && previous == null) { GroundObjectSpawned groundObjectSpawned = new GroundObjectSpawned(); groundObjectSpawned.setTile(this); groundObjectSpawned.setGroundObject(current); - client.getCallbacks().post(groundObjectSpawned); + client.getCallbacks().post(GroundObjectSpawned.class, groundObjectSpawned); } else if (current != null) { @@ -210,7 +210,7 @@ public abstract class RSTileMixin implements RSTile groundObjectChanged.setTile(this); groundObjectChanged.setPrevious(previous); groundObjectChanged.setGroundObject(current); - client.getCallbacks().post(groundObjectChanged); + client.getCallbacks().post(GroundObjectChanged.class, groundObjectChanged); } } @@ -285,7 +285,7 @@ public abstract class RSTileMixin implements RSTile GameObjectDespawned gameObjectDespawned = new GameObjectDespawned(); gameObjectDespawned.setTile(this); gameObjectDespawned.setGameObject(previous); - client.getCallbacks().post(gameObjectDespawned); + client.getCallbacks().post(GameObjectDespawned.class, gameObjectDespawned); } else if (previous == null) { @@ -299,7 +299,7 @@ public abstract class RSTileMixin implements RSTile GameObjectSpawned gameObjectSpawned = new GameObjectSpawned(); gameObjectSpawned.setTile(this); gameObjectSpawned.setGameObject(current); - client.getCallbacks().post(gameObjectSpawned); + client.getCallbacks().post(GameObjectSpawned.class, gameObjectSpawned); } else { @@ -314,7 +314,7 @@ public abstract class RSTileMixin implements RSTile gameObjectsChanged.setTile(this); gameObjectsChanged.setPrevious(previous); gameObjectsChanged.setGameObject(current); - client.getCallbacks().post(gameObjectsChanged); + client.getCallbacks().post(GameObjectChanged.class, gameObjectsChanged); } } @@ -340,7 +340,7 @@ public abstract class RSTileMixin implements RSTile { RSGroundItem item = (RSGroundItem) cur; ItemDespawned itemDespawned = new ItemDespawned(this, item); - client.getCallbacks().post(itemDespawned); + client.getCallbacks().post(ItemDespawned.class, itemDespawned); } } lastGroundItems[z][x][y] = newQueue; @@ -358,7 +358,7 @@ public abstract class RSTileMixin implements RSTile if (lastUnlink != null) { ItemDespawned itemDespawned = new ItemDespawned(this, lastUnlink); - client.getCallbacks().post(itemDespawned); + client.getCallbacks().post(ItemDespawned.class, itemDespawned); } return; } @@ -370,7 +370,7 @@ public abstract class RSTileMixin implements RSTile if (lastUnlink != null) { ItemDespawned itemDespawned = new ItemDespawned(this, lastUnlink); - client.getCallbacks().post(itemDespawned); + client.getCallbacks().post(ItemDespawned.class, itemDespawned); } return; } @@ -403,7 +403,7 @@ public abstract class RSTileMixin implements RSTile if (lastUnlink != null && lastUnlink != previous && lastUnlink != next) { ItemDespawned itemDespawned = new ItemDespawned(this, lastUnlink); - client.getCallbacks().post(itemDespawned); + client.getCallbacks().post(ItemDespawned.class, itemDespawned); } if (current == null) @@ -418,7 +418,7 @@ public abstract class RSTileMixin implements RSTile item.setY(y); ItemSpawned itemSpawned = new ItemSpawned(this, item); - client.getCallbacks().post(itemSpawned); + client.getCallbacks().post(ItemSpawned.class, itemSpawned); current = forward ? current.getNext() : current.getPrevious(); diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSVarcsMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSVarcsMixin.java index 86a757092b..ecb48f919c 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSVarcsMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSVarcsMixin.java @@ -19,13 +19,13 @@ public abstract class RSVarcsMixin implements RSVarcs @Inject public void onVarCIntChanged(int id, int value) { - client.getCallbacks().post(new VarClientIntChanged(id)); + client.getCallbacks().post(VarClientIntChanged.class, new VarClientIntChanged(id)); } @MethodHook(value = "setString", end = true) @Inject public void onVarCStrChanged(int id, String value) { - client.getCallbacks().post(new VarClientStrChanged(id)); + client.getCallbacks().post(VarClientStrChanged.class, new VarClientStrChanged(id)); } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java index 55db558d24..543bdf5c48 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java @@ -417,7 +417,7 @@ public abstract class RSWidgetMixin implements RSWidget event.setWidget(this); event.setHidden(hidden); - client.getCallbacks().post(event); + client.getCallbacks().post(WidgetHiddenChanged.class, event); RSWidget[] children = getChildren(); @@ -502,7 +502,7 @@ public abstract class RSWidgetMixin implements RSWidget client.getLogger().trace("Posting widget position changed"); WidgetPositioned widgetPositioned = WidgetPositioned.INSTANCE; - client.getCallbacks().postDeferred(widgetPositioned); + client.getCallbacks().postDeferred(WidgetPositioned.class, widgetPositioned); } @Inject diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSWorldMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSWorldMixin.java index eefb479963..902e0fd96c 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSWorldMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSWorldMixin.java @@ -63,7 +63,7 @@ public abstract class RSWorldMixin implements RSWorld { // this is the last world in the list. WorldListLoad worldLoad = new WorldListLoad(worlds); - client.getCallbacks().post(worldLoad); + client.getCallbacks().post(WorldListLoad.class, worldLoad); } } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/ScriptVMMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/ScriptVMMixin.java index ab372ca932..b6c439d9fb 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/ScriptVMMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/ScriptVMMixin.java @@ -101,7 +101,7 @@ public abstract class ScriptVMMixin implements RSClient ScriptCallbackEvent event = new ScriptCallbackEvent(); event.setScript(currentScript); event.setEventName(stringOp); - client.getCallbacks().post(event); + client.getCallbacks().post(ScriptCallbackEvent.class, event); return true; } return false; diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/SoundEffectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/SoundEffectMixin.java index 6338d07521..92738df760 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/SoundEffectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/SoundEffectMixin.java @@ -123,7 +123,7 @@ public abstract class SoundEffectMixin implements RSClient SoundEffectPlayed event = new SoundEffectPlayed(); event.setSoundId(client.getQueuedSoundEffectIDs()[soundIndex]); event.setDelay(client.getQueuedSoundEffectDelays()[soundIndex]); - client.getCallbacks().post(event); + client.getCallbacks().post(SoundEffectPlayed.class, event); } else { @@ -139,7 +139,7 @@ public abstract class SoundEffectMixin implements RSClient event.setSceneY(y); event.setRange(range); event.setDelay(client.getQueuedSoundEffectDelays()[soundIndex]); - client.getCallbacks().post(event); + client.getCallbacks().post(AreaSoundEffectPlayed.class, event); } } From 5124890d898487b82aebaa9f9bb668241f0a5a7a Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 03:59:25 +0200 Subject: [PATCH 03/15] Add back unregisters --- .../net/runelite/client/game/chatbox/ChatboxPanelManager.java | 2 +- .../main/java/net/runelite/client/plugins/PluginManager.java | 2 +- .../main/java/net/runelite/client/util/GameEventManager.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java index 15d5229006..dfdcf1b4e5 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java @@ -180,7 +180,7 @@ public class ChatboxPanelManager log.warn("Exception closing {}", currentInput.getClass(), e); } - // eventBus.unregister(currentInput); + eventBus.unregister(currentInput); if (currentInput instanceof KeyListener) { keyManager.unregisterKeyListener((KeyListener) currentInput); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 40b199cfe6..43620893b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -392,7 +392,7 @@ public class PluginManager try { unschedule(plugin); - // eventBus.unregister(plugin); + eventBus.unregister(plugin); // plugins always stop in the event thread SwingUtilities.invokeAndWait(() -> diff --git a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java index d7cdaed8fe..7ee02b398a 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java +++ b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java @@ -192,7 +192,7 @@ public class GameEventManager }); }); - // eventBus.unregister(subscriber); + eventBus.unregister(subscriber); }); } } From c9cdab9df595a6dcc1834b74b5d87dae97a7a8a1 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 07:13:39 +0200 Subject: [PATCH 04/15] Implement interface --- .../net/runelite/client/eventbus/EventBus.java | 15 ++++++++++++--- .../client/eventbus/EventBusInterface.java | 13 +++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/eventbus/EventBusInterface.java diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java index 97cb77c6d6..d68e93d341 100644 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java @@ -8,10 +8,11 @@ import io.reactivex.disposables.Disposable; import io.reactivex.functions.Consumer; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import javax.inject.Singleton; @Singleton -public class EventBus +public class EventBus implements EventBusInterface { private Map, Relay> subjectList = new HashMap<>(); private Map subscriptionsMap = new HashMap<>(); @@ -35,12 +36,19 @@ public class EventBus return compositeDisposable; } - public void subscribe(Class eventClass, @NonNull Object lifecycle, @NonNull Consumer action) + @Override + // Subscribe on lifecycle (for example from plugin startUp -> shutdown) + public void subscribe(Class eventClass, @NonNull Object lifecycle, @NonNull Consumer action) { - Disposable disposable = getSubject(eventClass).subscribe(action); + Disposable disposable = getSubject(eventClass) + .filter(Objects::nonNull) // Filter out null objects, better safe than sorry + .cast(eventClass) // Cast it for easier usage + .subscribe(action); + getCompositeDisposable(lifecycle).add(disposable); } + @Override public void unregister(@NonNull Object lifecycle) { //We have to remove the composition from the map, because once you dispose it can't be used anymore @@ -51,6 +59,7 @@ public class EventBus } } + @Override public void post(Class eventClass, @NonNull Object event) { getSubject(eventClass).accept(event); diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusInterface.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusInterface.java new file mode 100644 index 0000000000..d0858562ef --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBusInterface.java @@ -0,0 +1,13 @@ +package net.runelite.client.eventbus; + +import io.reactivex.annotations.NonNull; +import io.reactivex.functions.Consumer; + +public interface EventBusInterface +{ + void subscribe(Class eventClass, @NonNull Object lifecycle, @NonNull Consumer action); + + void unregister(@NonNull Object lifecycle); + + void post(Class eventClass, @NonNull Object event); +} From d08a7775fafb9841ab09e5fb584cbf94bb885045 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 04:14:19 +0200 Subject: [PATCH 05/15] The eventbus handles the casting now -> use method reference --- .../client/account/SessionManager.java | 2 +- .../client/chat/ChatCommandManager.java | 2 +- .../client/chat/ChatMessageManager.java | 10 +++++----- .../runelite/client/chat/CommandManager.java | 2 +- .../net/runelite/client/game/ClanManager.java | 4 ++-- .../net/runelite/client/game/ItemManager.java | 4 ++-- .../net/runelite/client/game/LootManager.java | 14 ++++++------- .../game/chatbox/ChatboxPanelManager.java | 4 ++-- .../runelite/client/menus/MenuManager.java | 14 ++++++------- .../client/plugins/PluginManager.java | 4 ++-- .../plugins/aoewarnings/AoeWarningPlugin.java | 12 +++++------ .../client/plugins/cannon/CannonPlugin.java | 12 +++++------ .../client/plugins/gpu/GpuPlugin.java | 15 ++++---------- .../client/plugins/info/InfoPlugin.java | 4 ++-- .../npchighlight/NpcIndicatorsPlugin.java | 20 +++++++++---------- .../ObjectIndicatorsPlugin.java | 18 ++++++++--------- .../runeliteplus/RuneLitePlusPlugin.java | 4 ++-- .../java/net/runelite/client/ui/ClientUI.java | 8 ++++---- .../client/ui/overlay/OverlayManager.java | 4 ++-- .../client/ui/overlay/OverlayRenderer.java | 8 ++++---- .../ui/overlay/infobox/InfoBoxManager.java | 2 +- .../net/runelite/client/ws/PartyService.java | 4 ++-- 22 files changed, 82 insertions(+), 89 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java index 32fe52d7f8..b98168b4aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java +++ b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java @@ -68,7 +68,7 @@ public class SessionManager this.eventBus = eventBus; this.wsClient = wsClient; - this.eventBus.subscribe(LoginResponse.class, this, o -> this.onLoginResponse((LoginResponse) o)); + this.eventBus.subscribe(LoginResponse.class, this, this::onLoginResponse); } public void loadSession() diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java index 0454949813..a336008d95 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java @@ -55,7 +55,7 @@ public class ChatCommandManager implements ChatboxInputListener // eventBus.register(this); commandManager.register(this); - eventBus.subscribe(ChatMessage.class, this, o -> this.onChatMessage((ChatMessage) o)); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); } public void registerCommand(String command, BiConsumer execute) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index a5f878b749..c47b52126b 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -79,11 +79,11 @@ public class ChatMessageManager this.chatColorConfig = chatColorConfig; this.clientThread = clientThread; - eventbus.subscribe(VarbitChanged.class, this, o -> this.onVarbitChanged((VarbitChanged) o)); - eventbus.subscribe(ResizeableChanged.class, this, o -> this.onResizeableChanged((ResizeableChanged) o)); - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(ChatMessage.class, this, o -> this.onChatMessage((ChatMessage) o)); - eventbus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); + eventbus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventbus.subscribe(ResizeableChanged.class, this, this::onResizeableChanged); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventbus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); } private void onVarbitChanged(VarbitChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java index f5169a80ea..f2871651bc 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/CommandManager.java @@ -67,7 +67,7 @@ public class CommandManager this.eventBus = eventBus; this.clientThread = clientThread; - eventBus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); } public void register(ChatboxInputListener chatboxInputListener) diff --git a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java index 307c6ac5b0..2d5bbe832c 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java @@ -106,8 +106,8 @@ public class ClanManager this.client = client; this.spriteManager = spriteManager; - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); - eventbus.subscribe(ClanChanged.class, this, o -> this.onClanChanged((ClanChanged) o)); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventbus.subscribe(ClanChanged.class, this, this::onClanChanged); } public ClanMemberRank getRank(String playerName) diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index 8a234dce71..c9b22cf5e8 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -316,8 +316,8 @@ public class ItemManager }); - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); - eventbus.subscribe(PostItemDefinition.class, this, o -> this.onPostItemDefinition((PostItemDefinition) o)); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventbus.subscribe(PostItemDefinition.class, this, this::onPostItemDefinition); } private void loadPrices() diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index 54e26f99c7..2a6ad376de 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -81,13 +81,13 @@ public class LootManager this.eventBus = eventBus; this.client = client; - eventBus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); - eventBus.subscribe(NpcDespawned.class, this, o -> this.onNpcDespawned((NpcDespawned) o)); - eventBus.subscribe(PlayerDespawned.class, this, o -> this.onPlayerDespawned((PlayerDespawned) o)); - eventBus.subscribe(ItemSpawned.class, this, o -> this.onItemSpawned((ItemSpawned) o)); - eventBus.subscribe(ItemDespawned.class, this, o -> this.onItemDespawned((ItemDespawned) o)); - eventBus.subscribe(ItemQuantityChanged.class, this, o -> this.onItemQuantityChanged((ItemQuantityChanged) o)); - eventBus.subscribe(AnimationChanged.class, this, o -> this.onAnimationChanged((AnimationChanged) o)); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned); + eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned); + eventBus.subscribe(ItemQuantityChanged.class, this, this::onItemQuantityChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); } private void onNpcDespawned(NpcDespawned npcDespawned) diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java index dfdcf1b4e5..59c6d72a00 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxPanelManager.java @@ -80,8 +80,8 @@ public class ChatboxPanelManager this.chatboxTextInputProvider = chatboxTextInputProvider; - eventBus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); - eventBus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); } public void close() diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java index 41e6eba005..242e3df28f 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java @@ -107,13 +107,13 @@ public class MenuManager this.eventBus = eventBus; - eventBus.subscribe(MenuOpened.class, this, o -> this.onMenuOpened((MenuOpened) o)); - eventBus.subscribe(MenuEntryAdded.class, this, o -> this.onMenuEntryAdded((MenuEntryAdded) o)); - eventBus.subscribe(BeforeRender.class, this, o -> this.onBeforeRender((BeforeRender) o)); - eventBus.subscribe(PlayerMenuOptionsChanged.class, this, o -> this.onPlayerMenuOptionsChanged((PlayerMenuOptionsChanged) o)); - eventBus.subscribe(NpcActionChanged.class, this, o -> this.onNpcActionChanged((NpcActionChanged) o)); - eventBus.subscribe(WidgetPressed.class, this, o -> this.onWidgetPressed((WidgetPressed) o)); - eventBus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); + eventBus.subscribe(MenuOpened.class, this, this::onMenuOpened); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(BeforeRender.class, this, this::onBeforeRender); + eventBus.subscribe(PlayerMenuOptionsChanged.class, this, this::onPlayerMenuOptionsChanged); + eventBus.subscribe(NpcActionChanged.class, this, this::onNpcActionChanged); + eventBus.subscribe(WidgetPressed.class, this, this::onWidgetPressed); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); } /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 43620893b5..6cf52036ee 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -119,8 +119,8 @@ public class PluginManager this.executor = executor; this.sceneTileManager = sceneTileManager; - eventBus.subscribe(SessionOpen.class, this, o -> this.onSessionOpen((SessionOpen) o)); - eventBus.subscribe(SessionClose.class, this, o -> this.onSessionClose((SessionClose) o)); + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + eventBus.subscribe(SessionClose.class, this, this::onSessionClose); } public void watch() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java index 48bc45c8cf..79628e5377 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java @@ -191,12 +191,12 @@ public class AoeWarningPlugin extends Plugin private void addSubscriptions() { - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(ProjectileMoved.class, this, o -> this.onProjectileMoved((ProjectileMoved) o)); - eventbus.subscribe(GameObjectSpawned.class, this, o -> this.onGameObjectSpawned((GameObjectSpawned) o)); - eventbus.subscribe(GameObjectDespawned.class, this, o -> this.onGameObjectDespawned((GameObjectDespawned) o)); - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); - eventbus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + eventbus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventbus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventbus.subscribe(GameTick.class, this, this::onGameTick); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 344dd5b4e6..44a1a3aee1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -175,12 +175,12 @@ public class CannonPlugin extends Plugin private void addSubscriptions() { - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(ItemContainerChanged.class, this, o -> this.onItemContainerChanged((ItemContainerChanged) o)); - eventbus.subscribe(GameObjectSpawned.class, this, o -> this.onGameObjectSpawned((GameObjectSpawned) o)); - eventbus.subscribe(ProjectileMoved.class, this, o -> this.onProjectileMoved((ProjectileMoved) o)); - eventbus.subscribe(ChatMessage.class, this, o -> this.onChatMessage((ChatMessage) o)); - eventbus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventbus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventbus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + eventbus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventbus.subscribe(GameTick.class, this, this::onGameTick); } private void onItemContainerChanged(ItemContainerChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 0cb07b7afc..9de83c7580 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -357,20 +357,14 @@ public class GpuPlugin extends Plugin implements DrawCallbacks log.error("error stopping plugin", ex); } - try - { - shutDown(); - } - catch (Exception ex) - { - } + shutDown(); } }); } @Override - protected void shutDown() throws Exception + protected void shutDown() { super.shutDown(); @@ -445,9 +439,8 @@ public class GpuPlugin extends Plugin implements DrawCallbacks private void addSubscriptions() { - - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); } @Provides diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java index 763be3bcf9..79fd350150 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java @@ -85,7 +85,7 @@ public class InfoPlugin extends Plugin private void addSubscriptions() { - eventbus.subscribe(SessionOpen.class, this, o -> panel.onSessionOpen((SessionOpen) o)); - eventbus.subscribe(SessionClose.class, this, o -> panel.onSessionClose((SessionClose) o)); + eventbus.subscribe(SessionOpen.class, this, event -> panel.onSessionOpen(event)); + eventbus.subscribe(SessionClose.class, this, event -> panel.onSessionClose(event)); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 563cbf25a0..62cf808211 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -242,16 +242,16 @@ public class NpcIndicatorsPlugin extends Plugin private void addSubscriptions() { - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); - eventbus.subscribe(FocusChanged.class, this, o -> this.onFocusChanged((FocusChanged) o)); - eventbus.subscribe(MenuEntryAdded.class, this, o -> this.onMenuEntryAdded((MenuEntryAdded) o)); - eventbus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); - eventbus.subscribe(NpcSpawned.class, this, o -> this.onNpcSpawned((NpcSpawned) o)); - eventbus.subscribe(NpcDefinitionChanged.class, this, o -> this.onNpcDefinitionChanged((NpcDefinitionChanged) o)); - eventbus.subscribe(NpcDespawned.class, this, o -> this.onNpcDespawned((NpcDespawned) o)); - eventbus.subscribe(GraphicsObjectCreated.class, this, o -> this.onGraphicsObjectCreated((GraphicsObjectCreated) o)); - eventbus.subscribe(GameTick.class, this, o -> this.onGameTick((GameTick) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventbus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventbus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventbus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventbus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventbus.subscribe(NpcDefinitionChanged.class, this, this::onNpcDefinitionChanged); + eventbus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventbus.subscribe(GraphicsObjectCreated.class, this, this::onGraphicsObjectCreated); + eventbus.subscribe(GameTick.class, this, this::onGameTick); } private void onGameStateChanged(GameStateChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java index d6f820ee45..f8f86cd241 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java @@ -150,15 +150,15 @@ public class ObjectIndicatorsPlugin extends Plugin implements KeyListener private void addSubscriptions() { - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(FocusChanged.class, this, o -> this.onFocusChanged((FocusChanged) o)); - eventbus.subscribe(GameObjectSpawned.class, this, o -> this.onGameObjectSpawned((GameObjectSpawned) o)); - eventbus.subscribe(DecorativeObjectSpawned.class, this, o -> this.onDecorativeObjectSpawned((DecorativeObjectSpawned) o)); - eventbus.subscribe(GameObjectDespawned.class, this, o -> this.onGameObjectDespawned((GameObjectDespawned) o)); - eventbus.subscribe(DecorativeObjectDespawned.class, this, o -> this.onDecorativeObjectDespawned((DecorativeObjectDespawned) o)); - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); - eventbus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); - eventbus.subscribe(MenuEntryAdded.class, this, o -> this.onMenuEntryAdded((MenuEntryAdded) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventbus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventbus.subscribe(DecorativeObjectSpawned.class, this, this::onDecorativeObjectSpawned); + eventbus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventbus.subscribe(DecorativeObjectDespawned.class, this, this::onDecorativeObjectDespawned); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventbus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventbus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java index 338c309d84..db86fc540a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runeliteplus/RuneLitePlusPlugin.java @@ -179,8 +179,8 @@ public class RuneLitePlusPlugin extends Plugin private void addSubscriptions() { - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(ScriptCallbackEvent.class, this, o -> this.onScriptCallbackEvent((ScriptCallbackEvent) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); } private void onScriptCallbackEvent(ScriptCallbackEvent e) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 1a2c088db1..23df405312 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -169,10 +169,10 @@ public class ClientUI this.configManager = configManager; this.clientThreadProvider = clientThreadProvider; - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(NavigationButtonAdded.class, this, o -> this.onNavigationButtonAdded((NavigationButtonAdded) o)); - eventbus.subscribe(NavigationButtonRemoved.class, this, o -> this.onNavigationButtonRemoved((NavigationButtonRemoved) o)); - eventbus.subscribe(GameStateChanged.class, this, o -> this.onGameStateChanged((GameStateChanged) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(NavigationButtonAdded.class, this, this::onNavigationButtonAdded); + eventbus.subscribe(NavigationButtonRemoved.class, this, this::onNavigationButtonRemoved); + eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index 5bdb5f595f..aafbf0a5d4 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -111,8 +111,8 @@ public class OverlayManager this.configManager = configManager; this.eventBus = eventBus; - eventBus.subscribe(PluginChanged.class, this, o -> this.onPluginChanged((PluginChanged) o)); - eventBus.subscribe(MenuOptionClicked.class, this, o -> this.onMenuOptionClicked((MenuOptionClicked) o)); + eventBus.subscribe(PluginChanged.class, this, this::onPluginChanged); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); } private void onPluginChanged(final PluginChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index c03789dbb2..433f4d26ef 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -111,10 +111,10 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener keyManager.registerKeyListener(this); mouseManager.registerMouseListener(this); - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); - eventbus.subscribe(FocusChanged.class, this, o -> this.onFocusChanged((FocusChanged) o)); - eventbus.subscribe(ClientTick.class, this, o -> this.onClientTick((ClientTick) o)); - eventbus.subscribe(BeforeRender.class, this, o -> this.onBeforeRender((BeforeRender) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventbus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventbus.subscribe(ClientTick.class, this, this::onClientTick); + eventbus.subscribe(BeforeRender.class, this, this::onBeforeRender); } private void updateConfig() diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java index d554524a46..764cde23e4 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java @@ -54,7 +54,7 @@ public class InfoBoxManager { this.runeLiteConfig = runeLiteConfig; - eventbus.subscribe(ConfigChanged.class, this, o -> this.onConfigChanged((ConfigChanged) o)); + eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java index 02300e7b52..20663f1d38 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java @@ -70,8 +70,8 @@ public class PartyService this.sessionManager = sessionManager; this.eventBus = eventBus; - eventBus.subscribe(UserJoin.class, this, o -> this.onUserJoin((UserJoin) o)); - eventBus.subscribe(UserPart.class, this, o -> this.onUserPart((UserPart) o)); + eventBus.subscribe(UserJoin.class, this, this::onUserJoin); + eventBus.subscribe(UserPart.class, this, this::onUserPart); } public void changeParty(UUID newParty) From 81b121e5683cac1dc65837ff4a2e5db54f6fc631 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 04:15:45 +0200 Subject: [PATCH 06/15] Checkstyle --- .../main/java/net/runelite/client/account/SessionManager.java | 1 - .../src/main/java/net/runelite/client/plugins/Plugin.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java index b98168b4aa..62e003bc44 100644 --- a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java +++ b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java @@ -25,7 +25,6 @@ package net.runelite.client.account; import com.google.gson.Gson; -import io.reactivex.functions.Consumer; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java index d08da47428..5e2b612474 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/Plugin.java @@ -27,10 +27,7 @@ package net.runelite.client.plugins; import com.google.inject.Binder; import com.google.inject.Injector; import com.google.inject.Module; -import io.reactivex.disposables.Disposable; import java.io.File; -import java.util.ArrayList; -import java.util.List; public abstract class Plugin implements Module { From 8b647041f4452bdb1b8684620d35d50dccff4ace Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 07:26:34 +0200 Subject: [PATCH 07/15] Convert plugins to new eventbus --- .../client/plugins/account/AccountPlugin.java | 21 ++++- .../DiaryRequirementsPlugin.java | 20 +++- .../client/plugins/agility/AgilityPlugin.java | 93 ++++++++++--------- .../plugins/alchemicalhydra/HydraPlugin.java | 29 ++++-- .../client/plugins/ammo/AmmoPlugin.java | 12 ++- .../AnimationSmoothingPlugin.java | 12 ++- .../plugins/antidrag/AntiDragPlugin.java | 21 ++++- .../plugins/aoewarnings/AoeWarningPlugin.java | 2 +- .../attackstyles/AttackStylesPlugin.java | 32 ++++--- .../client/plugins/bank/BankPlugin.java | 27 ++++-- .../plugins/banktags/BankTagsPlugin.java | 45 +++++---- .../client/plugins/banlist/BanListPlugin.java | 33 ++++--- .../BarbarianAssaultPlugin.java | 73 +++++++++------ .../plugins/barbarianassault/Scorecard.java | 1 - .../client/plugins/barrows/BarrowsPlugin.java | 49 ++++++---- .../plugins/blackjack/BlackjackPlugin.java | 28 ++++-- .../blastfurnace/BlastFurnacePlugin.java | 32 ++++--- .../plugins/blastmine/BlastMinePlugin.java | 24 +++-- .../client/plugins/boosts/BoostsPlugin.java | 26 ++++-- .../plugins/bosstimer/BossTimersPlugin.java | 15 ++- .../client/plugins/cannon/CannonPlugin.java | 2 +- .../plugins/cerberus/CerberusPlugin.java | 28 ++++-- .../ChatboxPerformancePlugin.java | 20 +++- .../chatcommands/ChatCommandsPlugin.java | 29 ++++-- .../plugins/chatfilter/ChatFilterPlugin.java | 25 +++-- .../chathistory/ChatHistoryPlugin.java | 24 +++-- .../ChatNotificationsPlugin.java | 25 +++-- .../ChatTranslationPlugin.java | 27 ++++-- .../plugins/clanchat/ClanChatPlugin.java | 57 +++++++----- .../clanmanmode/ClanManModePlugin.java | 22 +++-- .../plugins/cluescrolls/ClueScrollPlugin.java | 49 ++++++---- .../plugins/combatcounter/CombatCounter.java | 29 ++++-- .../combatlevel/CombatLevelPlugin.java | 24 +++-- .../client/plugins/config/ConfigPlugin.java | 21 ++++- .../client/plugins/cooking/CookingPlugin.java | 29 ++++-- .../client/plugins/corp/CorpPlugin.java | 40 +++++--- .../client/plugins/coxhelper/CoxPlugin.java | 39 +++++--- .../crystalmathlabs/CrystalMathLabs.java | 24 ++++- .../customcursor/CustomCursorPlugin.java | 11 ++- .../dailytaskindicators/DailyTasksPlugin.java | 26 ++++-- .../deathindicator/DeathIndicatorPlugin.java | 29 ++++-- .../defaultworld/DefaultWorldPlugin.java | 21 ++++- .../demonicgorilla/DemonicGorillaPlugin.java | 43 +++++---- .../plugins/devtools/DevToolsPlugin.java | 54 ++++++++--- .../plugins/devtools/SoundEffectOverlay.java | 17 +--- .../client/plugins/devtools/VarInspector.java | 27 +++--- .../plugins/devtools/WidgetInspector.java | 7 +- .../client/plugins/discord/DiscordPlugin.java | 60 +++++++----- .../client/plugins/emojis/EmojiPlugin.java | 28 ++++-- .../entityhider/EntityHiderPlugin.java | 17 +++- .../EquipmentInspectorPlugin.java | 20 +++- .../client/plugins/examine/ExaminePlugin.java | 32 +++++-- .../plugins/experiencedrop/XpDropPlugin.java | 36 ++++--- .../plugins/fairyring/FairyRingPlugin.java | 32 +++++-- .../client/plugins/feed/FeedPlugin.java | 11 ++- .../plugins/fightcave/FightCavePlugin.java | 35 ++++--- .../client/plugins/fishing/FishingPlugin.java | 52 ++++++----- .../client/plugins/flexo/FlexoPlugin.java | 19 +++- .../client/plugins/fps/FpsPlugin.java | 25 +++-- .../freezetimers/FreezeTimersPlugin.java | 31 ++++--- .../plugins/friendlist/FriendListPlugin.java | 16 +++- .../friendnotes/FriendNotesPlugin.java | 28 ++++-- .../friendtagging/FriendTaggingPlugin.java | 33 ++++--- .../client/plugins/gpu/GpuPlugin.java | 2 +- .../grandexchange/GrandExchangePlugin.java | 57 +++++++----- .../GrotesqueGuardiansPlugin.java | 11 ++- .../grounditems/GroundItemsPlugin.java | 57 +++++++----- .../groundmarkers/GroundMarkerPlugin.java | 31 ++++--- .../plugins/herbiboars/HerbiboarPlugin.java | 48 ++++++---- .../hideprayers/HidePrayersPlugin.java | 25 +++-- .../highalchemy/HighAlchemyPlugin.java | 10 +- .../client/plugins/hiscore/HiscorePlugin.java | 29 ++++-- .../client/plugins/hunter/HunterPlugin.java | 24 +++-- .../client/plugins/hydra/BabyHydraPlugin.java | 28 ++++-- .../idlenotifier/IdleNotifierPlugin.java | 49 ++++++---- .../plugins/implings/ImplingsPlugin.java | 33 ++++--- .../client/plugins/inferno/InfernoPlugin.java | 39 +++++--- .../instancemap/InstanceMapPlugin.java | 21 ++++- .../InterfaceStylesPlugin.java | 32 ++++--- .../inventorygrid/InventoryGridPlugin.java | 12 ++- .../inventorysetups/InventorySetupPlugin.java | 23 +++-- .../inventorytags/InventoryTagsPlugin.java | 29 ++++-- .../InventoryViewerPlugin.java | 12 ++- .../plugins/itemcharges/ItemChargePlugin.java | 36 ++++--- .../ItemIdentificationPlugin.java | 12 ++- .../plugins/itemprices/ItemPricesPlugin.java | 11 ++- .../ItemsKeptOnDeathPlugin.java | 20 +++- .../plugins/itemstats/ItemStatPlugin.java | 29 ++++-- .../keyremapping/KeyRemappingPlugin.java | 20 +++- .../kingdomofmiscellania/KingdomPlugin.java | 23 ++++- .../kourendlibrary/KourendLibraryPlugin.java | 37 +++++--- .../learntoclick/LearnToClickPlugin.java | 28 ++++-- .../LizardmenShamanPlugin.java | 25 +++-- .../loginscreen/LoginScreenPlugin.java | 25 +++-- .../plugins/lootassist/LootAssistPlugin.java | 25 +++-- .../LootingBagViewerPlugin.java | 21 ++++- .../loottracker/LootTrackerPlugin.java | 54 ++++++----- .../plugins/lowmemory/LowMemoryPlugin.java | 10 +- .../client/plugins/maxhit/MaxHitPlugin.java | 33 +++++-- .../MenuEntrySwapperPlugin.java | 47 ++++++---- .../plugins/metronome/MetronomePlugin.java | 20 +++- .../client/plugins/minimap/MinimapPlugin.java | 24 +++-- .../client/plugins/mining/MiningPlugin.java | 40 +++++--- .../plugins/motherlode/MotherlodePlugin.java | 74 ++++++++------- .../mousehighlight/MouseHighlightPlugin.java | 28 ++++-- .../client/plugins/mta/MTAPlugin.java | 11 +-- .../plugins/mta/alchemy/AlchemyRoom.java | 33 ++++--- .../mta/enchantment/EnchantmentRoom.java | 32 ++++--- .../plugins/mta/graveyard/GraveyardRoom.java | 24 +++-- .../mta/telekinetic/TelekineticRoom.java | 34 ++++--- .../MultiIndicatorsPlugin.java | 20 +++- .../musicindicator/MusicIndicatorPlugin.java | 24 +++-- .../plugins/musiclist/MusicListPlugin.java | 25 +++-- .../nightmarezone/NightmareZonePlugin.java | 24 +++-- .../client/plugins/notes/NotesPlugin.java | 12 ++- .../plugins/npcstatus/NpcStatusPlugin.java | 41 +++++--- .../npcunaggroarea/NpcAggroAreaPlugin.java | 28 ++++-- .../opponentinfo/OpponentInfoPlugin.java | 28 ++++-- .../client/plugins/party/PartyPlugin.java | 64 +++++++------ .../PerformanceStatsPlugin.java | 57 +++++++----- .../pestcontrol/PestControlPlugin.java | 53 ++++++----- .../pileindicators/PileIndicatorsPlugin.java | 12 ++- .../PlayerIndicatorsPlugin.java | 29 ++++-- .../pluginsorter/PluginSorterPlugin.java | 21 +++-- .../client/plugins/poh/PohPlugin.java | 40 +++++--- .../client/plugins/poison/PoisonPlugin.java | 28 ++++-- .../PrayAgainstPlayerPlugin.java | 36 ++++--- .../client/plugins/prayer/PrayerPlugin.java | 23 +++-- .../prayeralert/PrayerAlertPlugin.java | 10 +- .../plugins/profiles/ProfilesPlugin.java | 10 +- .../puzzlesolver/PuzzleSolverPlugin.java | 25 +++-- .../plugins/pvptools/PvpToolsPlugin.java | 32 ++++--- .../pyramidplunder/PyramidPlunderPlugin.java | 48 ++++++---- .../plugins/questlist/QuestListPlugin.java | 28 ++++-- .../client/plugins/raids/RaidsPlugin.java | 36 ++++--- .../raids/shortcuts/ShortcutPlugin.java | 27 ++++-- .../raidsthieving/RaidsThievingPlugin.java | 28 ++++-- .../reorderprayers/ReorderPrayersPlugin.java | 33 ++++--- .../reportbutton/ReportButtonPlugin.java | 21 ++++- .../plugins/roguesden/RoguesDenPlugin.java | 45 +++++---- .../plugins/runecraft/RunecraftPlugin.java | 49 ++++++---- .../plugins/runedoku/RunedokuPlugin.java | 13 ++- .../plugins/runepouch/RunepouchPlugin.java | 13 ++- .../plugins/safespot/SafeSpotPlugin.java | 22 +++-- .../screenmarkers/ScreenMarkerPlugin.java | 12 ++- .../plugins/screenshot/ScreenshotPlugin.java | 41 ++++---- .../ShayzienInfirmaryPlugin.java | 12 ++- .../shiftwalker/ShiftWalkerPlugin.java | 21 ++++- .../SkillCalculatorPlugin.java | 18 +++- .../client/plugins/skybox/SkyboxPlugin.java | 21 ++++- .../client/plugins/slayer/SlayerPlugin.java | 50 ++++++---- .../slayermusiq/SlayermusiqPlugin.java | 14 +-- .../plugins/smelting/SmeltingPlugin.java | 23 +++-- .../plugins/spawntimer/SpawnTimerPlugin.java | 30 ++++-- .../client/plugins/specbar/SpecBarPlugin.java | 10 +- .../specialcounter/SpecialCounterPlugin.java | 31 +++++-- .../plugins/spellbook/SpellbookPlugin.java | 30 +++--- .../plugins/statusbars/StatusBarsPlugin.java | 20 +++- .../plugins/statusorbs/StatusOrbsPlugin.java | 26 ++++-- .../StonedLootTrackerPlugin.java | 49 ++++++---- .../data/LootRecordWriter.java | 9 +- .../stretchedmode/StretchedModePlugin.java | 16 +++- .../SuppliesTrackerPlugin.java | 35 ++++--- .../plugins/tarnslair/TarnsLairPlugin.java | 43 +++++---- .../tearsofguthix/TearsOfGuthixPlugin.java | 25 +++-- .../client/plugins/theatre/TheatrePlugin.java | 60 +++++++----- .../plugins/theatre/rooms/BloatHandler.java | 2 - .../plugins/thieving/ThievingPlugin.java | 26 ++++-- .../plugins/ticktimers/TickTimersPlugin.java | 28 ++++-- .../tileindicators/TileIndicatorsPlugin.java | 12 ++- .../client/plugins/timers/TimersPlugin.java | 64 +++++++------ .../plugins/timestamp/TimestampPlugin.java | 16 +++- .../timetracking/TimeTrackingPlugin.java | 25 +++-- .../plugins/tithefarm/TitheFarmPlugin.java | 25 +++-- .../client/plugins/tmorph/TMorph.java | 28 ++++-- .../tobdamagecount/DamageCounterPlugin.java | 31 +++++-- .../client/plugins/twitch/TwitchPlugin.java | 12 ++- .../client/plugins/vetion/VetionPlugin.java | 11 ++- .../virtuallevels/VirtualLevelsPlugin.java | 25 +++-- .../client/plugins/vorkath/VorkathPlugin.java | 37 ++++++-- .../warindicators/WarIndicatorPlugin.java | 19 +++- .../whalewatchers/WhaleWatchersPlugin.java | 41 ++++---- .../client/plugins/wiki/WikiPlugin.java | 21 ++++- .../WildernessLocationsPlugin.java | 25 +++-- .../plugins/wintertodt/WintertodtPlugin.java | 45 ++------- .../woodcutting/WoodcuttingPlugin.java | 44 +++++---- .../worldhopper/WorldHopperPlugin.java | 44 +++++---- .../plugins/worldmap/WorldMapPlugin.java | 25 +++-- .../plugins/xpglobes/XpGlobesPlugin.java | 27 ++++-- .../plugins/xptracker/XpTrackerPlugin.java | 31 ++++--- .../client/plugins/xtea/XteaPlugin.java | 20 +++- .../client/plugins/zoom/ZoomPlugin.java | 25 +++-- .../client/plugins/zulrah/ZulrahPlugin.java | 28 ++++-- 193 files changed, 3630 insertions(+), 1875 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java index 07bd977a81..a6fb299f50 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java @@ -32,7 +32,7 @@ import javax.swing.JOptionPane; import lombok.extern.slf4j.Slf4j; import net.runelite.client.account.AccountSession; import net.runelite.client.account.SessionManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.plugins.Plugin; @@ -60,6 +60,9 @@ public class AccountPlugin extends Plugin @Inject private ScheduledExecutorService executor; + @Inject + private EventBus eventBus; + private NavigationButton loginButton; private NavigationButton logoutButton; @@ -74,6 +77,8 @@ public class AccountPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + loginButton = NavigationButton.builder() .tab(false) .icon(LOGIN_IMAGE) @@ -103,10 +108,18 @@ public class AccountPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + clientToolbar.removeNavigation(loginButton); clientToolbar.removeNavigation(logoutButton); } + private void addSubscriptions() + { + eventBus.subscribe(SessionClose.class, this, this::onSessionClose); + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + } + private void loginClick() { executor.execute(sessionManager::login); @@ -122,14 +135,12 @@ public class AccountPlugin extends Plugin } } - @Subscribe - public void onSessionClose(SessionClose e) + private void onSessionClose(SessionClose e) { addAndRemoveButtons(); } - @Subscribe - public void onSessionOpen(SessionOpen sessionOpen) + private void onSessionOpen(SessionOpen sessionOpen) { AccountSession session = sessionManager.getAccountSession(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java index 341e17a7aa..27369d8153 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java @@ -44,7 +44,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.achievementdiary.diaries.ArdougneDiaryRequirement; @@ -79,8 +79,22 @@ public class DiaryRequirementsPlugin extends Plugin @Inject private ClientThread clientThread; - @Subscribe - public void onWidgetLoaded(final WidgetLoaded event) + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void onWidgetLoaded(final WidgetLoaded event) { if (event.getGroupId() == WidgetID.DIARY_QUEST_GROUP_ID) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java index 3f7ac5b498..42a1dad7bc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java @@ -70,7 +70,7 @@ import net.runelite.api.events.WallObjectDespawned; import net.runelite.api.events.WallObjectSpawned; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.AgilityShortcut; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; @@ -120,6 +120,9 @@ public class AgilityPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private AgilitySession session; @@ -166,6 +169,7 @@ public class AgilityPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(agilityOverlay); overlayManager.add(lapCounterOverlay); @@ -175,6 +179,8 @@ public class AgilityPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(agilityOverlay); overlayManager.remove(lapCounterOverlay); marksOfGrace.clear(); @@ -183,8 +189,31 @@ public class AgilityPlugin extends Plugin agilityLevel = 0; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged); + eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned); + eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(GroundObjectChanged.class, this, this::onGroundObjectChanged); + eventBus.subscribe(GroundObjectDespawned.class, this, this::onGroundObjectDespawned); + eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned); + eventBus.subscribe(WallObjectChanged.class, this, this::onWallObjectChanged); + eventBus.subscribe(WallObjectDespawned.class, this, this::onWallObjectDespawned); + eventBus.subscribe(DecorativeObjectSpawned.class, this, this::onDecorativeObjectSpawned); + eventBus.subscribe(DecorativeObjectChanged.class, this, this::onDecorativeObjectChanged); + eventBus.subscribe(DecorativeObjectDespawned.class, this, this::onDecorativeObjectDespawned); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -208,8 +237,7 @@ public class AgilityPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("agility")) { @@ -242,8 +270,7 @@ public class AgilityPlugin extends Plugin this.showShortcutLevel = config.showShortcutLevel(); } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void onExperienceChanged(ExperienceChanged event) { if (event.getSkill() != AGILITY || !this.showLapCount) { @@ -278,9 +305,7 @@ public class AgilityPlugin extends Plugin } } - - @Subscribe - public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged) + private void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged) { Skill skill = boostedLevelChanged.getSkill(); if (skill == AGILITY) @@ -289,8 +314,7 @@ public class AgilityPlugin extends Plugin } } - @Subscribe - public void onItemSpawned(ItemSpawned itemSpawned) + private void onItemSpawned(ItemSpawned itemSpawned) { if (obstacles.isEmpty()) { @@ -306,15 +330,13 @@ public class AgilityPlugin extends Plugin } } - @Subscribe - public void onItemDespawned(ItemDespawned itemDespawned) + private void onItemDespawned(ItemDespawned itemDespawned) { final Tile tile = itemDespawned.getTile(); marksOfGrace.remove(tile); } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { if (isInAgilityArena()) { @@ -365,74 +387,62 @@ public class AgilityPlugin extends Plugin infoBoxManager.addInfoBox(new AgilityArenaTimer(this, itemManager.getImage(AGILITY_ARENA_TICKET))); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { onTileObject(event.getTile(), null, event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGameObject()); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { onTileObject(event.getTile(), event.getGameObject(), null); } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { onTileObject(event.getTile(), null, event.getGroundObject()); } - @Subscribe - public void onGroundObjectChanged(GroundObjectChanged event) + private void onGroundObjectChanged(GroundObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGroundObject()); } - @Subscribe - public void onGroundObjectDespawned(GroundObjectDespawned event) + private void onGroundObjectDespawned(GroundObjectDespawned event) { onTileObject(event.getTile(), event.getGroundObject(), null); } - @Subscribe - public void onWallObjectSpawned(WallObjectSpawned event) + private void onWallObjectSpawned(WallObjectSpawned event) { onTileObject(event.getTile(), null, event.getWallObject()); } - @Subscribe - public void onWallObjectChanged(WallObjectChanged event) + private void onWallObjectChanged(WallObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getWallObject()); } - @Subscribe - public void onWallObjectDespawned(WallObjectDespawned event) + private void onWallObjectDespawned(WallObjectDespawned event) { onTileObject(event.getTile(), event.getWallObject(), null); } - @Subscribe - public void onDecorativeObjectSpawned(DecorativeObjectSpawned event) + private void onDecorativeObjectSpawned(DecorativeObjectSpawned event) { onTileObject(event.getTile(), null, event.getDecorativeObject()); } - @Subscribe - public void onDecorativeObjectChanged(DecorativeObjectChanged event) + private void onDecorativeObjectChanged(DecorativeObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getDecorativeObject()); } - @Subscribe - public void onDecorativeObjectDespawned(DecorativeObjectDespawned event) + private void onDecorativeObjectDespawned(DecorativeObjectDespawned event) { onTileObject(event.getTile(), event.getDecorativeObject(), null); } @@ -484,8 +494,7 @@ public class AgilityPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!this.showShortcutLevel) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/alchemicalhydra/HydraPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/alchemicalhydra/HydraPlugin.java index fe94944427..7bdc96738a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/alchemicalhydra/HydraPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/alchemicalhydra/HydraPlugin.java @@ -46,7 +46,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.ProjectileMoved; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -89,9 +89,14 @@ public class HydraPlugin extends Plugin @Inject private HydraSceneOverlay poisonOverlay; + @Inject + private EventBus eventBus; + @Override protected void startUp() { + addSubscriptions(); + inHydraInstance = checkArea(); lastAttackTick = -1; poisonProjectiles.clear(); @@ -100,6 +105,8 @@ public class HydraPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + inHydraInstance = false; hydra = null; poisonProjectiles.clear(); @@ -107,7 +114,15 @@ public class HydraPlugin extends Plugin lastAttackTick = -1; } - @Subscribe + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + private void onGameStateChanged(GameStateChanged state) { if (state.getGameState() != GameState.LOGGED_IN) @@ -140,7 +155,6 @@ public class HydraPlugin extends Plugin addOverlays(); } - @Subscribe private void onNpcSpawned(NpcSpawned event) { if (!inHydraInstance || event.getNpc().getId() != NpcID.ALCHEMICAL_HYDRA) @@ -152,8 +166,7 @@ public class HydraPlugin extends Plugin addOverlays(); } - @Subscribe - public void onAnimationChanged(AnimationChanged animationChanged) + private void onAnimationChanged(AnimationChanged animationChanged) { Actor actor = animationChanged.getActor(); @@ -215,8 +228,7 @@ public class HydraPlugin extends Plugin } } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { if (!inHydraInstance || hydra == null || client.getGameCycle() >= event.getProjectile().getStartMovementCycle()) @@ -245,8 +257,7 @@ public class HydraPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (!event.getMessage().equals("The chemicals neutralise the Alchemical Hydra's defences!")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ammo/AmmoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/ammo/AmmoPlugin.java index ee2b31666b..9796ef08ba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ammo/AmmoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ammo/AmmoPlugin.java @@ -35,7 +35,7 @@ import net.runelite.api.ItemDefinition; import net.runelite.api.ItemContainer; import net.runelite.api.events.ItemContainerChanged; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -61,11 +61,16 @@ public class AmmoPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + private AmmoCounter counterBox; @Override protected void startUp() throws Exception { + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + clientThread.invokeLater(() -> { final ItemContainer container = client.getItemContainer(InventoryID.EQUIPMENT); @@ -80,12 +85,13 @@ public class AmmoPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + infoBoxManager.removeInfoBox(counterBox); counterBox = null; } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer() != client.getItemContainer(InventoryID.EQUIPMENT)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/animsmoothing/AnimationSmoothingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/animsmoothing/AnimationSmoothingPlugin.java index 7c77990a26..c21a4504ac 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/animsmoothing/AnimationSmoothingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/animsmoothing/AnimationSmoothingPlugin.java @@ -30,7 +30,7 @@ import javax.inject.Singleton; import net.runelite.api.Client; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -51,6 +51,9 @@ public class AnimationSmoothingPlugin extends Plugin @Inject private AnimationSmoothingConfig config; + @Inject + private EventBus eventBus; + @Provides AnimationSmoothingConfig getConfig(ConfigManager configManager) { @@ -60,20 +63,23 @@ public class AnimationSmoothingPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + update(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + client.setInterpolatePlayerAnimations(false); client.setInterpolateNpcAnimations(false); client.setInterpolateObjectAnimations(false); client.setInterpolateWidgetAnimations(false); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals(CONFIG_GROUP)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java index ed6d07b6af..b353740e56 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java @@ -36,7 +36,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -81,6 +81,9 @@ public class AntiDragPlugin extends Plugin @Inject private KeyManager keyManager; + @Inject + private EventBus eventBus; + @Provides AntiDragConfig getConfig(ConfigManager configManager) { @@ -103,6 +106,8 @@ public class AntiDragPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + if (this.keybind) { keyManager.registerKeyListener(hotkeyListener); @@ -113,14 +118,21 @@ public class AntiDragPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + client.setInventoryDragDelay(DEFAULT_DELAY); keyManager.unregisterKeyListener(hotkeyListener); toggleDrag = false; overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("antiDrag")) { @@ -157,8 +169,7 @@ public class AntiDragPlugin extends Plugin this.selectedCursor = config.selectedCursor(); } - @Subscribe - public void onFocusChanged(FocusChanged focusChanged) + private void onFocusChanged(FocusChanged focusChanged) { if (!this.alwaysOn && !focusChanged.isFocused() && this.reqfocus) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java index 79628e5377..8c7a98d914 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java @@ -182,7 +182,7 @@ public class AoeWarningPlugin extends Plugin @Override protected void shutDown() throws Exception { - super.shutDown(); + eventbus.unregister(this); overlayManager.remove(coreOverlay); overlayManager.remove(bombOverlay); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java index 1a99f715af..05dc67eab2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java @@ -50,7 +50,7 @@ import net.runelite.api.widgets.WidgetInfo; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import static net.runelite.client.plugins.attackstyles.AttackStyle.CASTING; @@ -89,6 +89,9 @@ public class AttackStylesPlugin extends Plugin @Inject private AttackStylesOverlay overlay; + @Inject + private EventBus eventBus; + @Provides AttackStylesConfig provideConfig(ConfigManager configManager) { @@ -110,6 +113,7 @@ public class AttackStylesPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); @@ -140,12 +144,23 @@ public class AttackStylesPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); hideWarnedStyles(false); processWidgets(); hideWidget(client.getWidget(WidgetInfo.COMBAT_AUTO_RETALIATE), false); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } + public AttackStyle getAttackStyle() { return attackStyle; @@ -156,8 +171,7 @@ public class AttackStylesPlugin extends Plugin return warnedSkillSelected; } - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + private void onWidgetHiddenChanged(WidgetHiddenChanged event) { if (event.getWidget().isSelfHidden() || TO_GROUP(event.getWidget().getId()) != COMBAT_GROUP_ID) { @@ -167,8 +181,7 @@ public class AttackStylesPlugin extends Plugin processWidgets(); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() != COMBAT_GROUP_ID) { @@ -195,8 +208,7 @@ public class AttackStylesPlugin extends Plugin hideWidget(client.getWidget(WidgetInfo.COMBAT_AUTO_RETALIATE), this.hideAutoRetaliate); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -208,8 +220,7 @@ public class AttackStylesPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (attackStyleVarbit == -1 || attackStyleVarbit != client.getVar(VarPlayer.ATTACK_STYLE)) { @@ -236,8 +247,7 @@ public class AttackStylesPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("attackIndicator")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java index d5cebbd51d..3e5693165a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java @@ -39,7 +39,7 @@ import net.runelite.api.events.MenuShouldLeftClick; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.banktags.tabs.BankSearch; @@ -72,6 +72,9 @@ public class BankPlugin extends Plugin @Inject private BankSearch bankSearch; + @Inject + private EventBus eventBus; + private boolean forceRightClickFlag; @Provides @@ -93,17 +96,26 @@ public class BankPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); } @Override protected void shutDown() { + eventBus.unregister(this); clientThread.invokeLater(() -> bankSearch.reset(false)); forceRightClickFlag = false; } - @Subscribe - public void onMenuShouldLeftClick(MenuShouldLeftClick event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(MenuShouldLeftClick.class, this, this::onMenuShouldLeftClick); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onMenuShouldLeftClick(MenuShouldLeftClick event) { if (!forceRightClickFlag) { @@ -124,8 +136,7 @@ public class BankPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if ((event.getOption().equals(DEPOSIT_WORN) && this.rightClickBankEquip) || (event.getOption().equals(DEPOSIT_INVENTORY) && this.rightClickBankInventory) @@ -135,8 +146,7 @@ public class BankPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!event.getEventName().equals("setBankTitle")) { @@ -192,8 +202,7 @@ public class BankPlugin extends Plugin stringStack[stringStackSize - 1] += strCurrentTab; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("bank")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java index 11c64fd0e3..b7bbb97a3c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java @@ -60,7 +60,7 @@ import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.game.chatbox.ChatboxPanelManager; @@ -132,6 +132,9 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis @Inject private SpriteManager spriteManager; + @Inject + private EventBus eventBus; + private boolean shiftPressed = false; private int nextRowIndex = 0; @@ -144,6 +147,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis @Override public void startUp() { + addSubscriptions(); + keyManager.registerKeyListener(this); mouseManager.registerMouseWheelListener(this); clientThread.invokeLater(tabInterface::init); @@ -153,6 +158,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis @Override public void shutDown() { + eventBus.unregister(this); + keyManager.unregisterKeyListener(this); mouseManager.unregisterMouseWheelListener(this); clientThread.invokeLater(tabInterface::destroy); @@ -161,6 +168,18 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis shiftPressed = false; } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(DraggingWidgetChanged.class, this, this::onDraggingWidgetChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + private boolean isSearching() { return client.getVar(VarClientInt.INPUT_TYPE) == InputType.SEARCH.getType() @@ -168,8 +187,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis && client.getVar(VarClientStr.INPUT_TEXT) != null && client.getVar(VarClientStr.INPUT_TEXT).length() > 0); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { String eventName = event.getEventName(); @@ -284,8 +302,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { MenuEntry[] entries = client.getMenuEntries(); @@ -318,8 +335,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis tabInterface.handleAdd(event); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (event.getActionParam1() == WidgetInfo.BANK_ITEM_CONTAINER.getId() && event.getMenuAction() == MenuAction.RUNELITE @@ -393,8 +409,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis } } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getGroup().equals("banktags") && configChanged.getKey().equals("useTabs")) { @@ -409,20 +424,17 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { tabInterface.update(); } - @Subscribe - public void onDraggingWidgetChanged(DraggingWidgetChanged event) + private void onDraggingWidgetChanged(DraggingWidgetChanged event) { tabInterface.handleDrag(event.isDraggingWidget(), shiftPressed); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() == WidgetID.BANK_GROUP_ID) { @@ -430,8 +442,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis } } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void onFocusChanged(FocusChanged event) { if (!event.isFocused()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java index a34b7e756c..ea7875f1de 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java @@ -56,7 +56,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -91,6 +91,8 @@ public class BanListPlugin extends Plugin private BanListConfig config; @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; private String tobNames = ""; private boolean enableWDRScam; private boolean enableWDRToxic; @@ -108,6 +110,7 @@ public class BanListPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); List bannedPlayers = Splitter .on(",") .trimResults() @@ -120,14 +123,24 @@ public class BanListPlugin extends Plugin @Override protected void shutDown() throws Exception { + + eventBus.unregister(this); wdrScamSet.clear(); wdrToxicSet.clear(); runeWatchSet.clear(); manualBans.clear(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + eventBus.subscribe(ClanMemberJoined.class, this, this::onClanMemberJoined); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("banlist") && event.getKey().equals("bannedPlayers")) { @@ -159,8 +172,7 @@ public class BanListPlugin extends Plugin /** * Event to keep making sure player names are highlighted red in clan chat, since the red name goes away frequently */ - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged widgetHiddenChanged) + private void onWidgetHiddenChanged(WidgetHiddenChanged widgetHiddenChanged) { if (client.getGameState() != GameState.LOGGED_IN || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null @@ -180,9 +192,7 @@ public class BanListPlugin extends Plugin }); } - - @Subscribe - public void onClanMemberJoined(ClanMemberJoined event) + private void onClanMemberJoined(ClanMemberJoined event) { ClanMember member = event.getMember(); String memberUsername = Text.standardize(member.getUsername().toLowerCase()); @@ -212,8 +222,7 @@ public class BanListPlugin extends Plugin /** * If a trade window is opened and the person trading us is on the list, modify "trading with" */ - @Subscribe - public void onWidgetLoaded(WidgetLoaded widgetLoaded) + private void onWidgetLoaded(WidgetLoaded widgetLoaded) { if (this.highlightInTrade && widgetLoaded.getGroupId() == TRADING_SCREEN) { //if trading window was loaded @@ -233,9 +242,7 @@ public class BanListPlugin extends Plugin } } - - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (client.getWidget(WidgetInfo.THEATRE_OF_BLOOD_RAIDING_PARTY) == null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java index 0c39075df7..88b3e69e25 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java @@ -82,7 +82,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; @@ -155,6 +155,9 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener @Inject private KeyManager keyManager; + @Inject + private EventBus eventBus; + @Getter private boolean inGame = false; @@ -306,6 +309,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); font = FontManager.getRunescapeFont().deriveFont(Font.BOLD, 24); torsoImage = itemManager.getImage(ItemID.FIGHTER_TORSO); @@ -323,6 +327,8 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(widgetsOverlay); overlayManager.remove(sceneOverlay); keyManager.unregisterKeyListener(this); @@ -343,6 +349,24 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener menu.clearHiddenMenus(); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned); + eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(BeforeRender.class, this, this::onBeforeRender); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(ProjectileSpawned.class, this, this::onProjectileSpawned); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } + @Override public void keyTyped(KeyEvent e) { @@ -376,8 +400,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { //not client thread be careful if (!configChanged.getGroup().equals("barbarianAssault")) @@ -487,8 +510,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener this.showEggCountOverlay = config.showEggCountOverlay(); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { switch (event.getGroupId()) { @@ -558,8 +580,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (!chatMessage.getType().equals(ChatMessageType.GAMEMESSAGE)) { @@ -578,6 +599,11 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } else if (isInGame()) { + if (scorecard != null) + { + scorecard.onChatMessage(chatMessage); + } + if (message.contains("exploded") && wave != null) { wave.setWrongEggs(wave.getWrongEggs() + 1); @@ -637,8 +663,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onItemSpawned(ItemSpawned itemSpawned) + private void onItemSpawned(ItemSpawned itemSpawned) { if (!isInGame()) { @@ -657,8 +682,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onItemDespawned(ItemDespawned itemDespawned) + private void onItemDespawned(ItemDespawned itemDespawned) { if (!isInGame()) { @@ -708,8 +732,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { // Keep in mind isInGame is delayed by a tick when a wave ends if (!isInGame() || getRole() == null) @@ -740,8 +763,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { if (!isInGame()) { @@ -763,8 +785,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (!isInGame()) { @@ -779,8 +800,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener // This was almost certainly a waste of time to get working, because almost nobody // actually uses the horn of glory. At least now there shouldn't be anyone complaining // about the horn of glory breaking anything and everything that should never break. - @Subscribe - public void onBeforeRender(BeforeRender event) + private void onBeforeRender(BeforeRender event) { if (!isInGame()) { @@ -953,8 +973,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener // onMenuEntryAdded is being used for conditional entry changes that are not // easily achievable using MenuManager, all other changes use MenuManager in // the BarbarianAssaultMenu/Menus classes - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!isInGame()) { @@ -1144,8 +1163,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener client.setMenuEntries(menu.toArray(new MenuEntry[0])); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (!isInGame() && getRole() != null) { @@ -1177,8 +1195,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } // Interacting changed has a slight delay until after the hitsplat is applied - @Subscribe - public void onInteractingChanged(InteractingChanged event) + private void onInteractingChanged(InteractingChanged event) { if (!isInGame() || getRole() != Role.HEALER) { @@ -1213,8 +1230,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } - @Subscribe - public void onProjectileSpawned(ProjectileSpawned event) + private void onProjectileSpawned(ProjectileSpawned event) { if (!isInGame()) { @@ -1234,8 +1250,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { int newInGameBit = client.getVar(Varbits.IN_GAME_BA); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java index 0c853cc360..2cc3e6a3b3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/Scorecard.java @@ -64,7 +64,6 @@ public class Scorecard this.game = game; } - @Subscribe public void onChatMessage(ChatMessage chatMessage) { if (chatMessage.getMessage().startsWith("---- Points:") && game.getStage() == 1) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java index beeb0ba8cf..382a511753 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java @@ -63,7 +63,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; @@ -141,6 +141,9 @@ public class BarrowsPlugin extends Plugin @Inject private BarrowsConfig config; + @Inject + private EventBus eventBus; + @Provides BarrowsConfig provideConfig(ConfigManager configManager) { @@ -164,6 +167,8 @@ public class BarrowsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + overlayManager.add(barrowsOverlay); overlayManager.add(brotherOverlay); } @@ -171,6 +176,8 @@ public class BarrowsPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(barrowsOverlay); overlayManager.remove(brotherOverlay); walls.clear(); @@ -193,8 +200,20 @@ public class BarrowsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned); + eventBus.subscribe(WallObjectChanged.class, this, this::onWallObjectChanged); + eventBus.subscribe(WallObjectDespawned.class, this, this::onWallObjectDespawned); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("barrows")) { @@ -218,8 +237,7 @@ public class BarrowsPlugin extends Plugin this.showPrayerDrainTimer = config.showPrayerDrainTimer(); } - @Subscribe - public void onWallObjectSpawned(WallObjectSpawned event) + private void onWallObjectSpawned(WallObjectSpawned event) { WallObject wallObject = event.getWallObject(); if (BARROWS_WALLS.contains(wallObject.getId())) @@ -228,8 +246,7 @@ public class BarrowsPlugin extends Plugin } } - @Subscribe - public void onWallObjectChanged(WallObjectChanged event) + private void onWallObjectChanged(WallObjectChanged event) { WallObject previous = event.getPrevious(); WallObject wallObject = event.getWallObject(); @@ -241,15 +258,13 @@ public class BarrowsPlugin extends Plugin } } - @Subscribe - public void onWallObjectDespawned(WallObjectDespawned event) + private void onWallObjectDespawned(WallObjectDespawned event) { WallObject wallObject = event.getWallObject(); walls.remove(wallObject); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { GameObject gameObject = event.getGameObject(); if (BARROWS_LADDERS.contains(gameObject.getId())) @@ -258,8 +273,7 @@ public class BarrowsPlugin extends Plugin } } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { GameObject previous = event.getPrevious(); GameObject gameObject = event.getGameObject(); @@ -271,15 +285,13 @@ public class BarrowsPlugin extends Plugin } } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { GameObject gameObject = event.getGameObject(); ladders.remove(gameObject); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -303,8 +315,7 @@ public class BarrowsPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() == WidgetID.BARROWS_REWARD_GROUP_ID && this.showChestValue) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java index f31100e59e..315ac06eec 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java @@ -38,7 +38,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -68,6 +68,8 @@ public class BlackjackPlugin extends Plugin private Client client; @Inject private BlackjackConfig config; + @Inject + private EventBus eventBus; private boolean pickpocketOnAggro; @@ -80,11 +82,25 @@ public class BlackjackPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.pickpocketOnAggro = config.pickpocketOnAggro(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("blackjack")) { @@ -92,8 +108,7 @@ public class BlackjackPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (client.getGameState() != GameState.LOGGED_IN || client.getVar(Varbits.QUEST_THE_FEUD) < 13 || @@ -114,8 +129,7 @@ public class BlackjackPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() == ChatMessageType.SPAM && event.getMessage().equals(SUCCESS_BLACKJACK) ^ (event.getMessage().equals(FAILED_BLACKJACK) && this.pickpocketOnAggro)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java index c1afdb3bee..8978a013c9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java @@ -46,7 +46,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -97,6 +97,9 @@ public class BlastFurnacePlugin extends Plugin @Inject private BlastFurnaceConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean showConveyorBelt; @Getter(AccessLevel.PACKAGE) @@ -106,6 +109,7 @@ public class BlastFurnacePlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(cofferOverlay); @@ -115,6 +119,8 @@ public class BlastFurnacePlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + infoBoxManager.removeIf(ForemanTimer.class::isInstance); overlayManager.remove(overlay); overlayManager.remove(cofferOverlay); @@ -124,14 +130,22 @@ public class BlastFurnacePlugin extends Plugin foremanTimer = null; } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + @Provides BlastFurnaceConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(BlastFurnaceConfig.class); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("blastfurnace")) { @@ -139,8 +153,7 @@ public class BlastFurnacePlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { GameObject gameObject = event.getGameObject(); @@ -156,8 +169,7 @@ public class BlastFurnacePlugin extends Plugin } } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { GameObject gameObject = event.getGameObject(); @@ -173,8 +185,7 @@ public class BlastFurnacePlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -183,8 +194,7 @@ public class BlastFurnacePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { Widget npcDialog = client.getWidget(WidgetInfo.DIALOG_NPC_TEXT); if (npcDialog == null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMinePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMinePlugin.java index 88d98cebbf..c4ec42e2dc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMinePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMinePlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -73,6 +73,9 @@ public class BlastMinePlugin extends Plugin @Inject private BlastMinePluginConfig config; + @Inject + private EventBus eventBus; + @Provides BlastMinePluginConfig getConfig(ConfigManager configManager) { @@ -96,6 +99,7 @@ public class BlastMinePlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(blastMineRockOverlay); overlayManager.add(blastMineOreCountOverlay); @@ -104,6 +108,8 @@ public class BlastMinePlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(blastMineRockOverlay); overlayManager.remove(blastMineOreCountOverlay); final Widget blastMineWidget = client.getWidget(WidgetInfo.BLAST_MINE); @@ -114,8 +120,14 @@ public class BlastMinePlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void addSubscriptions() + { + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameObjectSpawned(GameObjectSpawned event) { final GameObject gameObject = event.getGameObject(); BlastMineRockType blastMineRockType = BlastMineRockType.getRockType(gameObject.getId()); @@ -133,8 +145,7 @@ public class BlastMinePlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -142,8 +153,7 @@ public class BlastMinePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (rocks.isEmpty()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java index 4140df8426..04f6c5d71c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.SkillIconManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -98,6 +98,8 @@ public class BoostsPlugin extends Plugin private SkillIconManager skillIconManager; @Inject private CombatIconsOverlay combatIconsOverlay; + @Inject + private EventBus eventBus; private boolean isChangedDown = false; private boolean isChangedUp = false; @@ -133,6 +135,7 @@ public class BoostsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(boostsOverlay); overlayManager.add(combatIconsOverlay); @@ -156,6 +159,7 @@ public class BoostsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.remove(boostsOverlay); overlayManager.remove(combatIconsOverlay); infoBoxManager.removeIf(t -> t instanceof BoostIndicator || t instanceof StatChangeIndicator); @@ -166,8 +170,15 @@ public class BoostsPlugin extends Plugin isChangedDown = false; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -179,8 +190,7 @@ public class BoostsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("boosts")) { @@ -201,8 +211,7 @@ public class BoostsPlugin extends Plugin } } - @Subscribe - public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged) + private void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged) { Skill skill = boostedLevelChanged.getSkill(); @@ -251,8 +260,7 @@ public class BoostsPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { lastTickMillis = System.currentTimeMillis(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java index d5faf547dc..1fd643cb84 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java @@ -30,7 +30,7 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.NPC; import net.runelite.api.events.NpcDespawned; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -51,14 +51,23 @@ public class BossTimersPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + } + @Override protected void shutDown() throws Exception { + eventBus.unregister(this); infoBoxManager.removeIf(t -> t instanceof RespawnTimer); } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { NPC npc = npcDespawned.getNpc(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 44a1a3aee1..1a017ba004 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -159,7 +159,7 @@ public class CannonPlugin extends Plugin @Override protected void shutDown() throws Exception { - super.shutDown(); + eventbus.unregister(this); cannonSpotOverlay.setHidden(true); overlayManager.remove(cannonOverlay); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java index 47f1adbec4..8b9f979f1c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java @@ -37,7 +37,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -59,21 +59,34 @@ public class CerberusPlugin extends Plugin @Inject private CerberusOverlay overlay; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { overlayManager.add(overlay); + addSubscriptions(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); ghosts.clear(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameStateChanged(GameStateChanged event) { GameState gameState = event.getGameState(); if (gameState == GameState.LOGIN_SCREEN || gameState == GameState.HOPPING || gameState == GameState.CONNECTION_LOST) @@ -82,21 +95,18 @@ public class CerberusPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(final NpcSpawned event) + private void onNpcSpawned(final NpcSpawned event) { final NPC npc = event.getNpc(); CerberusGhost.fromNPC(npc).ifPresent(ghost -> ghosts.add(npc)); } - @Subscribe - public void onNpcDespawned(final NpcDespawned event) + private void onNpcDespawned(final NpcDespawned event) { ghosts.remove(event.getNpc()); } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (ghosts.isEmpty()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatboxperformance/ChatboxPerformancePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatboxperformance/ChatboxPerformancePlugin.java index 3f51018632..2f274c5c6f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatboxperformance/ChatboxPerformancePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatboxperformance/ChatboxPerformancePlugin.java @@ -33,7 +33,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetPositionMode; import net.runelite.api.widgets.WidgetSizeMode; import net.runelite.api.widgets.WidgetType; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -47,8 +47,22 @@ public class ChatboxPerformancePlugin extends Plugin @Inject private Client client; - @Subscribe - public void onWidgetPositioned(WidgetPositioned event) + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(WidgetPositioned.class, this, this::onWidgetPositioned); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void onWidgetPositioned(WidgetPositioned event) { if (!areWidgetsFixed()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 951547e777..841cea3fd1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -56,7 +56,7 @@ import net.runelite.client.chat.ChatCommandManager; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ChatInput; import net.runelite.client.game.ItemManager; import net.runelite.client.input.KeyManager; @@ -140,9 +140,14 @@ public class ChatCommandsPlugin extends Plugin @Inject private ChatKeyboardListener chatKeyboardListener; + @Inject + private EventBus eventBus; + @Override public void startUp() { + addSubscriptions(); + keyManager.registerKeyListener(chatKeyboardListener); chatCommandManager.registerCommandAsync(TOTAL_LEVEL_COMMAND_STRING, this::playerSkillLookup); @@ -160,6 +165,8 @@ public class ChatCommandsPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + lastBossKill = null; keyManager.unregisterKeyListener(chatKeyboardListener); @@ -176,6 +183,14 @@ public class ChatCommandsPlugin extends Plugin chatCommandManager.unregisterCommand(DUEL_ARENA_COMMAND); } + private void addSubscriptions() + { + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } + @Provides ChatCommandsConfig provideConfig(ConfigManager configManager) { @@ -208,8 +223,7 @@ public class ChatCommandsPlugin extends Plugin return personalBest == null ? 0 : personalBest; } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (chatMessage.getType() != ChatMessageType.TRADE && chatMessage.getType() != ChatMessageType.GAMEMESSAGE @@ -324,8 +338,7 @@ public class ChatCommandsPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (!logKills) { @@ -361,8 +374,7 @@ public class ChatCommandsPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded widget) + private void onWidgetLoaded(WidgetLoaded widget) { // don't load kc if in an instance, if the player is in another players poh // and reading their boss log @@ -374,8 +386,7 @@ public class ChatCommandsPlugin extends Plugin logKills = true; } - @Subscribe - public void onVarbitChanged(VarbitChanged varbitChanged) + private void onVarbitChanged(VarbitChanged varbitChanged) { hiscoreEndpoint = getLocalHiscoreEndpointType(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java index 8a24ade869..86c504c164 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.OverheadTextChanged; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.util.Text; @@ -75,6 +75,9 @@ public class ChatFilterPlugin extends Plugin @Inject private ChatFilterConfig config; + @Inject + private EventBus eventBus; + @Setter(AccessLevel.PACKAGE) private ChatFilterType filterType; @Setter(AccessLevel.PACKAGE) @@ -96,6 +99,8 @@ public class ChatFilterPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + updateFilteredPatterns(); client.refreshChat(); } @@ -103,12 +108,20 @@ public class ChatFilterPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + filteredPatterns.clear(); client.refreshChat(); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(OverheadTextChanged.class, this, this::onOverheadTextChanged); + } + + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!"chatFilterCheck".equals(event.getEventName())) { @@ -171,8 +184,7 @@ public class ChatFilterPlugin extends Plugin } } - @Subscribe - public void onOverheadTextChanged(OverheadTextChanged event) + private void onOverheadTextChanged(OverheadTextChanged event) { if (!(event.getActor() instanceof Player) || !shouldFilterPlayerMessage(event.getActor().getName())) { @@ -254,8 +266,7 @@ public class ChatFilterPlugin extends Plugin .forEach(filteredPatterns::add); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"chatfilter".equals(event.getGroup())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java index 186bbd4f6a..01f0ea8e1f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java @@ -46,7 +46,7 @@ import net.runelite.client.callback.ClientThread; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -85,6 +85,9 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; + private boolean retainChatHistory; private boolean pmTargetCycling; @@ -98,6 +101,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener protected void startUp() { updateConfig(); + addSubscriptions(); messageQueue = EvictingQueue.create(100); friends = new ArrayDeque<>(FRIENDS_MAX_SIZE + 1); @@ -107,6 +111,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener @Override protected void shutDown() { + eventBus.unregister(this); + messageQueue.clear(); messageQueue = null; friends.clear(); @@ -114,8 +120,14 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener keyManager.unregisterKeyListener(this); } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + } + + private void onChatMessage(ChatMessage chatMessage) { // Start sending old messages right after the welcome message, as that is most reliable source // of information that chat history was reset @@ -171,8 +183,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { String menuOption = event.getOption(); @@ -269,8 +280,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener return friends.getLast(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"chathistory".equals(event.getGroup())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index 00b7cc80d4..0ae10ecabd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -47,7 +47,7 @@ import net.runelite.client.RuneLiteProperties; import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.util.Text; @@ -76,6 +76,9 @@ public class ChatNotificationsPlugin extends Plugin @Inject private RuneLiteProperties runeLiteProperties; + @Inject + private EventBus eventBus; + //Custom Highlights private Pattern usernameMatcher = null; private String usernameReplacer = ""; @@ -102,17 +105,27 @@ public class ChatNotificationsPlugin extends Plugin public void startUp() { updateConfig(); + addSubscriptions(); + updateHighlights(); } @Override public void shutDown() { + eventBus.unregister(this); + this.privateMessageHashes.clear(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -123,8 +136,7 @@ public class ChatNotificationsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("chatnotification")) { @@ -150,8 +162,7 @@ public class ChatNotificationsPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { MessageNode messageNode = chatMessage.getMessageNode(); boolean update = false; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java index 7cc488dbd7..8159aae561 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java @@ -26,7 +26,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.menus.MenuManager; @@ -74,6 +74,9 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener @Inject private ChatTranslationConfig config; + @Inject + private EventBus eventBus; + private boolean translateOptionVisable; private boolean publicChat; private String getPlayerNames; @@ -91,6 +94,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); if (client != null && this.translateOptionVisable) { @@ -104,6 +108,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener @Override protected void shutDown() throws Exception { + eventBus.unregister(this); if (client != null && this.translateOptionVisable) { menuManager.get().removePlayerMenuItem(TRANSLATE); @@ -113,8 +118,15 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener playerNames.clear(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(PlayerMenuOptionClicked.class, this, this::onPlayerMenuOptionClicked); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("chattranslation")) { @@ -132,8 +144,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!this.translateOptionVisable) { @@ -165,8 +176,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) + private void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) { if (event.getMenuOption().equals(TRANSLATE)) { @@ -181,8 +191,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java index ecbb2e1d63..c1da955f6a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java @@ -70,7 +70,7 @@ import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ClanManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; @@ -114,6 +114,9 @@ public class ClanChatPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + private List chats = new ArrayList<>(); public static CopyOnWriteArrayList getClanMembers() @@ -151,19 +154,37 @@ public class ClanChatPlugin extends Plugin public void startUp() { updateConfig(); + addSubscriptions(); + chats = new ArrayList<>(Text.fromCSV(this.chatsData)); } @Override public void shutDown() { + eventBus.unregister(this); + clanMembers.clear(); removeClanCounter(); resetClanChats(); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ClanMemberJoined.class, this, this::onClanMemberJoined); + eventBus.subscribe(ClanMemberLeft.class, this, this::onClanMemberLeft); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + eventBus.subscribe(ClanChanged.class, this, this::onClanChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getGroup().equals("clanchat")) { @@ -185,8 +206,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onClanMemberJoined(ClanMemberJoined event) + private void onClanMemberJoined(ClanMemberJoined event) { final ClanMember member = event.getMember(); @@ -231,8 +251,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onClanMemberLeft(ClanMemberLeft event) + private void onClanMemberLeft(ClanMemberLeft event) { final ClanMember member = event.getMember(); @@ -275,8 +294,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -414,8 +432,7 @@ public class ClanChatPlugin extends Plugin clanJoinMessages.addLast(clanJoinMessage); } - @Subscribe - public void onVarClientStrChanged(VarClientStrChanged strChanged) + private void onVarClientStrChanged(VarClientStrChanged strChanged) { if (strChanged.getIndex() == VarClientStr.RECENT_CLAN_CHAT.getIndex() && this.recentChats) { @@ -423,8 +440,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN) { @@ -465,8 +481,7 @@ public class ClanChatPlugin extends Plugin insertClanRankIcon(chatMessage); } - @Subscribe - public void onGameStateChanged(GameStateChanged state) + private void onGameStateChanged(GameStateChanged state) { GameState gameState = state.getGameState(); @@ -479,8 +494,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onPlayerSpawned(PlayerSpawned event) + private void onPlayerSpawned(PlayerSpawned event) { final Player local = client.getLocalPlayer(); final Player player = event.getPlayer(); @@ -492,8 +506,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onPlayerDespawned(PlayerDespawned event) + private void onPlayerDespawned(PlayerDespawned event) { if (clanMembers.remove(event.getPlayer()) && clanMembers.isEmpty()) { @@ -501,8 +514,7 @@ public class ClanChatPlugin extends Plugin } } - @Subscribe - public void onClanChanged(ClanChanged event) + private void onClanChanged(ClanChanged event) { if (event.isJoined()) { @@ -517,8 +529,7 @@ public class ClanChatPlugin extends Plugin activityBuffer.clear(); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent) + private void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent) { if (!scriptCallbackEvent.getEventName().equalsIgnoreCase("clanchatInput")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java index 5313fec5f8..3b26cf862a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java @@ -18,7 +18,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -52,6 +52,9 @@ public class ClanManModePlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean highlightAttackable; @Getter(AccessLevel.PACKAGE) @@ -100,6 +103,7 @@ public class ClanManModePlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(ClanManModeOverlay); overlayManager.add(ClanManModeTileOverlay); @@ -109,6 +113,8 @@ public class ClanManModePlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(ClanManModeOverlay); overlayManager.remove(ClanManModeTileOverlay); overlayManager.remove(ClanManModeMinimapOverlay); @@ -120,7 +126,13 @@ public class ClanManModePlugin extends Plugin inwildy = 0; } - @Subscribe + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + private void onConfigChanged(ConfigChanged event) { if (!"clanmanmode".equals(event.getGroup())) @@ -131,8 +143,7 @@ public class ClanManModePlugin extends Plugin updateConfig(); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.HOPPING) { @@ -140,8 +151,7 @@ public class ClanManModePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { ticks++; final Player localPlayer = client.getLocalPlayer(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java index bc0c3d6526..fb28516576 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java @@ -72,7 +72,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -158,6 +158,9 @@ public class ClueScrollPlugin extends Plugin @Inject private WorldMapPointManager worldMapPointManager; + @Inject + private EventBus eventBus; + private BufferedImage emoteImage; private BufferedImage mapArrow; private Integer clueItemId; @@ -182,6 +185,8 @@ public class ClueScrollPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.displayHintArrows = config.displayHintArrows(); overlayManager.add(clueScrollOverlay); overlayManager.add(clueScrollEmoteOverlay); @@ -192,6 +197,8 @@ public class ClueScrollPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(clueScrollOverlay); overlayManager.remove(clueScrollEmoteOverlay); overlayManager.remove(clueScrollWorldOverlay); @@ -202,8 +209,20 @@ public class ClueScrollPlugin extends Plugin resetClue(true); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM) { @@ -224,8 +243,7 @@ public class ClueScrollPlugin extends Plugin resetClue(true); } - @Subscribe - public void onMenuOptionClicked(final MenuOptionClicked event) + private void onMenuOptionClicked(final MenuOptionClicked event) { if ("read".equalsIgnoreCase(event.getOption())) { @@ -239,8 +257,7 @@ public class ClueScrollPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(final ItemContainerChanged event) + private void onItemContainerChanged(final ItemContainerChanged event) { if (event.getItemContainer() == client.getItemContainer(InventoryID.EQUIPMENT)) { @@ -280,15 +297,13 @@ public class ClueScrollPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(final NpcSpawned event) + private void onNpcSpawned(final NpcSpawned event) { final NPC npc = event.getNpc(); checkClueNPCs(clue, npc); } - @Subscribe - public void onNpcDespawned(final NpcDespawned event) + private void onNpcDespawned(final NpcDespawned event) { final boolean removed = npcsToMark.remove(event.getNpc()); @@ -306,8 +321,7 @@ public class ClueScrollPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("cluescroll")) { @@ -319,8 +333,7 @@ public class ClueScrollPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(final GameStateChanged event) + private void onGameStateChanged(final GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN) { @@ -328,8 +341,7 @@ public class ClueScrollPlugin extends Plugin } } - @Subscribe - public void onGameTick(final GameTick event) + private void onGameTick(final GameTick event) { objectsToMark.clear(); @@ -392,8 +404,7 @@ public class ClueScrollPlugin extends Plugin updateClue(findClueScroll()); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() < WidgetID.BEGINNER_CLUE_MAP_CHAMPIONS_GUILD || event.getGroupId() > WidgetID.BEGINNER_CLUE_MAP_WIZARDS_TOWER) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/combatcounter/CombatCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/combatcounter/CombatCounter.java index 1e0079ebd6..b5134f4b9b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/combatcounter/CombatCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/combatcounter/CombatCounter.java @@ -56,7 +56,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.HitsplatApplied; import net.runelite.api.kit.KitType; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -89,6 +89,9 @@ public class CombatCounter extends Plugin @Inject private CombatCounterConfig config; + @Inject + private EventBus eventBus; + private boolean instanced = false; @Setter(AccessLevel.PACKAGE) @Getter(AccessLevel.PACKAGE) @@ -236,6 +239,7 @@ public class CombatCounter extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(tickOverlay); overlayManager.add(damageOverlay); @@ -249,6 +253,8 @@ public class CombatCounter extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(tickOverlay); overlayManager.remove(damageOverlay); @@ -258,8 +264,15 @@ public class CombatCounter extends Plugin this.playerDamage.clear(); } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + } + + private void onAnimationChanged(AnimationChanged event) { Actor actor = event.getActor(); @@ -403,8 +416,7 @@ public class CombatCounter extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (this.resetOnNewInstance) { @@ -554,9 +566,7 @@ public class CombatCounter extends Plugin } } - - @Subscribe - public void onHitsplatApplied(HitsplatApplied event) + private void onHitsplatApplied(HitsplatApplied event) { Actor actor = event.getActor(); @@ -644,8 +654,7 @@ public class CombatCounter extends Plugin return 2 + (int) Math.floor((3d + distance) / 6d); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("combatcounter")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java index 575f59af6f..ae703b6066 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -84,6 +84,9 @@ public class CombatLevelPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean showLevelsUntil; private boolean wildernessAttackLevelRange; @@ -98,6 +101,7 @@ public class CombatLevelPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); @@ -110,6 +114,8 @@ public class CombatLevelPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); Widget combatLevelWidget = client.getWidget(WidgetInfo.COMBAT_LEVEL); @@ -126,8 +132,14 @@ public class CombatLevelPlugin extends Plugin shutDownAttackLevelRange(); } - @Subscribe - public void onGameTick(GameTick event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onGameTick(GameTick event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -153,8 +165,7 @@ public class CombatLevelPlugin extends Plugin combatLevelWidget.setText("Combat Lvl: " + DECIMAL_FORMAT.format(combatLevelPrecise)); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!CONFIG_GROUP.equals(event.getGroup()) || !ATTACK_RANGE_CONFIG_KEY.equals(event.getKey())) { @@ -173,8 +184,7 @@ public class CombatLevelPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (this.wildernessAttackLevelRange && "wildernessWidgetTextSet".equals(event.getEventName())) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java index 7df1fbd6cb..d649f3832e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java @@ -37,7 +37,7 @@ import net.runelite.client.config.ChatColorConfig; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.RuneLitePlusConfig; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PluginChanged; import net.runelite.client.plugins.Plugin; @@ -80,12 +80,17 @@ public class ConfigPlugin extends Plugin @Inject private ChatColorConfig chatColorConfig; + @Inject + private EventBus eventBus; + private ConfigPanel configPanel; private NavigationButton navButton; @Override protected void startUp() throws Exception { + addSubscriptions(); + configPanel = new ConfigPanel(pluginManager, configManager, executorService, runeLiteConfig, runeLitePlusConfig, chatColorConfig); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "config_icon.png"); @@ -103,6 +108,8 @@ public class ConfigPlugin extends Plugin @Override public void shutDown() throws Exception { + eventBus.unregister(this); + clientToolbar.removeNavigation(navButton); RuneLite.getInjector().getInstance(ClientThread.class).invokeLater(() -> { @@ -122,14 +129,18 @@ public class ConfigPlugin extends Plugin }); } - @Subscribe - public void onPluginChanged(PluginChanged event) + private void addSubscriptions() + { + eventBus.subscribe(PluginChanged.class, this, this::onPluginChanged); + eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked); + } + + private void onPluginChanged(PluginChanged event) { SwingUtilities.invokeLater(configPanel::refreshPluginList); } - @Subscribe - public void onOverlayMenuClicked(OverlayMenuClicked overlayMenuClicked) + private void onOverlayMenuClicked(OverlayMenuClicked overlayMenuClicked) { OverlayMenuEntry overlayMenuEntry = overlayMenuClicked.getEntry(); if (overlayMenuEntry.getMenuAction() == MenuAction.RUNELITE_OVERLAY_CONFIG) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java index 96be647e3f..b6a236888f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java @@ -44,7 +44,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.SpotAnimationChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; @@ -80,6 +80,9 @@ public class CookingPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private CookingSession session; @@ -97,6 +100,8 @@ public class CookingPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + session = null; overlayManager.add(overlay); } @@ -104,13 +109,22 @@ public class CookingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + infoBoxManager.removeIf(FermentTimer.class::isInstance); overlayManager.remove(overlay); session = null; } - @Subscribe - public void onGameTick(GameTick gameTick) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onGameTick(GameTick gameTick) { if (session == null || this.statTimeout == 0) { @@ -126,8 +140,7 @@ public class CookingPlugin extends Plugin } } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) + private void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) { Player player = client.getLocalPlayer(); @@ -156,8 +169,7 @@ public class CookingPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM) { @@ -194,8 +206,7 @@ public class CookingPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getGroup().equals("cooking")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java index 06bbe2701c..526105012a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpPlugin.java @@ -53,7 +53,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -102,6 +102,9 @@ public class CorpPlugin extends Plugin @Inject private CorpConfig config; + @Inject + private EventBus eventBus; + private boolean leftClickCore; @Getter(AccessLevel.PACKAGE) private boolean showDamage; @@ -116,6 +119,7 @@ public class CorpPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(corpOverlay); overlayManager.add(coreOverlay); @@ -124,6 +128,8 @@ public class CorpPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(corpOverlay); overlayManager.remove(coreOverlay); @@ -133,8 +139,18 @@ public class CorpPlugin extends Plugin players.clear(); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOADING) { @@ -142,8 +158,7 @@ public class CorpPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned npcSpawned) + private void onNpcSpawned(NpcSpawned npcSpawned) { NPC npc = npcSpawned.getNpc(); @@ -162,8 +177,7 @@ public class CorpPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { NPC npc = npcDespawned.getNpc(); @@ -199,8 +213,7 @@ public class CorpPlugin extends Plugin } } - @Subscribe - public void onHitsplatApplied(HitsplatApplied hitsplatApplied) + private void onHitsplatApplied(HitsplatApplied hitsplatApplied) { Actor actor = hitsplatApplied.getActor(); @@ -218,8 +231,7 @@ public class CorpPlugin extends Plugin totalDamage += hitsplatApplied.getHitsplat().getAmount(); } - @Subscribe - public void onInteractingChanged(InteractingChanged interactingChanged) + private void onInteractingChanged(InteractingChanged interactingChanged) { Actor source = interactingChanged.getSource(); Actor target = interactingChanged.getTarget(); @@ -232,8 +244,7 @@ public class CorpPlugin extends Plugin players.add(source); } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) + private void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) { if (menuEntryAdded.getType() != NPC_SECTION_ACTION || !this.leftClickCore || !menuEntryAdded.getOption().equals(ATTACK)) @@ -256,8 +267,7 @@ public class CorpPlugin extends Plugin client.setMenuEntries(menuEntries); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getGroup().equals("corp")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java index 9dc12d080f..bde7448e3a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java @@ -63,7 +63,7 @@ import net.runelite.api.events.ProjectileMoved; import net.runelite.api.events.SpotAnimationChanged; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -105,6 +105,8 @@ public class CoxPlugin extends Plugin private CoxConfig config; @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; @Getter(AccessLevel.PACKAGE) private boolean HandCripple; @Getter(AccessLevel.PACKAGE) @@ -207,6 +209,7 @@ public class CoxPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(coxOverlay); overlayManager.add(coxInfoBox); @@ -227,12 +230,24 @@ public class CoxPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(coxOverlay); overlayManager.remove(coxInfoBox); } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onChatMessage(ChatMessage chatMessage) { if (inRaid()) { @@ -305,8 +320,7 @@ public class CoxPlugin extends Plugin } } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { if (inRaid()) { @@ -328,8 +342,7 @@ public class CoxPlugin extends Plugin } } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) + private void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) { if (inRaid()) { @@ -344,8 +357,7 @@ public class CoxPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned npcSpawned) + private void onNpcSpawned(NpcSpawned npcSpawned) { if (inRaid()) { @@ -384,8 +396,7 @@ public class CoxPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (inRaid()) { @@ -429,8 +440,7 @@ public class CoxPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (!inRaid()) { @@ -696,8 +706,7 @@ public class CoxPlugin extends Plugin return client.getVar(Varbits.IN_RAID) == 1; } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getGroup().equals("Cox")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/crystalmathlabs/CrystalMathLabs.java b/runelite-client/src/main/java/net/runelite/client/plugins/crystalmathlabs/CrystalMathLabs.java index 77a9ec68b2..8831a7df84 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/crystalmathlabs/CrystalMathLabs.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/crystalmathlabs/CrystalMathLabs.java @@ -35,7 +35,7 @@ import net.runelite.api.Player; import net.runelite.api.Skill; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.http.api.RuneLiteAPI; @@ -64,12 +64,27 @@ public class CrystalMathLabs extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + private String lastUsername; private boolean fetchXp; private long lastXp; - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { GameState state = gameStateChanged.getGameState(); if (state == GameState.LOGGED_IN) @@ -98,8 +113,7 @@ public class CrystalMathLabs extends Plugin } } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (fetchXp) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/customcursor/CustomCursorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/customcursor/CustomCursorPlugin.java index feb8729740..aff60c0daf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/customcursor/CustomCursorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/customcursor/CustomCursorPlugin.java @@ -29,7 +29,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.ClientUI; @@ -48,6 +48,9 @@ public class CustomCursorPlugin extends Plugin @Inject private CustomCursorConfig config; + @Inject + private EventBus eventBus; + @Provides CustomCursorConfig provideConfig(ConfigManager configManager) { @@ -57,17 +60,19 @@ public class CustomCursorPlugin extends Plugin @Override protected void startUp() { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); updateCursor(); } @Override protected void shutDown() { + eventBus.unregister(this); + clientUI.resetCursor(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("customcursor") && event.getKey().equals("cursorStyle")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java index ed81cc7177..8bd6c9f770 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dailytaskindicators/DailyTasksPlugin.java @@ -44,7 +44,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -80,6 +80,9 @@ public class DailyTasksPlugin extends Plugin @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; + private long lastReset; private boolean loggingIn; @@ -103,6 +106,9 @@ public class DailyTasksPlugin extends Plugin public void startUp() { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + + addSubscriptions(); loggingIn = true; } @@ -110,11 +116,19 @@ public class DailyTasksPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + + eventBus.unregister(this); lastReset = 0L; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGING_IN) { @@ -122,8 +136,7 @@ public class DailyTasksPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { long currentTime = System.currentTimeMillis(); boolean dailyReset = !loggingIn && currentTime - lastReset > ONE_DAY; @@ -298,8 +311,7 @@ public class DailyTasksPlugin extends Plugin .build()); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getGroup().equals("dailytaskindicators")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java index 16d755049b..5a56dad3b2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/deathindicator/DeathIndicatorPlugin.java @@ -43,7 +43,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.LocalPlayerDeath; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -83,6 +83,9 @@ public class DeathIndicatorPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + private BufferedImage mapArrow; private Timer deathTimer; @@ -100,6 +103,8 @@ public class DeathIndicatorPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + if (!hasDied()) { return; @@ -127,6 +132,8 @@ public class DeathIndicatorPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + if (client.hasHintArrow()) { client.clearHintArrow(); @@ -141,8 +148,15 @@ public class DeathIndicatorPlugin extends Plugin worldMapPointManager.removeIf(DeathWorldMapPoint.class::isInstance); } - @Subscribe - public void onLocalPlayerDeath(LocalPlayerDeath death) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onLocalPlayerDeath(LocalPlayerDeath death) { if (client.isInInstancedRegion()) { @@ -154,8 +168,7 @@ public class DeathIndicatorPlugin extends Plugin lastDeathTime = Instant.now(); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { // Check if player respawned in a death respawn location if (lastDeath != null && !client.getLocalPlayer().getWorldLocation().equals(lastDeath)) @@ -219,8 +232,7 @@ public class DeathIndicatorPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("deathIndicator")) { @@ -251,8 +263,7 @@ public class DeathIndicatorPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (!hasDied()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java index f8a56ffbc6..0999eda3c1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/defaultworld/DefaultWorldPlugin.java @@ -33,7 +33,7 @@ import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.GameStateChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionOpen; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -57,6 +57,9 @@ public class DefaultWorldPlugin extends Plugin @Inject private DefaultWorldConfig config; + @Inject + private EventBus eventBus; + private final WorldClient worldClient = new WorldClient(); private int worldCache; private boolean worldChangeRequired; @@ -64,6 +67,8 @@ public class DefaultWorldPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + worldChangeRequired = true; applyWorld(); } @@ -71,25 +76,31 @@ public class DefaultWorldPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + worldChangeRequired = true; changeWorld(worldCache); } + private void addSubscriptions() + { + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + @Provides DefaultWorldConfig getConfig(ConfigManager configManager) { return configManager.getConfig(DefaultWorldConfig.class); } - @Subscribe - public void onSessionOpen(SessionOpen event) + private void onSessionOpen(SessionOpen event) { worldChangeRequired = true; applyWorld(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { applyWorld(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/demonicgorilla/DemonicGorillaPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/demonicgorilla/DemonicGorillaPlugin.java index 9b4d7f8a21..aa7262b424 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/demonicgorilla/DemonicGorillaPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/demonicgorilla/DemonicGorillaPlugin.java @@ -56,7 +56,7 @@ import net.runelite.api.events.PlayerDespawned; import net.runelite.api.events.PlayerSpawned; import net.runelite.api.events.ProjectileMoved; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -81,6 +81,9 @@ public class DemonicGorillaPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Map gorillas; @@ -93,6 +96,7 @@ public class DemonicGorillaPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); overlayManager.add(overlay); gorillas = new HashMap<>(); recentBoulders = new ArrayList<>(); @@ -104,6 +108,7 @@ public class DemonicGorillaPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.remove(overlay); gorillas = null; recentBoulders = null; @@ -111,6 +116,18 @@ public class DemonicGorillaPlugin extends Plugin memorizedPlayers = null; } + private void addSubscriptions() + { + eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + private void clear() { recentBoulders.clear(); @@ -528,8 +545,7 @@ public class DemonicGorillaPlugin extends Plugin } } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { Projectile projectile = event.getProjectile(); int projectileId = projectile.getId(); @@ -616,8 +632,7 @@ public class DemonicGorillaPlugin extends Plugin } } - @Subscribe - public void onHitsplatApplied(HitsplatApplied event) + private void onHitsplatApplied(HitsplatApplied event) { if (gorillas.isEmpty()) { @@ -645,8 +660,7 @@ public class DemonicGorillaPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { GameState gs = event.getGameState(); if (gs == GameState.LOGGING_IN || @@ -657,8 +671,7 @@ public class DemonicGorillaPlugin extends Plugin } } - @Subscribe - public void onPlayerSpawned(PlayerSpawned event) + private void onPlayerSpawned(PlayerSpawned event) { if (gorillas.isEmpty()) { @@ -669,8 +682,7 @@ public class DemonicGorillaPlugin extends Plugin memorizedPlayers.put(player, new MemorizedPlayer(player)); } - @Subscribe - public void onPlayerDespawned(PlayerDespawned event) + private void onPlayerDespawned(PlayerDespawned event) { if (gorillas.isEmpty()) { @@ -680,8 +692,7 @@ public class DemonicGorillaPlugin extends Plugin memorizedPlayers.remove(event.getPlayer()); } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { NPC npc = event.getNpc(); if (isNpcGorilla(npc.getId())) @@ -697,8 +708,7 @@ public class DemonicGorillaPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (gorillas.remove(event.getNpc()) != null && gorillas.isEmpty()) { @@ -706,8 +716,7 @@ public class DemonicGorillaPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { checkGorillaAttacks(); checkPendingAttacks(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index cc64835acb..1bef2b684f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -42,15 +42,16 @@ import net.runelite.api.NPC; import net.runelite.api.Player; import net.runelite.api.Skill; import net.runelite.api.coords.WorldPoint; +import net.runelite.api.events.AreaSoundEffectPlayed; import net.runelite.api.events.BoostedLevelChanged; import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.MenuEntryAdded; +import net.runelite.api.events.SoundEffectPlayed; import net.runelite.api.events.VarbitChanged; import net.runelite.api.kit.KitType; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.ClientToolbar; @@ -143,6 +144,8 @@ public class DevToolsPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + players = new DevToolsButton("Players"); npcs = new DevToolsButton("NPCs"); @@ -200,14 +203,13 @@ public class DevToolsPlugin extends Plugin .build(); clientToolbar.addNavigation(navButton); - - eventBus.register(soundEffectOverlay); } @Override protected void shutDown() throws Exception { - eventBus.unregister(soundEffectOverlay); + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(locationOverlay); overlayManager.remove(sceneOverlay); @@ -218,8 +220,15 @@ public class DevToolsPlugin extends Plugin clientToolbar.removeNavigation(navButton); } - @Subscribe - public void onCommandExecuted(CommandExecuted commandExecuted) + private void addSubscriptions() + { + eventBus.subscribe(CommandExecuted.class, this, this::onCommandExecuted); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(AreaSoundEffectPlayed.class, this, this::onAreaSoundEffectPlayed); + eventBus.subscribe(SoundEffectPlayed.class, this, this::onSoundEffectPlayed); + } + + private void onCommandExecuted(CommandExecuted commandExecuted) { String[] args = commandExecuted.getArguments(); @@ -260,7 +269,7 @@ public class DevToolsPlugin extends Plugin client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Set VarPlayer " + varp + " to " + value, null); VarbitChanged varbitChanged = new VarbitChanged(); varbitChanged.setIndex(varp); - eventBus.post(varbitChanged); // fake event + eventBus.post(VarbitChanged.class, varbitChanged); // fake event break; } case "getvarb": @@ -276,7 +285,7 @@ public class DevToolsPlugin extends Plugin int value = Integer.parseInt(args[1]); client.setVarbitValue(client.getVarps(), varbit, value); client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Set varbit " + varbit + " to " + value, null); - eventBus.post(new VarbitChanged()); // fake event + eventBus.post(VarbitChanged.class, new VarbitChanged()); // fake event break; } case "addxp": @@ -295,7 +304,7 @@ public class DevToolsPlugin extends Plugin ExperienceChanged experienceChanged = new ExperienceChanged(); experienceChanged.setSkill(skill); - eventBus.post(experienceChanged); + eventBus.post(ExperienceChanged.class, experienceChanged); break; } case "setstat": @@ -314,11 +323,11 @@ public class DevToolsPlugin extends Plugin ExperienceChanged experienceChanged = new ExperienceChanged(); experienceChanged.setSkill(skill); - eventBus.post(experienceChanged); + eventBus.post(ExperienceChanged.class, experienceChanged); BoostedLevelChanged boostedLevelChanged = new BoostedLevelChanged(); boostedLevelChanged.setSkill(skill); - eventBus.post(boostedLevelChanged); + eventBus.post(BoostedLevelChanged.class, boostedLevelChanged); break; } case "anim": @@ -363,8 +372,7 @@ public class DevToolsPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!examine.isActive()) { @@ -401,4 +409,24 @@ public class DevToolsPlugin extends Plugin client.setMenuEntries(entries); } } + + private void onSoundEffectPlayed(SoundEffectPlayed event) + { + if (!getSoundEffects().isActive() || soundEffectOverlay == null) + { + return; + } + + soundEffectOverlay.onSoundEffectPlayed(event); + } + + private void onAreaSoundEffectPlayed(AreaSoundEffectPlayed event) + { + if (!getSoundEffects().isActive() || soundEffectOverlay == null) + { + return; + } + + soundEffectOverlay.onAreaSoundEffectPlayed(event); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java index fbe2254066..e98e0ef01e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java @@ -33,7 +33,6 @@ import net.runelite.api.Player; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.AreaSoundEffectPlayed; import net.runelite.api.events.SoundEffectPlayed; -import net.runelite.client.eventbus.Subscribe; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; @@ -74,14 +73,8 @@ class SoundEffectOverlay extends Overlay return panelComponent.render(graphics); } - @Subscribe - public void onSoundEffectPlayed(SoundEffectPlayed event) + void onSoundEffectPlayed(SoundEffectPlayed event) { - if (!plugin.getSoundEffects().isActive()) - { - return; - } - String text = "Id: " + event.getSoundId() + " - D: " + event.getDelay(); @@ -94,14 +87,8 @@ class SoundEffectOverlay extends Overlay checkMaxLines(); } - @Subscribe - public void onAreaSoundEffectPlayed(AreaSoundEffectPlayed event) + void onAreaSoundEffectPlayed(AreaSoundEffectPlayed event) { - if (!plugin.getSoundEffects().isActive()) - { - return; - } - Color textColor = COLOR_AREA_SOUND_EFFECT; // Check if the player is within range to hear the sound diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index 4f1f8f6134..ae0dfc856a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -56,8 +56,6 @@ import net.runelite.api.events.VarClientIntChanged; import net.runelite.api.events.VarClientStrChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; -import net.runelite.client.eventbus.Subscribe; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.DynamicGridLayout; @@ -87,7 +85,7 @@ class VarInspector extends JFrame private final static int MAX_LOG_ENTRIES = 10_000; private final Client client; - private final EventBusImplementation eventBus; + private final EventBus eventBus; private final JPanel tracker = new JPanel(); @@ -100,7 +98,7 @@ class VarInspector extends JFrame private Map varcs = null; @Inject - VarInspector(Client client, EventBusImplementation eventBus, DevToolsPlugin plugin) + VarInspector(Client client, EventBus eventBus, DevToolsPlugin plugin) { this.eventBus = eventBus; this.client = client; @@ -116,6 +114,7 @@ class VarInspector extends JFrame @Override public void windowClosing(WindowEvent e) { + eventBus.unregister(this); close(); plugin.getVarInspector().setActive(false); } @@ -171,6 +170,15 @@ class VarInspector extends JFrame add(trackerOpts, BorderLayout.SOUTH); pack(); + + addSubscriptions(); + } + + private void addSubscriptions() + { + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(VarClientIntChanged.class, this, this::onVarClientIntChanged); + eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); } private void addVarLog(VarType type, String name, int old, int neew) @@ -211,8 +219,7 @@ class VarInspector extends JFrame }); } - @Subscribe - public void onVarbitChanged(VarbitChanged ev) + private void onVarbitChanged(VarbitChanged ev) { int[] varps = client.getVarps(); @@ -275,8 +282,7 @@ class VarInspector extends JFrame System.arraycopy(client.getVarps(), 0, oldVarps2, 0, oldVarps2.length); } - @Subscribe - public void onVarClientIntChanged(VarClientIntChanged e) + private void onVarClientIntChanged(VarClientIntChanged e) { int idx = e.getIndex(); int neew = (Integer) client.getVarcMap().getOrDefault(idx, 0); @@ -298,8 +304,7 @@ class VarInspector extends JFrame } } - @Subscribe - public void onVarClientStrChanged(VarClientStrChanged e) + private void onVarClientStrChanged(VarClientStrChanged e) { int idx = e.getIndex(); String neew = (String) client.getVarcMap().getOrDefault(idx, ""); @@ -358,7 +363,7 @@ class VarInspector extends JFrame public void close() { tracker.removeAll(); - // eventBus.unregister(this); + eventBus.unregister(this); setVisible(false); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index f622b59677..e2d10e365d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -53,7 +53,6 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.callback.ClientThread; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.Subscribe; import net.runelite.client.ui.ClientUI; @Slf4j @@ -86,8 +85,6 @@ class WidgetInspector extends JFrame this.config = config; this.overlay = overlay; - eventBus.register(this); - setTitle("RuneLite Widget Inspector"); setIconImage(ClientUI.ICON); @@ -97,6 +94,7 @@ class WidgetInspector extends JFrame @Override public void windowClosing(WindowEvent e) { + eventBus.unregister(this); close(); plugin.getWidgetInspector().setActive(false); } @@ -165,9 +163,10 @@ class WidgetInspector extends JFrame add(split, BorderLayout.CENTER); pack(); + + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); } - @Subscribe private void onConfigChanged(ConfigChanged ev) { boolean onTop = config.inspectorAlwaysOnTop(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java index cfeff83a8d..087b51d95e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java @@ -56,7 +56,7 @@ import net.runelite.client.discord.DiscordService; import net.runelite.client.discord.events.DiscordJoinGame; import net.runelite.client.discord.events.DiscordJoinRequest; import net.runelite.client.discord.events.DiscordReady; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.PartyChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -110,6 +110,9 @@ public class DiscordPlugin extends Plugin @Inject private WSClient wsClient; + @Inject + private EventBus eventBus; + private final Map skillExp = new HashMap<>(); private NavigationButton discordButton; private boolean loginFlag; @@ -137,6 +140,7 @@ public class DiscordPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "discord.png"); @@ -162,14 +166,31 @@ public class DiscordPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + clientToolbar.removeNavigation(discordButton); discordState.reset(); partyService.changeParty(null); wsClient.unregisterMessage(DiscordUserInfo.class); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(DiscordReady.class, this, this::onDiscordReady); + eventBus.subscribe(DiscordJoinRequest.class, this, this::onDiscordJoinRequest); + eventBus.subscribe(DiscordJoinGame.class, this, this::onDiscordJoinGame); + eventBus.subscribe(DiscordUserInfo.class, this, this::onDiscordUserInfo); + eventBus.subscribe(UserJoin.class, this, this::onUserJoin); + eventBus.subscribe(UserSync.class, this, this::onUserSync); + eventBus.subscribe(UserPart.class, this, this::onUserPart); + eventBus.subscribe(PartyChanged.class, this, this::onPartyChanged); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -192,8 +213,7 @@ public class DiscordPlugin extends Plugin checkForAreaUpdate(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equalsIgnoreCase("discord")) { @@ -205,8 +225,7 @@ public class DiscordPlugin extends Plugin } } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void onExperienceChanged(ExperienceChanged event) { final int exp = client.getSkillExperience(event.getSkill()); final Integer previous = skillExp.put(event.getSkill(), exp); @@ -224,8 +243,7 @@ public class DiscordPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (!this.showRaidingActivity) { @@ -240,14 +258,12 @@ public class DiscordPlugin extends Plugin } } - @Subscribe - public void onDiscordReady(DiscordReady event) + private void onDiscordReady(DiscordReady event) { partyService.setUsername(event.getUsername() + "#" + event.getDiscriminator()); } - @Subscribe - public void onDiscordJoinRequest(DiscordJoinRequest request) + private void onDiscordJoinRequest(DiscordJoinRequest request) { log.debug("Got discord join request {}", request); if (partyService.isOwner() && partyService.getMembers().isEmpty()) @@ -258,8 +274,7 @@ public class DiscordPlugin extends Plugin } } - @Subscribe - public void onDiscordJoinGame(DiscordJoinGame joinGame) + private void onDiscordJoinGame(DiscordJoinGame joinGame) { log.debug("Got discord join game {}", joinGame); UUID partyId = UUID.fromString(joinGame.getJoinSecret()); @@ -267,8 +282,7 @@ public class DiscordPlugin extends Plugin updatePresence(); } - @Subscribe - public void onDiscordUserInfo(final DiscordUserInfo event) + private void onDiscordUserInfo(final DiscordUserInfo event) { final PartyMember memberById = partyService.getMemberById(event.getMemberId()); @@ -327,14 +341,12 @@ public class DiscordPlugin extends Plugin }); } - @Subscribe - public void onUserJoin(final UserJoin event) + private void onUserJoin(final UserJoin event) { updatePresence(); } - @Subscribe - public void onUserSync(final UserSync event) + private void onUserSync(final UserSync event) { final PartyMember localMember = partyService.getLocalMember(); @@ -349,14 +361,12 @@ public class DiscordPlugin extends Plugin } } - @Subscribe - public void onUserPart(final UserPart event) + private void onUserPart(final UserPart event) { updatePresence(); } - @Subscribe - public void onPartyChanged(final PartyChanged event) + private void onPartyChanged(final PartyChanged event) { updatePresence(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java index dff53b98c1..6f30275145 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.OverheadTextChanged; import net.runelite.client.chat.ChatMessageManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.util.ImageUtil; @@ -64,16 +64,32 @@ public class EmojiPlugin extends Plugin @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; + private int modIconsStart = -1; @Override protected void startUp() { loadEmojiIcons(); + addSubscriptions(); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(OverheadTextChanged.class, this, this::onOverheadTextChanged); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGGED_IN) { @@ -113,8 +129,7 @@ public class EmojiPlugin extends Plugin client.setModIcons(newModIcons); } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOGGED_IN || modIconsStart == -1) { @@ -148,8 +163,7 @@ public class EmojiPlugin extends Plugin client.refreshChat(); } - @Subscribe - public void onOverheadTextChanged(final OverheadTextChanged event) + private void onOverheadTextChanged(final OverheadTextChanged event) { if (!(event.getActor() instanceof Player)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java index 72a13d5fe9..f74ab59008 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java @@ -35,7 +35,7 @@ import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -54,6 +54,9 @@ public class EntityHiderPlugin extends Plugin @Inject private EntityHiderConfig config; + @Inject + private EventBus eventBus; + @Provides EntityHiderConfig provideConfig(ConfigManager configManager) { @@ -63,16 +66,20 @@ public class EntityHiderPlugin extends Plugin @Override protected void startUp() { - updateConfig(); + addSubscriptions(); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); } - @Subscribe public void onConfigChanged(ConfigChanged e) { updateConfig(); } - @Subscribe public void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) @@ -106,6 +113,8 @@ public class EntityHiderPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + client.setIsHidingEntities(false); client.setPlayersHidden(false); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java index 84e784ba48..7059642ddf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java @@ -52,7 +52,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; @@ -94,6 +94,10 @@ public class EquipmentInspectorPlugin extends Plugin @Inject private ClientToolbar pluginToolbar; + + @Inject + private EventBus eventBus; + private NavigationButton navButton; private EquipmentInspectorPanel equipmentInspectorPanel; private int TotalPrice = 0; @@ -116,6 +120,7 @@ public class EquipmentInspectorPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); equipmentInspectorPanel = injector.getInstance(EquipmentInspectorPanel.class); if (client != null) @@ -140,12 +145,18 @@ public class EquipmentInspectorPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); menuManager.removePlayerMenuItem(INSPECT_EQUIPMENT); } - @Subscribe - public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(PlayerMenuOptionClicked.class, this, this::onPlayerMenuOptionClicked); + } + + private void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) { if (event.getMenuOption().equals(INSPECT_EQUIPMENT)) { @@ -297,8 +308,7 @@ public class EquipmentInspectorPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equalsIgnoreCase("equipmentinspector")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java index 26e77760a7..c49a51d568 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java @@ -50,7 +50,7 @@ import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -96,15 +96,34 @@ public class ExaminePlugin extends Plugin @Inject private ScheduledExecutorService executor; + @Inject + private EventBus eventBus; - @Subscribe - public void onGameStateChanged(GameStateChanged event) + @Override + protected void startUp() throws Exception + { + addSubscriptions(); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onGameStateChanged(GameStateChanged event) { pending.clear(); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (!event.getOption().equals("Examine")) { @@ -161,8 +180,7 @@ public class ExaminePlugin extends Plugin pending.push(pendingExamine); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { ExamineType type; switch (event.getType()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java index ce76c45f00..91e8036c98 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/XpDropPlugin.java @@ -55,7 +55,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.NPCManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -89,6 +89,9 @@ public class XpDropPlugin extends Plugin @Inject private XpDropOverlay overlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private int damage = 0; @@ -126,6 +129,7 @@ public class XpDropPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); damageMode = config.showdamagedrops(); @@ -138,11 +142,22 @@ public class XpDropPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("xpdrop")) { @@ -171,15 +186,13 @@ public class XpDropPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { damage = 0; tickShow = 0; } - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + private void onWidgetHiddenChanged(WidgetHiddenChanged event) { Widget widget = event.getWidget(); @@ -303,8 +316,7 @@ public class XpDropPlugin extends Plugin return null; } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { lastOpponent = client.getLocalPlayer().getInteracting(); @@ -339,8 +351,7 @@ public class XpDropPlugin extends Plugin client.runScript(XPDROP_DISABLED, lastSkill.ordinal(), previousExpGained); } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void onExperienceChanged(ExperienceChanged event) { final Skill skill = event.getSkill(); final int xp = client.getSkillExperience(skill); @@ -355,8 +366,7 @@ public class XpDropPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent e) + private void onScriptCallbackEvent(ScriptCallbackEvent e) { if (this.showdamagedrops == XpDropConfig.DamageMode.NONE) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java index ee66d4271f..d7cad2deb9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java @@ -55,7 +55,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; import net.runelite.client.plugins.Plugin; @@ -92,6 +92,9 @@ public class FairyRingPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + private ChatboxTextInput searchInput = null; private Widget searchBtn; private Collection codes = null; @@ -115,10 +118,24 @@ public class FairyRingPlugin extends Plugin protected void startUp() throws Exception { this.autoOpen = config.autoOpen(); + addSubscriptions(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("fairyrings")) { @@ -134,14 +151,12 @@ public class FairyRingPlugin extends Plugin return configManager.getConfig(FairyRingConfig.class); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { setWidgetTextToDestination(); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded widgetLoaded) + private void onWidgetLoaded(WidgetLoaded widgetLoaded) { if (widgetLoaded.getGroupId() == WidgetID.FAIRY_RING_PANEL_GROUP_ID) { @@ -227,8 +242,7 @@ public class FairyRingPlugin extends Plugin .build(); } - @Subscribe - public void onGameTick(GameTick t) + private void onGameTick(GameTick t) { // This has to happen because the only widget that gets hidden is the tli one Widget fairyRingTeleportButton = client.getWidget(WidgetInfo.FAIRY_RING_TELEPORT_BUTTON); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java index 59de3a4465..f7a6337aa5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPlugin.java @@ -37,7 +37,7 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @@ -66,6 +66,9 @@ public class FeedPlugin extends Plugin @Inject private ScheduledExecutorService executorService; + @Inject + private EventBus eventBus; + private FeedPanel feedPanel; private NavigationButton navButton; @@ -86,6 +89,8 @@ public class FeedPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + feedPanel = new FeedPanel(config, feedSupplier); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "icon.png"); @@ -104,6 +109,7 @@ public class FeedPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); clientToolbar.removeNavigation(navButton); } @@ -112,8 +118,7 @@ public class FeedPlugin extends Plugin feedPanel.rebuildFeed(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("feed")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java index 2376f09fb6..90b84085e0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java @@ -52,7 +52,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.NPCManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -130,6 +130,8 @@ public class FightCavePlugin extends Plugin private FightCaveOverlay fightCaveOverlay; @Inject private FightCaveConfig config; + @Inject + private EventBus eventBus; @Getter(AccessLevel.PACKAGE) private Set fightCaveContainer = new HashSet<>(); @Getter(AccessLevel.PACKAGE) @@ -170,6 +172,7 @@ public class FightCavePlugin extends Plugin public void startUp() { updateConfig(); + addSubscriptions(); if (client.getGameState() == GameState.LOGGED_IN && regionCheck()) { @@ -182,13 +185,24 @@ public class FightCavePlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + overlayManager.remove(waveOverlay); overlayManager.remove(fightCaveOverlay); currentWave = -1; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("fightcave")) { @@ -198,8 +212,7 @@ public class FightCavePlugin extends Plugin updateConfig(); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (!validRegion) { @@ -216,8 +229,7 @@ public class FightCavePlugin extends Plugin currentWave = Integer.parseInt(waveMatcher.group(1)); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() != GameState.LOGGED_IN) { @@ -240,8 +252,7 @@ public class FightCavePlugin extends Plugin fightCaveContainer.clear(); } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { if (!validRegion) { @@ -265,8 +276,7 @@ public class FightCavePlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (!validRegion) { @@ -290,8 +300,7 @@ public class FightCavePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick Event) + private void onGameTick(GameTick Event) { if (!validRegion) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java index 074a4d4858..5539fde29e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java @@ -64,7 +64,7 @@ import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; @@ -131,6 +131,9 @@ public class FishingPlugin extends Plugin @Inject private FishingSpotMinimapOverlay fishingSpotMinimapOverlay; + @Inject + private EventBus eventBus; + private boolean trawlerNotificationSent; @Provides @@ -159,6 +162,7 @@ public class FishingPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(spotOverlay); @@ -168,6 +172,8 @@ public class FishingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + spotOverlay.setHidden(true); fishingSpotMinimapOverlay.setHidden(true); overlayManager.remove(overlay); @@ -180,8 +186,21 @@ public class FishingPlugin extends Plugin trawlerStartTime = null; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("fishing")) { @@ -191,8 +210,7 @@ public class FishingPlugin extends Plugin updateConfig(); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { GameState gameState = gameStateChanged.getGameState(); if (gameState == GameState.CONNECTION_LOST || gameState == GameState.LOGIN_SCREEN || gameState == GameState.HOPPING) @@ -202,8 +220,7 @@ public class FishingPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer() != client.getItemContainer(InventoryID.INVENTORY) && event.getItemContainer() != client.getItemContainer(InventoryID.EQUIPMENT)) @@ -224,8 +241,7 @@ public class FishingPlugin extends Plugin fishingSpotMinimapOverlay.setHidden(!showOverlays); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM) { @@ -241,8 +257,7 @@ public class FishingPlugin extends Plugin } } - @Subscribe - public void onInteractingChanged(InteractingChanged event) + private void onInteractingChanged(InteractingChanged event) { if (event.getSource() != client.getLocalPlayer()) { @@ -277,8 +292,7 @@ public class FishingPlugin extends Plugin return ItemUtil.containsAnyItemId(itemContainer.getItems(), FISHING_TOOLS); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { // Reset fishing session if (session.getLastFishCaught() != null) @@ -318,8 +332,7 @@ public class FishingPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { final NPC npc = event.getNpc(); @@ -332,8 +345,7 @@ public class FishingPlugin extends Plugin inverseSortSpotDistanceFromPlayer(); } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { final NPC npc = npcDespawned.getNpc(); @@ -346,8 +358,7 @@ public class FishingPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (!this.trawlerNotification || client.getGameState() != GameState.LOGGED_IN) { @@ -371,8 +382,7 @@ public class FishingPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() == WidgetID.FISHING_TRAWLER_GROUP_ID) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java index e0e1b57b20..a8a8cdcaa5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java @@ -51,7 +51,7 @@ import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.BeforeRender; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.flexo.Flexo; import net.runelite.client.flexo.FlexoMouse; import net.runelite.client.plugins.Plugin; @@ -104,6 +104,9 @@ public class FlexoPlugin extends Plugin @Inject private FlexoConfig config; + @Inject + private EventBus eventBus; + @Provides FlexoConfig getConfig(ConfigManager configManager) { @@ -138,7 +141,6 @@ public class FlexoPlugin extends Plugin @Getter(AccessLevel.PACKAGE) private List clickPoints = new ArrayList<>(); - @Subscribe private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("flexo") || (!event.getGroup().equals("stretchedmode")) ) @@ -150,9 +152,7 @@ public class FlexoPlugin extends Plugin updateMouseMotionFactory(); } - - @Subscribe - public void onBeforeRender(BeforeRender event) + private void onBeforeRender(BeforeRender event) { if (Flexo.client == null) { @@ -293,6 +293,7 @@ public class FlexoPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); Flexo.isStretched = client.isStretchedEnabled(); overlayManager.add(overlay); @@ -302,9 +303,17 @@ public class FlexoPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(BeforeRender.class, this, this::onBeforeRender); + } + private void updateConfig() { this.overlayEnabled = config.overlayEnabled(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsPlugin.java index fb8bffc9d6..b33699436a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fps/FpsPlugin.java @@ -38,7 +38,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.DrawManager; @@ -92,6 +92,9 @@ public class FpsPlugin extends Plugin @Inject private FpsConfig fpsConfig; + @Inject + private EventBus eventBus; + private final ScheduledExecutorService pingExecutorService = new ExecutorServiceExceptionLogger(Executors.newSingleThreadScheduledExecutor()); private boolean loaded = false; @@ -113,8 +116,7 @@ public class FpsPlugin extends Plugin return configManager.getConfig(FpsConfig.class); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals(CONFIG_GROUP_KEY)) { @@ -126,15 +128,13 @@ public class FpsPlugin extends Plugin } } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void onFocusChanged(FocusChanged event) { drawListener.onFocusChanged(event); overlay.onFocusChanged(event); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { shutdown = event.getGameState() != GameState.LOGGED_IN; } @@ -142,6 +142,8 @@ public class FpsPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + limitMode = fpsConfig.limitMode(); drawFps = fpsConfig.drawFps(); drawPing = fpsConfig.drawPing(); @@ -160,11 +162,20 @@ public class FpsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); drawManager.unregisterEveryFrameListener(drawListener); shutdown = true; } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + private void getPingToCurrentWorld() { if (!shutdown && drawPing) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java index 3a19f7be49..50e4824c94 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java @@ -39,7 +39,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.SpotAnimationChanged; import net.runelite.api.events.PlayerDespawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -75,6 +75,9 @@ public class FreezeTimersPlugin extends Plugin @Inject private FreezeTimersConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean showPlayers; @Getter(AccessLevel.PACKAGE) @@ -97,11 +100,14 @@ public class FreezeTimersPlugin extends Plugin public void startUp() { updateConfig(); + addSubscriptions(); + overlayManager.add(overlay); } public void shutDown() { + eventBus.unregister(this); overlayManager.remove(overlay); } @@ -111,8 +117,15 @@ public class FreezeTimersPlugin extends Plugin return configManager.getConfig(FreezeTimersConfig.class); } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + } + + private void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) { int oldGraphic = prayerTracker.getSpotanimLastTick(graphicChanged.getActor()); int newGraphic = graphicChanged.getActor().getSpotAnimation(); @@ -138,8 +151,7 @@ public class FreezeTimersPlugin extends Plugin System.currentTimeMillis() + length); } - @Subscribe - public void onGameTick(GameTick tickEvent) + private void onGameTick(GameTick tickEvent) { timers.gameTick(); prayerTracker.gameTick(); @@ -149,13 +161,12 @@ public class FreezeTimersPlugin extends Plugin { SpotAnimationChanged callback = new SpotAnimationChanged(); callback.setActor(actor); - client.getCallbacks().post(callback); + client.getCallbacks().post(SpotAnimationChanged.class, callback); } } } - @Subscribe - public void onPlayerDespawned(PlayerDespawned playerDespawned) + private void onPlayerDespawned(PlayerDespawned playerDespawned) { final Player player = playerDespawned.getPlayer(); // All despawns ok: death, teleports, log out, runs away from screen @@ -167,9 +178,7 @@ public class FreezeTimersPlugin extends Plugin freezes.remove(actor.getName()); } - - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("freezetimers")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/friendlist/FriendListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/friendlist/FriendListPlugin.java index b98b68d7eb..1d71c487bf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/friendlist/FriendListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/friendlist/FriendListPlugin.java @@ -32,7 +32,7 @@ import net.runelite.api.VarPlayer; import net.runelite.api.events.GameTick; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -52,16 +52,26 @@ public class FriendListPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + @Override protected void shutDown() { + eventBus.unregister(this); + final int world = client.getWorld(); setFriendsListTitle("Friends List - World " + world); setIgnoreListTitle("Ignore List - World " + world); } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { final int world = client.getWorld(); final boolean isMember = client.getVar(VarPlayer.MEMBERSHIP_DAYS) > 0; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java index caefd58452..836b3e7fe2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java @@ -46,7 +46,7 @@ import net.runelite.api.events.NameableNameChanged; import net.runelite.api.events.FriendRemoved; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -85,21 +85,35 @@ public class FriendNotesPlugin extends Plugin @Inject private ChatboxPanelManager chatboxPanelManager; + @Inject + private EventBus eventBus; + @Getter private HoveredFriend hoveredFriend = null; @Override protected void startUp() throws Exception { + addSubscriptions(); overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } + private void addSubscriptions() + { + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(NameableNameChanged.class, this, this::onNameableNameChanged); + eventBus.subscribe(FriendRemoved.class, this, this::onFriendRemoved); + } + /** * Set a friend note, or unset by passing a null/empty note. */ @@ -160,8 +174,7 @@ public class FriendNotesPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { final int groupId = WidgetInfo.TO_GROUP(event.getActionParam1()); @@ -189,8 +202,7 @@ public class FriendNotesPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (WidgetInfo.TO_GROUP(event.getActionParam1()) == WidgetInfo.FRIENDS_LIST.getGroupId()) { @@ -227,8 +239,7 @@ public class FriendNotesPlugin extends Plugin } - @Subscribe - public void onNameableNameChanged(NameableNameChanged event) + private void onNameableNameChanged(NameableNameChanged event) { final Nameable nameable = event.getNameable(); @@ -249,8 +260,7 @@ public class FriendNotesPlugin extends Plugin } } - @Subscribe - public void onFriendRemoved(FriendRemoved event) + private void onFriendRemoved(FriendRemoved event) { // Delete a friend's note if they are removed final String displayName = Text.toJagexName(event.getName()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java index 4a693a64a3..1f273ec5ba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java @@ -34,7 +34,7 @@ import net.runelite.api.events.FriendRemoved; import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; import net.runelite.client.menus.MenuManager; @@ -84,9 +84,14 @@ public class FriendTaggingPlugin extends Plugin @Inject private ChatboxPanelManager chatboxPanelManager; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { + addSubscriptions(); + menuManager.addManagedCustomMenu(friendsTabMenuOption); menuManager.addManagedCustomMenu(ignoreTabMenuOption); menuManager.addManagedCustomMenu(friendTabResizableOption); @@ -97,14 +102,24 @@ public class FriendTaggingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + menuManager.removeManagedCustomMenu(friendsTabMenuOption); menuManager.removeManagedCustomMenu(ignoreTabMenuOption); menuManager.removeManagedCustomMenu(friendTabResizableOption); menuManager.removeManagedCustomMenu(ignoreTabResizableOption); } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void addSubscriptions() + { + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(FriendRemoved.class, this, this::onFriendRemoved); + eventBus.subscribe(NameableNameChanged.class, this, this::onNameableNameChanged); + eventBus.subscribe(WidgetMenuOptionClicked.class, this, this::onWidgetMenuOptionClicked); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + } + + private void onMenuEntryAdded(MenuEntryAdded event) { final int groupId = WidgetInfo.TO_GROUP(event.getActionParam1()); @@ -127,15 +142,13 @@ public class FriendTaggingPlugin extends Plugin } } - @Subscribe - public void onFriendRemoved(FriendRemoved event) + private void onFriendRemoved(FriendRemoved event) { final String displayName = event.getName().trim().toLowerCase(); deleteTag(displayName); } - @Subscribe - public void onNameableNameChanged(NameableNameChanged event) + private void onNameableNameChanged(NameableNameChanged event) { final Nameable nameable = event.getNameable(); @@ -150,8 +163,7 @@ public class FriendTaggingPlugin extends Plugin } } - @Subscribe - public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) + private void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) { if (event.getWidget().getId() == WidgetInfo.FIXED_VIEWPORT_FRIENDS_TAB.getId() && Text.standardize(event.getMenuTarget()).equals(Text.standardize("clipboard"))) @@ -160,8 +172,7 @@ public class FriendTaggingPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (WidgetInfo.TO_GROUP(event.getActionParam1()) == WidgetInfo.FRIENDS_LIST.getGroupId()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 9de83c7580..a7e1a3505c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -366,7 +366,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks @Override protected void shutDown() { - super.shutDown(); + eventbus.unregister(this); clientThread.invoke(() -> { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java index 4ce28688b9..8314a1493d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java @@ -67,7 +67,7 @@ import net.runelite.client.Notifier; import net.runelite.client.account.AccountSession; import net.runelite.client.account.SessionManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionOpen; import net.runelite.client.game.ItemManager; @@ -150,6 +150,9 @@ public class GrandExchangePlugin extends Plugin @Inject private ConfigManager configManager; + @Inject + private EventBus eventBus; + private Widget grandExchangeText; private Widget grandExchangeItem; private Map itemGELimits; @@ -191,6 +194,7 @@ public class GrandExchangePlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); itemGELimits = loadGELimits(); panel = injector.getInstance(GrandExchangePanel.class); @@ -223,6 +227,8 @@ public class GrandExchangePlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + clientToolbar.removeNavigation(button); mouseManager.unregisterMouseListener(inputListener); keyManager.unregisterKeyListener(inputListener); @@ -232,8 +238,23 @@ public class GrandExchangePlugin extends Plugin grandExchangeClient = null; } - @Subscribe - public void onSessionOpen(SessionOpen sessionOpen) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + eventBus.subscribe(SessionClose.class, this, this::onSessionClose); + eventBus.subscribe(GrandExchangeOfferChanged.class, this, this::onGrandExchangeOfferChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onSessionOpen(SessionOpen sessionOpen) { AccountSession accountSession = sessionManager.getAccountSession(); if (accountSession.getUuid() != null) @@ -254,14 +275,12 @@ public class GrandExchangePlugin extends Plugin this.enableGELimits = config.enableGELimits(); } - @Subscribe - public void onSessionClose(SessionClose sessionClose) + private void onSessionClose(SessionClose sessionClose) { grandExchangeClient = null; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("grandexchange")) { @@ -282,8 +301,7 @@ public class GrandExchangePlugin extends Plugin } } - @Subscribe - public void onGrandExchangeOfferChanged(GrandExchangeOfferChanged offerEvent) + private void onGrandExchangeOfferChanged(GrandExchangeOfferChanged offerEvent) { final int slot = offerEvent.getSlot(); final GrandExchangeOffer offer = offerEvent.getOffer(); @@ -360,8 +378,7 @@ public class GrandExchangePlugin extends Plugin return savedOffer.getState() != grandExchangeOffer.getState(); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (!this.enableNotifications || event.getType() != ChatMessageType.GAMEMESSAGE) { @@ -376,8 +393,7 @@ public class GrandExchangePlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN) { @@ -385,8 +401,7 @@ public class GrandExchangePlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { // At the moment, if the user disables quick lookup, the input listener gets disabled. Thus, isHotKeyPressed() // should always return false when quick lookup is disabled. @@ -419,8 +434,7 @@ public class GrandExchangePlugin extends Plugin } } - @Subscribe - public void onFocusChanged(FocusChanged focusChanged) + private void onFocusChanged(FocusChanged focusChanged) { if (!focusChanged.isFocused()) { @@ -428,8 +442,7 @@ public class GrandExchangePlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { switch (event.getGroupId()) { @@ -447,8 +460,7 @@ public class GrandExchangePlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!event.getEventName().equals("setGETitle") || !config.showTotal()) { @@ -490,8 +502,7 @@ public class GrandExchangePlugin extends Plugin stringStack[stringStackSize - 1] += titleBuilder.toString(); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (grandExchangeText == null || grandExchangeItem == null || grandExchangeItem.isHidden()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java index 1ef158830f..08b063cef5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java @@ -26,11 +26,11 @@ package net.runelite.client.plugins.grotesqueguardians; import javax.inject.Inject; import javax.inject.Singleton; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.eventbus.Subscribe; import java.util.ArrayList; import net.runelite.api.events.GameTick; import net.runelite.api.NPC; @@ -57,6 +57,8 @@ public class GrotesqueGuardiansPlugin extends Plugin private OverlayManager overlayManager; @Inject private GrotesqueGuardiansPrayerOverlay prayerOverlay; + @Inject + private EventBus eventBus; @Nullable private DuskAttack prayAgainst; @Nullable @@ -76,6 +78,8 @@ public class GrotesqueGuardiansPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + overlayManager.add(overlay); overlayManager.add(prayerOverlay); dusk = null; @@ -85,14 +89,15 @@ public class GrotesqueGuardiansPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(prayerOverlay); dusk = null; prayAgainst = null; } - @Subscribe - public void onGameTick(final GameTick event) + private void onGameTick(final GameTick event) { final ArrayList regions = new ArrayList<>(); for (final int intValue : client.getMapRegions()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index ee7b8d5ed3..82f9aa2a83 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -74,7 +74,7 @@ import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.GameTick; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.NpcLootReceived; import net.runelite.client.events.PlayerLootReceived; import net.runelite.client.game.ItemManager; @@ -180,6 +180,9 @@ public class GroundItemsPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PUBLIC) public static final Map collectedGroundItems = new LinkedHashMap<>(); private final Map priceChecks = new LinkedHashMap<>(); @@ -247,6 +250,8 @@ public class GroundItemsPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); + overlayManager.add(overlay); reset(); mouseManager.registerMouseListener(inputListener); @@ -256,6 +261,8 @@ public class GroundItemsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); mouseManager.unregisterMouseListener(inputListener); keyManager.unregisterKeyListener(inputListener); @@ -268,8 +275,22 @@ public class GroundItemsPlugin extends Plugin collectedGroundItems.clear(); } - @Subscribe - public void onGameTick(GameTick event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned); + eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned); + eventBus.subscribe(ItemQuantityChanged.class, this, this::onItemQuantityChanged); + eventBus.subscribe(NpcLootReceived.class, this, this::onNpcLootReceived); + eventBus.subscribe(PlayerLootReceived.class, this, this::onPlayerLootReceived); + eventBus.subscribe(ClientTick.class, this, this::onClientTick); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + + private void onGameTick(GameTick event) { for (GroundItem item : collectedGroundItems.values()) { @@ -281,8 +302,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("grounditems")) { @@ -291,8 +311,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(final GameStateChanged event) + private void onGameStateChanged(final GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -300,8 +319,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onItemSpawned(ItemSpawned itemSpawned) + private void onItemSpawned(ItemSpawned itemSpawned) { Item item = itemSpawned.getItem(); Tile tile = itemSpawned.getTile(); @@ -326,8 +344,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onItemDespawned(ItemDespawned itemDespawned) + private void onItemDespawned(ItemDespawned itemDespawned) { Item item = itemDespawned.getItem(); Tile tile = itemDespawned.getTile(); @@ -349,8 +366,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged) + private void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged) { Item item = itemQuantityChanged.getItem(); Tile tile = itemQuantityChanged.getTile(); @@ -366,8 +382,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onNpcLootReceived(NpcLootReceived npcLootReceived) + private void onNpcLootReceived(NpcLootReceived npcLootReceived) { npcLootReceived.getItems().forEach(item -> { @@ -384,8 +399,7 @@ public class GroundItemsPlugin extends Plugin lootNotifier(items); } - @Subscribe - public void onPlayerLootReceived(PlayerLootReceived playerLootReceived) + private void onPlayerLootReceived(PlayerLootReceived playerLootReceived) { Collection items = playerLootReceived.getItems(); lootReceived(items); @@ -432,8 +446,7 @@ public class GroundItemsPlugin extends Plugin notifier.notify(notification); } - @Subscribe - public void onClientTick(ClientTick event) + private void onClientTick(ClientTick event) { final MenuEntry[] menuEntries = client.getMenuEntries(); final List newEntries = new ArrayList<>(menuEntries.length); @@ -670,8 +683,7 @@ public class GroundItemsPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (this.itemHighlightMode != OVERLAY && event.getOption().equals("Take") @@ -905,8 +917,7 @@ public class GroundItemsPlugin extends Plugin return this.defaultColor; } - @Subscribe - public void onFocusChanged(FocusChanged focusChanged) + private void onFocusChanged(FocusChanged focusChanged) { if (!focusChanged.isFocused()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java index f5ed119b16..fffc957c4a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java @@ -58,7 +58,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -112,6 +112,9 @@ public class GroundMarkerPlugin extends Plugin @Inject private GroundMarkerMinimapOverlay minimapOverlay; + @Inject + private EventBus eventBus; + @Inject private KeyManager keyManager; @@ -272,8 +275,7 @@ public class GroundMarkerPlugin extends Plugin return point; } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() != GameState.LOGGED_IN) { @@ -284,8 +286,7 @@ public class GroundMarkerPlugin extends Plugin loadPoints(); } - @Subscribe - public void onFocusChanged(FocusChanged focusChanged) + private void onFocusChanged(FocusChanged focusChanged) { if (!focusChanged.isFocused()) { @@ -293,8 +294,7 @@ public class GroundMarkerPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (hotKeyPressed && event.getOption().equals(WALK_HERE)) { @@ -328,8 +328,7 @@ public class GroundMarkerPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (!event.getOption().contains(MARK) && !event.getOption().contains(UNMARK)) { @@ -356,6 +355,7 @@ public class GroundMarkerPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(minimapOverlay); @@ -366,12 +366,22 @@ public class GroundMarkerPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); overlayManager.remove(overlay); overlayManager.remove(minimapOverlay); keyManager.unregisterKeyListener(inputListener); points.clear(); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + } + private void markTile(LocalPoint localPoint, int group) { if (localPoint == null) @@ -424,8 +434,7 @@ public class GroundMarkerPlugin extends Plugin return color; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("groundMarker")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/herbiboars/HerbiboarPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/herbiboars/HerbiboarPlugin.java index cc6dc7258d..118e9c1faa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/herbiboars/HerbiboarPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/herbiboars/HerbiboarPlugin.java @@ -57,7 +57,7 @@ import net.runelite.api.events.GroundObjectDespawned; import net.runelite.api.events.GroundObjectSpawned; import net.runelite.api.events.VarbitChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -112,6 +112,9 @@ public class HerbiboarPlugin extends Plugin @Inject private HerbiboarConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean inHerbiboarArea; @@ -172,6 +175,7 @@ public class HerbiboarPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(minimapOverlay); @@ -181,10 +185,25 @@ public class HerbiboarPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(minimapOverlay); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(GroundObjectChanged.class, this, this::onGroundObjectChanged); + eventBus.subscribe(GroundObjectDespawned.class, this, this::onGroundObjectDespawned); + } + private void updateTrailData() { currentTrail = null; @@ -241,8 +260,7 @@ public class HerbiboarPlugin extends Plugin tunnels.clear(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -259,8 +277,7 @@ public class HerbiboarPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (isInHerbiboarArea()) { @@ -268,38 +285,32 @@ public class HerbiboarPlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { onGameObject(event.getTile(), null, event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { onGameObject(event.getTile(), event.getPrevious(), event.getGameObject()); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { onGameObject(event.getTile(), event.getGameObject(), null); } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { onGroundObject( null, event.getGroundObject()); } - @Subscribe - public void onGroundObjectChanged(GroundObjectChanged event) + private void onGroundObjectChanged(GroundObjectChanged event) { onGroundObject(event.getPrevious(), event.getGroundObject()); } - @Subscribe - public void onGroundObjectDespawned(GroundObjectDespawned event) + private void onGroundObjectDespawned(GroundObjectDespawned event) { onGroundObject(event.getGroundObject(), null); } @@ -382,8 +393,7 @@ public class HerbiboarPlugin extends Plugin return END_LOCATIONS; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("herbiboar")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java index 0fb87507c7..75385bfa4b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java @@ -47,7 +47,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -109,6 +109,9 @@ public class HidePrayersPlugin extends Plugin @Inject private HidePrayersConfig config; + @Inject + private EventBus eventBus; + private boolean showindividualprayers; private boolean ShowTHICK_SKIN; private boolean ShowBURST_OF_STRENGTH; @@ -169,17 +172,27 @@ public class HidePrayersPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + hidePrayers(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + restorePrayers(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -188,8 +201,7 @@ public class HidePrayersPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("hideprayers")) { @@ -198,8 +210,7 @@ public class HidePrayersPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() == WidgetID.PRAYER_GROUP_ID || event.getGroupId() == WidgetID.QUICK_PRAYERS_GROUP_ID) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyPlugin.java index 79be6bbac4..38a6ae8ea8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyPlugin.java @@ -46,7 +46,7 @@ import static net.runelite.api.widgets.WidgetID.GUIDE_PRICES_INVENTORY_GROUP_ID; import static net.runelite.api.widgets.WidgetID.INVENTORY_GROUP_ID; import static net.runelite.api.widgets.WidgetID.SHOP_INVENTORY_GROUP_ID; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -76,6 +76,9 @@ public class HighAlchemyPlugin extends Plugin @Inject private HighAlchemyOverlay overlay; + @Inject + private EventBus eventBus; + @Provides HighAlchemyConfig getConfig(ConfigManager configManager) { @@ -95,6 +98,8 @@ public class HighAlchemyPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + buildGroupList(); overlayManager.add(overlay); } @@ -105,8 +110,7 @@ public class HighAlchemyPlugin extends Plugin overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals(CONFIG_GROUP)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java index a90ca7b8ba..cf21d1f2d7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java @@ -47,7 +47,7 @@ import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.PlayerMenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -87,6 +87,9 @@ public class HiscorePlugin extends Plugin @Inject private HiscoreConfig config; + @Inject + private EventBus eventBus; + private NavigationButton navButton; private HiscorePanel hiscorePanel; @@ -102,6 +105,8 @@ public class HiscorePlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + hiscorePanel = injector.getInstance(HiscorePanel.class); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "normal.png"); @@ -128,6 +133,8 @@ public class HiscorePlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + hiscorePanel.removeInputKeyListener(autocompleter); clientToolbar.removeNavigation(navButton); @@ -137,8 +144,15 @@ public class HiscorePlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(PlayerMenuOptionClicked.class, this, this::onPlayerMenuOptionClicked); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("hiscore")) { @@ -166,8 +180,7 @@ public class HiscorePlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!config.menuOption()) { @@ -201,8 +214,7 @@ public class HiscorePlugin extends Plugin } } - @Subscribe - public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) + private void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) { if (event.getMenuOption().equals(LOOKUP)) { @@ -210,8 +222,7 @@ public class HiscorePlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (!config.bountylookup() || !event.getType().equals(ChatMessageType.GAMEMESSAGE)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java index 8601a91289..8d8437ec71 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java @@ -48,7 +48,7 @@ import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameTick; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -77,6 +77,9 @@ public class HunterPlugin extends Plugin @Inject private HunterConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final Map traps = new HashMap<>(); @@ -105,6 +108,7 @@ public class HunterPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlay.updateConfig(); @@ -113,13 +117,21 @@ public class HunterPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); lastActionTime = Instant.ofEpochMilli(0); traps.clear(); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + } + + private void onGameObjectSpawned(GameObjectSpawned event) { final GameObject gameObject = event.getGameObject(); final WorldPoint trapLocation = gameObject.getWorldLocation(); @@ -309,8 +321,7 @@ public class HunterPlugin extends Plugin * checks if the trap is still there. If the trap is gone, it removes * the trap from the local players trap collection. */ - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { // Check if all traps are still there, and remove the ones that are not. Iterator> it = traps.entrySet().iterator(); @@ -387,8 +398,7 @@ public class HunterPlugin extends Plugin lastTickLocalPlayerLocation = client.getLocalPlayer().getWorldLocation(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("hunterplugin")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hydra/BabyHydraPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hydra/BabyHydraPlugin.java index 8c2f0fff42..10deba1016 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hydra/BabyHydraPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hydra/BabyHydraPlugin.java @@ -39,7 +39,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -73,6 +73,9 @@ public class BabyHydraPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + @Provides BabyHydraConfig provideConfig(ConfigManager configManager) { @@ -97,6 +100,7 @@ public class BabyHydraPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); if (this.TextIndicator) { @@ -112,6 +116,8 @@ public class BabyHydraPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(hydraOverlay); overlayManager.remove(hydraPrayOverlay); overlayManager.remove(hydraIndicatorOverlay); @@ -119,8 +125,15 @@ public class BabyHydraPlugin extends Plugin hydraattacks.clear(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("hydra")) { @@ -155,8 +168,7 @@ public class BabyHydraPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { NPC hydra = event.getNpc(); if (hydra.getCombatLevel() != 0 && hydra.getName() != null && hydra.getName().equalsIgnoreCase("Hydra") && !hydras.containsKey(hydra.getIndex())) @@ -165,8 +177,7 @@ public class BabyHydraPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { NPC hydra = event.getNpc(); if (hydra.getCombatLevel() != 0 && hydra.getName() != null && hydra.getName().equalsIgnoreCase("Hydra")) @@ -176,8 +187,7 @@ public class BabyHydraPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { Actor monster = event.getActor(); Actor local = client.getLocalPlayer(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index e2091dd882..32b36b72e0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -67,7 +67,7 @@ import net.runelite.api.events.PlayerSpawned; import net.runelite.api.events.SpotAnimationChanged; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.Sound; import net.runelite.client.game.SoundManager; import net.runelite.client.plugins.Plugin; @@ -109,6 +109,9 @@ public class IdleNotifierPlugin extends Plugin @Inject private IdleNotifierConfig config; + @Inject + private EventBus eventBus; + private Instant lastAnimating; private int lastAnimation = AnimationID.IDLE; private Instant lastInteracting; @@ -164,8 +167,7 @@ public class IdleNotifierPlugin extends Plugin return configManager.getConfig(IdleNotifierConfig.class); } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -309,7 +311,6 @@ public class IdleNotifierPlugin extends Plugin } } - @Subscribe private void onPlayerSpawned(PlayerSpawned event) { final Player p = event.getPlayer(); @@ -324,8 +325,7 @@ public class IdleNotifierPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { ItemContainer itemContainer = event.getItemContainer(); @@ -402,8 +402,7 @@ public class IdleNotifierPlugin extends Plugin itemQuantitiesPrevious = itemQuantities; } - @Subscribe - public void onInteractingChanged(InteractingChanged event) + private void onInteractingChanged(InteractingChanged event) { final Actor source = event.getSource(); if (source != client.getLocalPlayer()) @@ -453,8 +452,7 @@ public class IdleNotifierPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { lastInteracting = null; @@ -486,8 +484,7 @@ public class IdleNotifierPlugin extends Plugin } } - @Subscribe - public void onHitsplatApplied(HitsplatApplied event) + private void onHitsplatApplied(HitsplatApplied event) { if (event.getActor() != client.getLocalPlayer()) { @@ -503,8 +500,7 @@ public class IdleNotifierPlugin extends Plugin } } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged event) + private void onSpotAnimationChanged(SpotAnimationChanged event) { Actor actor = event.getActor(); @@ -519,8 +515,7 @@ public class IdleNotifierPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { skullNotifier(); @@ -903,8 +898,26 @@ public class IdleNotifierPlugin extends Plugin updateConfig(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("idlenotifier")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java index 8458b45735..cfca7c4540 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -77,7 +77,6 @@ public class ImplingsPlugin extends Plugin @Inject private ImplingCounterOverlay implingCounterOverlay; - @Inject private OverlayManager overlayManager; @@ -87,6 +86,9 @@ public class ImplingsPlugin extends Plugin @Inject private ImplingsConfig config; + @Inject + private EventBus eventBus; + private boolean showBaby; private Color getBabyColor; private boolean showYoung; @@ -128,6 +130,7 @@ public class ImplingsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); dynamicSpawns.put(DYNAMIC_SPAWN_NATURE_DRAGON, "T3 Nature-Lucky Dynamic"); dynamicSpawns.put(DYNAMIC_SPAWN_ECLECTIC, "T2 Eclectic Dynamic"); @@ -141,13 +144,23 @@ public class ImplingsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(minimapOverlay); overlayManager.remove(implingCounterOverlay); } - @Subscribe - public void onGameTick(GameTick event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + } + + private void onGameTick(GameTick event) { implingCounterMap.clear(); for (NPC npc : implings) @@ -171,8 +184,7 @@ public class ImplingsPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned npcSpawned) + private void onNpcSpawned(NpcSpawned npcSpawned) { NPC npc = npcSpawned.getNpc(); Impling impling = Impling.findImpling(npc.getId()); @@ -183,8 +195,7 @@ public class ImplingsPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN || event.getGameState() == GameState.HOPPING) { @@ -193,8 +204,7 @@ public class ImplingsPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { if (implings.isEmpty()) { @@ -291,8 +301,7 @@ public class ImplingsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("implings")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inferno/InfernoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inferno/InfernoPlugin.java index 9230985b1b..0fc2fc89ec 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inferno/InfernoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inferno/InfernoPlugin.java @@ -51,7 +51,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -94,6 +94,9 @@ public class InfernoPlugin extends Plugin @Inject private InfernoConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private int currentWave = -1; @@ -143,6 +146,8 @@ public class InfernoPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + waveOverlay.setDisplayMode(this.waveDisplay); if (isInInferno()) @@ -177,6 +182,8 @@ public class InfernoPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(infernoInfobox); overlayManager.remove(infernoOverlay); overlayManager.remove(nibblerOverlay); @@ -188,7 +195,17 @@ public class InfernoPlugin extends Plugin currentWaveNumber = -1; } - @Subscribe + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + private void onConfigChanged(ConfigChanged event) { if (!"inferno".equals(event.getGroup())) @@ -216,8 +233,7 @@ public class InfernoPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { if (client.getMapRegions()[0] != 9043) { @@ -251,8 +267,7 @@ public class InfernoPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (client.getMapRegions()[0] != 9043) { @@ -283,8 +298,7 @@ public class InfernoPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() != GameState.LOGGED_IN) { @@ -316,8 +330,7 @@ public class InfernoPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (!isInInferno() || event.getType() != ChatMessageType.GAMEMESSAGE) { @@ -333,8 +346,7 @@ public class InfernoPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (client.getMapRegions()[0] != 9043) { @@ -403,8 +415,7 @@ public class InfernoPlugin extends Plugin calculatePriorityNPC(); } - @Subscribe - public void onAnimationChanged(final AnimationChanged event) + private void onAnimationChanged(final AnimationChanged event) { if (event.getActor() != jad) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java index d6f4cb3e17..8110db2eb3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java @@ -31,7 +31,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP_OPTION; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseManager; import net.runelite.client.menus.MenuManager; @@ -67,6 +67,9 @@ public class InstanceMapPlugin extends Plugin @Inject private MouseManager mouseManager; + @Inject + private EventBus eventBus; + @Override public void configure(Binder binder) { @@ -86,6 +89,8 @@ public class InstanceMapPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + overlayManager.add(overlay); addCustomOptions(); keyManager.registerKeyListener(inputListener); @@ -96,6 +101,8 @@ public class InstanceMapPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlay.setShowMap(false); overlayManager.remove(overlay); removeCustomOptions(); @@ -104,8 +111,13 @@ public class InstanceMapPlugin extends Plugin mouseManager.unregisterMouseWheelListener(inputListener); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetMenuOptionClicked.class, this, this::onWidgetMenuOptionClicked); + } + + private void onGameStateChanged(GameStateChanged event) { overlay.onGameStateChange(event); } @@ -115,8 +127,7 @@ public class InstanceMapPlugin extends Plugin return event.getMenuOption().equals(widgetMenuOption.getMenuOption()) && event.getMenuTarget().equals(widgetMenuOption.getMenuTarget()); } - @Subscribe - public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) + private void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) { if (event.getWidget() != WORLD_MAP_OPTION) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java index 9758434681..809169da28 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -73,6 +73,9 @@ public class InterfaceStylesPlugin extends Plugin @Inject private SpriteManager spriteManager; + @Inject + private EventBus eventBus; + private Sprite[] defaultCrossSprites; private Skin skin; @@ -90,12 +93,15 @@ public class InterfaceStylesPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); clientThread.invoke(this::updateAllOverrides); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + clientThread.invoke(() -> { restoreWidgetDimensions(); @@ -105,8 +111,16 @@ public class InterfaceStylesPlugin extends Plugin }); } - @Subscribe - public void onConfigChanged(ConfigChanged config) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetPositioned.class, this, this::onWidgetPositioned); + eventBus.subscribe(PostHealthBar.class, this, this::onPostHealthBar); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(BeforeMenuRender.class, this, this::onBeforeMenuRender); + } + + private void onConfigChanged(ConfigChanged config) { if (config.getGroup().equals("interfaceStyles")) { @@ -115,14 +129,12 @@ public class InterfaceStylesPlugin extends Plugin } } - @Subscribe - public void onWidgetPositioned(WidgetPositioned widgetPositioned) + private void onWidgetPositioned(WidgetPositioned widgetPositioned) { adjustWidgetDimensions(); } - @Subscribe - public void onPostHealthBar(PostHealthBar postHealthBar) + private void onPostHealthBar(PostHealthBar postHealthBar) { if (!this.hdHealthBars) { @@ -140,8 +152,7 @@ public class InterfaceStylesPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() != GameState.LOGIN_SCREEN) { @@ -167,8 +178,7 @@ public class InterfaceStylesPlugin extends Plugin overrideCrossSprites(); } - @Subscribe - public void onBeforeMenuRender(BeforeMenuRender event) + private void onBeforeMenuRender(BeforeMenuRender event) { if (this.hdMenu) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridPlugin.java index 0ab7d78067..a537c97d83 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorygrid/InventoryGridPlugin.java @@ -33,7 +33,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -56,6 +56,9 @@ public class InventoryGridPlugin extends Plugin @Inject private InventoryGridConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean showItem; @Getter(AccessLevel.PACKAGE) @@ -73,12 +76,16 @@ public class InventoryGridPlugin extends Plugin public void startUp() { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override public void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); } @@ -88,8 +95,7 @@ public class InventoryGridPlugin extends Plugin return configManager.getConfig(InventoryGridConfig.class); } - @Subscribe - public void onConfigChanged(ConfigChanged config) + private void onConfigChanged(ConfigChanged config) { if (config.getGroup().equals("inventorygrid")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java index f7d8cba390..b5161af6ec 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java @@ -54,7 +54,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.ItemContainerChanged; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.plugins.Plugin; @@ -104,6 +104,9 @@ public class InventorySetupPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + @Inject private ConfigManager configManager; @@ -131,6 +134,7 @@ public class InventorySetupPlugin extends Plugin public void startUp() { updateConfigOptions(); + addSubscriptions(); overlayManager.add(overlay); @@ -257,8 +261,7 @@ public class InventorySetupPlugin extends Plugin return configManager.getConfig(InventorySetupConfig.class); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals(CONFIG_GROUP)) { @@ -313,8 +316,7 @@ public class InventorySetupPlugin extends Plugin } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (!highlightDifference || client.getGameState() != GameState.LOGGED_IN) @@ -347,8 +349,7 @@ public class InventorySetupPlugin extends Plugin } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -422,10 +423,18 @@ public class InventorySetupPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); overlayManager.remove(overlay); clientToolbar.removeNavigation(navButton); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + final int[] getCurrentInventorySetupIds() { InventorySetup setup = inventorySetups.get(panel.getSelectedInventorySetup()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java index 0a87706e6e..e6986c1503 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java @@ -40,7 +40,7 @@ import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; @@ -104,6 +104,9 @@ public class InventoryTagsPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; + private boolean editorMode; private Color group1Color; @@ -142,6 +145,8 @@ public class InventoryTagsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + refreshInventoryMenuOptions(); overlayManager.add(overlay); } @@ -149,13 +154,22 @@ public class InventoryTagsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + removeInventoryMenuOptions(); overlayManager.remove(overlay); editorMode = false; } - @Subscribe - public void onWidgetMenuOptionClicked(final WidgetMenuOptionClicked event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetMenuOptionClicked.class, this, this::onWidgetMenuOptionClicked); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(MenuOpened.class, this, this::onMenuOpened); + } + + private void onWidgetMenuOptionClicked(final WidgetMenuOptionClicked event) { if (event.getWidget() == WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB || event.getWidget() == WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_TAB @@ -166,8 +180,7 @@ public class InventoryTagsPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(final MenuOptionClicked event) + private void onMenuOptionClicked(final MenuOptionClicked event) { if (event.getMenuAction() != MenuAction.RUNELITE) { @@ -186,8 +199,7 @@ public class InventoryTagsPlugin extends Plugin } } - @Subscribe - public void onMenuOpened(final MenuOpened event) + private void onMenuOpened(final MenuOpened event) { final MenuEntry firstEntry = event.getFirstEntry(); @@ -277,8 +289,7 @@ public class InventoryTagsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("inventorytags")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerPlugin.java index 114809287e..23ccdb8a95 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerPlugin.java @@ -31,7 +31,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -56,6 +56,9 @@ public class InventoryViewerPlugin extends Plugin @Inject private InventoryViewerConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private InventoryViewerMode viewerMode; @Getter(AccessLevel.PACKAGE) @@ -73,11 +76,12 @@ public class InventoryViewerPlugin extends Plugin public void startUp() { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals(CONFIG_GROUP_KEY)) { @@ -88,6 +92,8 @@ public class InventoryViewerPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java index 0cf44d6f25..fbdcd0e43a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java @@ -55,7 +55,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -161,6 +161,9 @@ public class ItemChargePlugin extends Plugin @Inject private ItemChargeConfig config; + @Inject + private EventBus eventBus; + // Limits destroy callback to once per tick private int lastCheckTick; @@ -233,6 +236,7 @@ public class ItemChargePlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(recoilOverlay); @@ -242,14 +246,26 @@ public class ItemChargePlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(recoilOverlay); infoBoxManager.removeIf(ItemChargeInfobox.class::isInstance); lastCheckTick = -1; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("itemCharge")) { @@ -296,8 +312,7 @@ public class ItemChargePlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { String message = event.getMessage(); Matcher dodgyCheckMatcher = DODGY_CHECK_PATTERN.matcher(message); @@ -420,8 +435,7 @@ public class ItemChargePlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer() != client.getItemContainer(InventoryID.EQUIPMENT) || !this.showInfoboxes) { @@ -462,8 +476,7 @@ public class ItemChargePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { Widget braceletBreakWidget = client.getWidget(WidgetInfo.DIALOG_SPRITE_TEXT); @@ -564,8 +577,7 @@ public class ItemChargePlugin extends Plugin } } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged event) + private void onSpotAnimationChanged(SpotAnimationChanged event) { if (event.getActor() == client.getLocalPlayer() && client.getLocalPlayer().getSpotAnimation() == GraphicID.XERIC_TELEPORT) { @@ -574,7 +586,6 @@ public class ItemChargePlugin extends Plugin } } - @Subscribe private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!"destroyOnOpKey".equals(event.getEventName())) @@ -589,7 +600,6 @@ public class ItemChargePlugin extends Plugin } } - @Subscribe private void onVarbitChanged(VarbitChanged event) { int explorerRingCharge = client.getVar(Varbits.EXPLORER_RING_ALCHS); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemidentification/ItemIdentificationPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemidentification/ItemIdentificationPlugin.java index 2bc032f0f9..73538e1ad5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemidentification/ItemIdentificationPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemidentification/ItemIdentificationPlugin.java @@ -32,7 +32,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -54,6 +54,9 @@ public class ItemIdentificationPlugin extends Plugin @Inject private ItemIdentificationConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private ItemIdentificationMode identificationType; @Getter(AccessLevel.PACKAGE) @@ -79,17 +82,20 @@ public class ItemIdentificationPlugin extends Plugin protected void startUp() { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("itemidentification")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemprices/ItemPricesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemprices/ItemPricesPlugin.java index 302c9d8728..12e929dfd1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemprices/ItemPricesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemprices/ItemPricesPlugin.java @@ -31,7 +31,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -54,6 +54,9 @@ public class ItemPricesPlugin extends Plugin @Inject private ItemPricesConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean showGEPrice; @Getter(AccessLevel.PACKAGE) @@ -75,17 +78,19 @@ public class ItemPricesPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("itemprices")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemskeptondeath/ItemsKeptOnDeathPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemskeptondeath/ItemsKeptOnDeathPlugin.java index 89115daa29..6006eb658a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemskeptondeath/ItemsKeptOnDeathPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemskeptondeath/ItemsKeptOnDeathPlugin.java @@ -57,7 +57,7 @@ import net.runelite.api.vars.AccountType; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetType; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemMapping; import net.runelite.client.plugins.Plugin; @@ -112,6 +112,9 @@ public class ItemsKeptOnDeathPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + private WidgetButton deepWildyButton; private WidgetButton lowWildyButton; @@ -122,8 +125,19 @@ public class ItemsKeptOnDeathPlugin extends Plugin @VisibleForTesting int wildyLevel; - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (event.getEventName().equals("itemsKeptOnDeath")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java index f94a17df0c..06dbfe1c50 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java @@ -58,7 +58,7 @@ import net.runelite.api.widgets.WidgetTextAlignment; import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -98,6 +98,9 @@ public class ItemStatPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + private Widget itemInformationTitle; @Getter(AccessLevel.PACKAGE) @@ -140,18 +143,28 @@ public class ItemStatPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); clientThread.invokeLater(this::resetGEInventory); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getKey().equals("geStats")) { @@ -160,8 +173,7 @@ public class ItemStatPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (itemInformationTitle != null && this.geStats && (client.getWidget(WidgetInfo.GRAND_EXCHANGE_WINDOW_CONTAINER) == null @@ -171,8 +183,8 @@ public class ItemStatPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + + private void onVarbitChanged(VarbitChanged event) { if (client.getVar(VarPlayer.CURRENT_GE_ITEM) == -1 && this.geStats) { @@ -180,8 +192,7 @@ public class ItemStatPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (event.getEventName().equals("geBuilt") && this.geStats) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java index 55e2122ef1..3de235562c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ModifierlessKeybind; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -80,6 +80,9 @@ public class KeyRemappingPlugin extends Plugin @Inject private KeyRemappingListener inputListener; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) @Setter(AccessLevel.PACKAGE) private boolean typing; @@ -128,6 +131,7 @@ public class KeyRemappingPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); typing = false; keyManager.registerKeyListener(inputListener); @@ -144,6 +148,8 @@ public class KeyRemappingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + clientThread.invoke(() -> { if (client.getGameState() == GameState.LOGGED_IN) @@ -155,6 +161,12 @@ public class KeyRemappingPlugin extends Plugin keyManager.unregisterKeyListener(inputListener); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + @Provides KeyRemappingConfig getConfig(ConfigManager configManager) { @@ -195,8 +207,7 @@ public class KeyRemappingPlugin extends Plugin return w == null || w.isSelfHidden(); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (!configChanged.getGroup().equals("keyremapping")) { @@ -216,8 +227,7 @@ public class KeyRemappingPlugin extends Plugin ); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent) + private void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent) { switch (scriptCallbackEvent.getEventName()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomPlugin.java index e0445d6576..39e99d8a7f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomPlugin.java @@ -37,7 +37,7 @@ import net.runelite.api.VarPlayer; import net.runelite.api.Varbits; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.VarbitChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -64,19 +64,35 @@ public class KingdomPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private int favor = 0, coffer = 0; private KingdomCounter counter; + @Override + protected void startUp() throws Exception + { + addSubscriptions(); + } + @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + removeKingdomInfobox(); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void addSubscriptions() + { + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onVarbitChanged(VarbitChanged event) { if (isInKingdom()) { @@ -86,7 +102,6 @@ public class KingdomPlugin extends Plugin } } - @Subscribe public void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java index 54e60eb415..0d8450e0f2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryPlugin.java @@ -53,7 +53,7 @@ import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -98,6 +98,9 @@ public class KourendLibraryPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + private KourendLibraryPanel panel; private NavigationButton navButton; private boolean buttonAttached = false; @@ -118,6 +121,8 @@ public class KourendLibraryPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + hideButton = config.hideButton(); hideDuplicateBook = config.hideDuplicateBook(); @@ -148,6 +153,8 @@ public class KourendLibraryPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlay.setHidden(true); overlayManager.remove(overlay); clientToolbar.removeNavigation(navButton); @@ -157,8 +164,17 @@ public class KourendLibraryPlugin extends Plugin playerBooks = null; } - @Subscribe - public void onConfigChanged(ConfigChanged ev) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + } + + private void onConfigChanged(ConfigChanged ev) { if (!KourendLibraryConfig.GROUP_KEY.equals(ev.getGroup())) { @@ -190,8 +206,7 @@ public class KourendLibraryPlugin extends Plugin }); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked menuOpt) + private void onMenuOptionClicked(MenuOptionClicked menuOpt) { if (MenuAction.GAME_OBJECT_FIRST_OPTION == menuOpt.getMenuAction() && menuOpt.getTarget().contains("Bookshelf")) { @@ -200,8 +215,7 @@ public class KourendLibraryPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged anim) + private void onAnimationChanged(AnimationChanged anim) { if (anim.getActor() == client.getLocalPlayer() && anim.getActor().getAnimation() == AnimationID.LOOKING_INTO) { @@ -209,8 +223,7 @@ public class KourendLibraryPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (lastBookcaseAnimatedOn != null && event.getType() == ChatMessageType.GAMEMESSAGE) { @@ -223,8 +236,7 @@ public class KourendLibraryPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { boolean inRegion = client.getLocalPlayer().getWorldLocation().getRegionID() == REGION; if (this.hideButton && inRegion != buttonAttached) @@ -295,8 +307,7 @@ public class KourendLibraryPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged itemContainerChangedEvent) + private void onItemContainerChanged(ItemContainerChanged itemContainerChangedEvent) { updatePlayerBooks(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/learntoclick/LearnToClickPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/learntoclick/LearnToClickPlugin.java index 94d1aa6c18..6e92d4165a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/learntoclick/LearnToClickPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/learntoclick/LearnToClickPlugin.java @@ -24,7 +24,7 @@ import net.runelite.api.events.WidgetLoaded; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -50,6 +50,9 @@ public class LearnToClickPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + private boolean shouldBlockCompass; private boolean shouldRightClickMap; private boolean shouldRightClickXp; @@ -66,17 +69,27 @@ public class LearnToClickPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + forceRightClickFlag = false; hideOrbWidgets(false); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(MenuShouldLeftClick.class, this, this::onMenuShouldLeftClick); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("learntoclick")) { @@ -96,8 +109,7 @@ public class LearnToClickPlugin extends Plugin } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (!this.hideOrbs) { @@ -109,8 +121,7 @@ public class LearnToClickPlugin extends Plugin } } - @Subscribe - public void onMenuShouldLeftClick(MenuShouldLeftClick event) + private void onMenuShouldLeftClick(MenuShouldLeftClick event) { if (!forceRightClickFlag) { @@ -131,8 +142,7 @@ public class LearnToClickPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if ((event.getOption().equals("Floating") && this.shouldRightClickMap) || (event.getOption().equals("Hide") && this.shouldRightClickXp) || (event.getOption().equals("Show") && this.shouldRightClickXp) || diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java index 64cc513f22..41f9c61624 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java @@ -40,7 +40,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -75,6 +75,9 @@ public class LizardmenShamanPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private EventBus eventBus; + private boolean showTimer; private boolean notifyOnSpawn; @@ -87,6 +90,8 @@ public class LizardmenShamanPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.showTimer = config.showTimer(); this.notifyOnSpawn = config.notifyOnSpawn(); @@ -96,12 +101,20 @@ public class LizardmenShamanPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); spawns.clear(); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + + private void onChatMessage(ChatMessage event) { if (this.notifyOnSpawn && /* event.getType() == ChatMessageType.GAMEMESSAGE && */event.getMessage().contains(MESSAGE)) // ChatMessageType should probably be SPAM <- should be tested first though @@ -110,8 +123,7 @@ public class LizardmenShamanPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { Actor actor = event.getActor(); if (actor == null || actor.getName() == null) @@ -125,8 +137,7 @@ public class LizardmenShamanPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("shaman")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java index dbf0a6df64..3737a23677 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java @@ -38,9 +38,9 @@ import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionOpen; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -68,6 +68,9 @@ public class LoginScreenPlugin extends Plugin implements KeyListener @Inject private KeyManager keyManager; + @Inject + private EventBus eventBus; + private String usernameCache; private boolean syncUsername; @@ -78,6 +81,8 @@ public class LoginScreenPlugin extends Plugin implements KeyListener protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + applyUsername(); keyManager.registerKeyListener(this); } @@ -85,6 +90,8 @@ public class LoginScreenPlugin extends Plugin implements KeyListener @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + if (this.syncUsername) { client.getPreferences().setRememberedUsername(usernameCache); @@ -93,14 +100,20 @@ public class LoginScreenPlugin extends Plugin implements KeyListener keyManager.unregisterKeyListener(this); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + } + @Provides LoginScreenConfig getConfig(ConfigManager configManager) { return configManager.getConfig(LoginScreenConfig.class); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (!this.syncUsername) { @@ -131,8 +144,7 @@ public class LoginScreenPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onSessionOpen(SessionOpen event) + private void onSessionOpen(SessionOpen event) { // configuation for the account is available now, so update the username applyUsername(); @@ -230,8 +242,7 @@ public class LoginScreenPlugin extends Plugin implements KeyListener } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("loginscreen")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lootassist/LootAssistPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lootassist/LootAssistPlugin.java index b896912eec..4e5215656a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lootassist/LootAssistPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lootassist/LootAssistPlugin.java @@ -9,7 +9,7 @@ import net.runelite.api.Player; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.AnimationChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -26,34 +26,45 @@ import net.runelite.client.ui.overlay.OverlayManager; public class LootAssistPlugin extends Plugin { @Inject - OverlayManager overlayManager; + private OverlayManager overlayManager; @Inject - LootAssistOverlay lootAssistOverlay; + private LootAssistOverlay lootAssistOverlay; + + @Inject + private EventBus eventBus; static final ConcurrentHashMap lootPiles = new ConcurrentHashMap<>(); @Override protected void startUp() throws Exception { + addSubscriptions(); + overlayManager.add(lootAssistOverlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + lootPiles.clear(); overlayManager.remove(lootAssistOverlay); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + + private void onGameStateChanged(GameStateChanged event) { lootPiles.clear(); } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { final Actor actor = event.getActor(); if (actor.getAnimation() == AnimationID.DEATH && actor instanceof Player) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java index a0e3591dbf..b7ec37c10b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java @@ -40,7 +40,7 @@ import net.runelite.api.events.WidgetHiddenChanged; import net.runelite.api.widgets.Widget; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -80,6 +80,9 @@ public class LootingBagViewerPlugin extends Plugin @Inject private LootingBagViewerConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) @Setter(AccessLevel.PACKAGE) private int valueToShow = -1; @@ -93,6 +96,8 @@ public class LootingBagViewerPlugin extends Plugin @Override public void startUp() { + addSubscriptions(); + if (config.renderViewer()) { overlayManager.add(overlay); @@ -107,12 +112,19 @@ public class LootingBagViewerPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(widgetOverlay); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + } + + private void onConfigChanged(ConfigChanged configChanged) { if (configChanged.getKey().equals("renderViewer")) { @@ -142,8 +154,7 @@ public class LootingBagViewerPlugin extends Plugin /** * @param widgetHiddenChanged */ - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged widgetHiddenChanged) + private void onWidgetHiddenChanged(WidgetHiddenChanged widgetHiddenChanged) { Widget widget = widgetHiddenChanged.getWidget(); if (widget.getParentId() == 5308416 && !widget.isHidden()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java index fee4f7049c..3344305fa3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java @@ -91,7 +91,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.NpcLootReceived; import net.runelite.client.events.PlayerLootReceived; import net.runelite.client.events.SessionClose; @@ -167,6 +167,8 @@ public class LootTrackerPlugin extends Plugin private SessionManager sessionManager; @Inject private ScheduledExecutorService executor; + @Inject + private EventBus eventBus; private LootTrackerPanel panel; private NavigationButton navButton; private String eventType; @@ -232,8 +234,7 @@ public class LootTrackerPlugin extends Plugin return configManager.getConfig(LootTrackerConfig.class); } - @Subscribe - public void onSessionOpen(SessionOpen sessionOpen) + private void onSessionOpen(SessionOpen sessionOpen) { AccountSession accountSession = sessionManager.getAccountSession(); if (accountSession.getUuid() != null) @@ -246,14 +247,12 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onSessionClose(SessionClose sessionClose) + private void onSessionClose(SessionClose sessionClose) { lootTrackerClient = null; } - @Subscribe - public void onLocalPlayerDeath(LocalPlayerDeath event) + private void onLocalPlayerDeath(LocalPlayerDeath event) { if (client.getVar(Varbits.IN_WILDERNESS) == 1 || WorldType.isPvpWorld(client.getWorldType())) { @@ -262,8 +261,7 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("loottracker")) { @@ -291,6 +289,8 @@ public class LootTrackerPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + ignoredItems = Text.fromCSV(config.getIgnoredItems()); ignoredNPCs = Text.fromCSV(config.getIgnoredNPCs()); updateConfig(); @@ -377,14 +377,30 @@ public class LootTrackerPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + clientToolbar.removeNavigation(navButton); lootTrackerClient = null; lootRecords = new ArrayList<>(); chestLooted = false; } - @Subscribe - public void onGameStateChanged(final GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + eventBus.subscribe(SessionClose.class, this, this::onSessionClose); + eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcLootReceived.class, this, this::onNpcLootReceived); + eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned); + eventBus.subscribe(PlayerLootReceived.class, this, this::onPlayerLootReceived); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + } + + private void onGameStateChanged(final GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -392,8 +408,7 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onNpcLootReceived(final NpcLootReceived npcLootReceived) + private void onNpcLootReceived(final NpcLootReceived npcLootReceived) { final NPC npc = npcLootReceived.getNpc(); final Collection items = npcLootReceived.getItems(); @@ -435,8 +450,7 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onPlayerSpawned(PlayerSpawned event) + private void onPlayerSpawned(PlayerSpawned event) { if (event.getPlayer().equals(client.getLocalPlayer())) { @@ -444,8 +458,7 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onPlayerLootReceived(final PlayerLootReceived playerLootReceived) + private void onPlayerLootReceived(final PlayerLootReceived playerLootReceived) { if (this.sendLootValueMessages) { @@ -479,8 +492,7 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { final ItemContainer container; switch (event.getGroupId()) @@ -582,8 +594,7 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM) { @@ -643,7 +654,6 @@ public class LootTrackerPlugin extends Plugin } } - @Subscribe public void onItemContainerChanged(ItemContainerChanged event) { if (pvpDeath && RESPAWN_REGIONS.contains(client.getLocalPlayer().getWorldLocation().getRegionID())) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java index 589ac4e202..14047a43b3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java @@ -29,7 +29,7 @@ import javax.inject.Singleton; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -45,9 +45,14 @@ public class LowMemoryPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + if (client.getGameState() == GameState.LOGGED_IN) { client.changeMemoryMode(true); @@ -57,10 +62,11 @@ public class LowMemoryPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + client.changeMemoryMode(false); } - @Subscribe private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java index b711aa37a5..f525c6ff8e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java @@ -35,7 +35,7 @@ import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -56,20 +56,39 @@ public class MaxHitPlugin extends Plugin @Inject private Client client; - @Subscribe - public void onItemContainerChanged(final ItemContainerChanged event) + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + addSubscriptions(); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } + + private void onItemContainerChanged(final ItemContainerChanged event) { this.updateMaxHitWidget(); } - @Subscribe - public void onConfigChanged(final ConfigChanged event) + private void onConfigChanged(final ConfigChanged event) { this.updateMaxHitWidget(); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { this.updateMaxHitWidget(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index a57d514bef..04a70425c1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -70,7 +70,7 @@ import net.runelite.api.events.WidgetMenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; import net.runelite.client.input.KeyManager; @@ -185,6 +185,9 @@ public class MenuEntrySwapperPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean configuringShiftClick = false; @@ -325,6 +328,8 @@ public class MenuEntrySwapperPlugin extends Plugin public void startUp() { updateConfig(); + addSubscriptions(); + addSwaps(); loadConstructionItems(config.getEasyConstructionItems()); client.setHideFriendCastOptions(config.getRemoveFreezePlayerToB()); @@ -341,6 +346,8 @@ public class MenuEntrySwapperPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + client.setHideFriendCastOptions(false); disableCustomization(); loadConstructionItems(""); @@ -348,8 +355,20 @@ public class MenuEntrySwapperPlugin extends Plugin removeSwaps(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetMenuOptionClicked.class, this, this::onWidgetMenuOptionClicked); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(MenuOpened.class, this, this::onMenuOpened); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(PostItemDefinition.class, this, this::onPostItemDefinition); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + + private void onConfigChanged(ConfigChanged event) { if (!"menuentryswapper".equals(event.getGroup())) { @@ -450,8 +469,7 @@ public class MenuEntrySwapperPlugin extends Plugin clientThread.invoke(this::resetItemDefinitionCache); } - @Subscribe - public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) + private void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) { if (event.getWidget() == WidgetInfo.FIXED_VIEWPORT_INVENTORY_TAB || event.getWidget() == WidgetInfo.RESIZABLE_VIEWPORT_INVENTORY_TAB @@ -462,8 +480,7 @@ public class MenuEntrySwapperPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -473,14 +490,12 @@ public class MenuEntrySwapperPlugin extends Plugin loadConstructionItems(this.getEasyConstructionItems); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { buildingMode = client.getVar(BUILDING_MODE) == 1; } - @Subscribe - public void onMenuOpened(MenuOpened event) + private void onMenuOpened(MenuOpened event) { Player localPlayer = client.getLocalPlayer(); @@ -632,8 +647,7 @@ public class MenuEntrySwapperPlugin extends Plugin client.setMenuEntries(ArrayUtils.addAll(entries, resetShiftClickEntry)); } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (event.getMenuAction() != MenuAction.RUNELITE || event.getActionParam1() != WidgetInfo.INVENTORY.getId()) { @@ -689,7 +703,6 @@ public class MenuEntrySwapperPlugin extends Plugin } } - @Subscribe public void onMenuEntryAdded(MenuEntryAdded event) { if (client.getGameState() != GameState.LOGGED_IN) @@ -1388,8 +1401,7 @@ public class MenuEntrySwapperPlugin extends Plugin } } - @Subscribe - public void onPostItemDefinition(PostItemDefinition event) + private void onPostItemDefinition(PostItemDefinition event) { ItemDefinition itemComposition = event.getItemDefinition(); Integer option = getSwapConfig(itemComposition.getId()); @@ -1400,8 +1412,7 @@ public class MenuEntrySwapperPlugin extends Plugin } } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void onFocusChanged(FocusChanged event) { if (!event.isFocused()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java index b0d9e42f3f..bd19159ca6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java @@ -43,7 +43,7 @@ import net.runelite.api.SoundEffectID; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -63,6 +63,9 @@ public class MetronomePlugin extends Plugin @Inject private MetronomePluginConfiguration config; + @Inject + private EventBus eventBus; + private int tickCounter = 0; private int tockCounter = 0; private Clip tickClip; @@ -111,6 +114,7 @@ public class MetronomePlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); tickClip = GetAudioClip(this.tickPath); tockClip = GetAudioClip(this.tockPath); @@ -119,6 +123,8 @@ public class MetronomePlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + if (tickClip != null) { tickClip.close(); @@ -129,8 +135,13 @@ public class MetronomePlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("metronome")) { @@ -166,8 +177,7 @@ public class MetronomePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { if (this.tickCount == 0) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java index 205e67d03e..d71938b5e3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java @@ -38,7 +38,7 @@ import net.runelite.api.events.WidgetHiddenChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -58,6 +58,9 @@ public class MinimapPlugin extends Plugin @Inject private MinimapConfig config; + @Inject + private EventBus eventBus; + private Sprite[] originalDotSprites; private Color itemColor; @@ -78,6 +81,7 @@ public class MinimapPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); updateMinimapWidgetVisibility(this.hideMinimap); storeOriginalDots(); @@ -87,12 +91,20 @@ public class MinimapPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + updateMinimapWidgetVisibility(false); restoreOriginalDots(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN && originalDotSprites == null) { @@ -101,8 +113,7 @@ public class MinimapPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("minimap")) { @@ -120,8 +131,7 @@ public class MinimapPlugin extends Plugin replaceMapDots(); } - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + private void onWidgetHiddenChanged(WidgetHiddenChanged event) { updateMinimapWidgetVisibility(this.hideMinimap); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java index 0c4c220d3d..4460e8a970 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mining/MiningPlugin.java @@ -66,7 +66,7 @@ import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.WallObjectSpawned; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -108,6 +108,9 @@ public class MiningPlugin extends Plugin @Inject private MiningConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final List respawns = new ArrayList<>(); private boolean recentlyLoggedIn; @@ -120,6 +123,8 @@ public class MiningPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + this.showCoalBagOverlay = config.showCoalBagOverlay(); this.amountOfCoalInCoalBag = config.amountOfCoalInCoalBag(); @@ -130,19 +135,30 @@ public class MiningPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(miningOverlay); overlayManager.remove(coalBagOverlay); respawns.clear(); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + @Provides MiningConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(MiningConfig.class); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -159,14 +175,12 @@ public class MiningPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { recentlyLoggedIn = false; } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { if (client.getGameState() != GameState.LOGGED_IN || recentlyLoggedIn) { @@ -183,8 +197,7 @@ public class MiningPlugin extends Plugin } } - @Subscribe - public void onWallObjectSpawned(WallObjectSpawned event) + private void onWallObjectSpawned(WallObjectSpawned event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -225,8 +238,7 @@ public class MiningPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { //TODO: should work hopefully if (event.getMenuAction() != MenuAction.RUNELITE || event.getActionParam1() != WidgetInfo.INVENTORY.getId()) @@ -256,8 +268,7 @@ public class MiningPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE) { @@ -303,8 +314,7 @@ public class MiningPlugin extends Plugin return client.getLocalPlayer().getWorldLocation().getRegionID() == MINING_GUILD_REGION; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("mining")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java index e330124512..e7676dec74 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java @@ -105,7 +105,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @@ -169,6 +169,9 @@ public class MotherlodePlugin extends Plugin @Inject private Notifier notifier; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean inMlm; @@ -230,6 +233,7 @@ public class MotherlodePlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(rocksOverlay); @@ -248,6 +252,8 @@ public class MotherlodePlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(rocksOverlay); overlayManager.remove(motherlodeGemOverlay); @@ -267,8 +273,27 @@ public class MotherlodePlugin extends Plugin }); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned); + eventBus.subscribe(WallObjectChanged.class, this, this::onWallObjectChanged); + eventBus.subscribe(WallObjectDespawned.class, this, this::onWallObjectDespawned); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(OverheadTextChanged.class, this, this::onOverheadTextChanged); + } + + private void onVarbitChanged(VarbitChanged event) { if (inMlm) { @@ -290,8 +315,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (!inMlm || event.getType() != ChatMessageType.SPAM) { @@ -354,8 +378,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked menu) + private void onMenuOptionClicked(MenuOptionClicked menu) { if (!inMlm) { @@ -371,8 +394,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (!inMlm) { @@ -404,8 +426,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onAnimationChanged (AnimationChanged event) + private void onAnimationChanged (AnimationChanged event) { if (!inMlm) { @@ -472,8 +493,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (!inMlm || targetVeinLocation == null) { @@ -509,8 +529,7 @@ public class MotherlodePlugin extends Plugin notifier.notify(client.getLocalPlayer().getName() + " has stopped mining!"); } - @Subscribe - public void onWallObjectSpawned(WallObjectSpawned event) + private void onWallObjectSpawned(WallObjectSpawned event) { if (!inMlm) { @@ -531,8 +550,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onWallObjectChanged(WallObjectChanged event) + private void onWallObjectChanged(WallObjectChanged event) { if (!inMlm) { @@ -549,8 +567,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onWallObjectDespawned(WallObjectDespawned event) + private void onWallObjectDespawned(WallObjectDespawned event) { if (!inMlm) { @@ -561,8 +578,7 @@ public class MotherlodePlugin extends Plugin veins.remove(wallObject); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { if (!inMlm) { @@ -576,8 +592,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { if (!inMlm) { @@ -595,8 +610,7 @@ public class MotherlodePlugin extends Plugin } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { if (!inMlm) { @@ -607,8 +621,7 @@ public class MotherlodePlugin extends Plugin rocks.remove(gameObject); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -625,8 +638,7 @@ public class MotherlodePlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { final ItemContainer container = event.getItemContainer(); @@ -735,8 +747,7 @@ public class MotherlodePlugin extends Plugin return Perspective.getTileHeight(client, localPoint, 0) < UPPER_FLOOR_HEIGHT; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("motherlode")) { @@ -762,7 +773,6 @@ public class MotherlodePlugin extends Plugin this.payDirtMsg = config.payDirtMsg(); } - @Subscribe private void onOverheadTextChanged(OverheadTextChanged event) { if (!payDirtMsg || Strings.isNullOrEmpty(event.getOverheadText()) || !(event.getActor() instanceof NPC)) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java index ded370e957..aedf4adf95 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java @@ -39,7 +39,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -63,6 +63,9 @@ public class MouseHighlightPlugin extends Plugin @Inject private MouseHighlightOverlay overlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean mainTooltip; @Getter(AccessLevel.PACKAGE) @@ -84,6 +87,7 @@ public class MouseHighlightPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); adjustTips(); overlayManager.add(overlay); @@ -92,12 +96,21 @@ public class MouseHighlightPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + resetTips(); overlayManager.remove(overlay); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -105,8 +118,7 @@ public class MouseHighlightPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() == WidgetID.SPELLBOOK_GROUP_ID || event.getGroupId() == WidgetID.COMBAT_GROUP_ID) { @@ -114,8 +126,7 @@ public class MouseHighlightPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { adjustTips(); } @@ -168,8 +179,7 @@ public class MouseHighlightPlugin extends Plugin widget.setHidden(hidden); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("motherlode")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java index 0350579ae3..a5531dbcde 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAPlugin.java @@ -31,7 +31,6 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.mta.alchemy.AlchemyRoom; @@ -61,7 +60,7 @@ public class MTAPlugin extends Plugin private EnchantmentRoom enchantmentRoom; @Inject - private EventBusImplementation eventBus; + private EventBus eventBus; @Inject private MTASceneOverlay sceneOverlay; @Inject @@ -83,11 +82,6 @@ public class MTAPlugin extends Plugin overlayManager.add(inventoryOverlay); this.rooms = new MTARoom[]{alchemyRoom, graveyardRoom, telekineticRoom, enchantmentRoom}; - - for (MTARoom room : rooms) - { - // eventBus.register(room); - } } @Override @@ -98,10 +92,9 @@ public class MTAPlugin extends Plugin for (MTARoom room : rooms) { - // eventBus.unregister(room); + eventBus.unregister(room); } telekineticRoom.resetRoom(); } - } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java index 186497182f..98f129bb61 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/alchemy/AlchemyRoom.java @@ -51,7 +51,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.mta.MTAConfig; import net.runelite.client.plugins.mta.MTAPlugin; @@ -79,6 +79,7 @@ public class AlchemyRoom extends MTARoom private final Client client; private final ItemManager itemManager; private final InfoBoxManager infoBoxManager; + private final EventBus eventBus; private AlchemyItem best; private Cupboard suggestion; @@ -86,19 +87,30 @@ public class AlchemyRoom extends MTARoom private boolean alchemy; @Inject - private AlchemyRoom(final Client client, final MTAConfig config, final MTAPlugin plugin, final ItemManager itemManager, final InfoBoxManager infoBoxManager) + private AlchemyRoom(final Client client, final MTAConfig config, final MTAPlugin plugin, final ItemManager itemManager, final InfoBoxManager infoBoxManager, final EventBus eventBus) { super(config); this.client = client; this.plugin = plugin; this.itemManager = itemManager; this.infoBoxManager = infoBoxManager; + this.eventBus = eventBus; this.alchemy = config.alchemy(); + + addSubscriptions(); } - @Subscribe - public void onGameTick(GameTick event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onGameTick(GameTick event) { if (!inside() || !this.alchemy) { @@ -130,9 +142,7 @@ public class AlchemyRoom extends MTARoom } } - - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { if (!inside()) { @@ -203,8 +213,7 @@ public class AlchemyRoom extends MTARoom } } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGGED_IN) { @@ -215,8 +224,7 @@ public class AlchemyRoom extends MTARoom } } - @Subscribe - public void onChatMessage(ChatMessage wrapper) + private void onChatMessage(ChatMessage wrapper) { if (!inside() || !config.alchemy()) { @@ -259,8 +267,7 @@ public class AlchemyRoom extends MTARoom } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("mta") || !event.getKey().equals("alchemy")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/enchantment/EnchantmentRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/enchantment/EnchantmentRoom.java index 40a46c332d..4e72118d6e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/enchantment/EnchantmentRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/enchantment/EnchantmentRoom.java @@ -40,7 +40,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.ItemDespawned; import net.runelite.api.events.ItemSpawned; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.mta.MTAConfig; import net.runelite.client.plugins.mta.MTARoom; @@ -50,21 +50,33 @@ public class EnchantmentRoom extends MTARoom private static final int MTA_ENCHANT_REGION = 13462; private final Client client; + private final EventBus eventBus; private final List dragonstones = new ArrayList<>(); private boolean enchantment; @Inject - private EnchantmentRoom(final MTAConfig config, final Client client) + private EnchantmentRoom(final MTAConfig config, final Client client, final EventBus eventBus) { super(config); this.client = client; + this.eventBus = eventBus; this.enchantment = config.enchantment(); + + addSubscriptions(); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned); + eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOADING) { @@ -72,8 +84,7 @@ public class EnchantmentRoom extends MTARoom } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (!inside() || !this.enchantment) { @@ -108,8 +119,7 @@ public class EnchantmentRoom extends MTARoom return nearest; } - @Subscribe - public void onItemSpawned(ItemSpawned itemSpawned) + private void onItemSpawned(ItemSpawned itemSpawned) { final Item item = itemSpawned.getItem(); final Tile tile = itemSpawned.getTile(); @@ -122,8 +132,7 @@ public class EnchantmentRoom extends MTARoom } } - @Subscribe - public void onItemDespawned(ItemDespawned itemDespawned) + private void onItemDespawned(ItemDespawned itemDespawned) { final Item item = itemDespawned.getItem(); final Tile tile = itemDespawned.getTile(); @@ -136,8 +145,7 @@ public class EnchantmentRoom extends MTARoom } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("mta") || !event.getKey().equals("enchantment")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/graveyard/GraveyardRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/graveyard/GraveyardRoom.java index 5cfe0f16fa..901509a2b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/graveyard/GraveyardRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/graveyard/GraveyardRoom.java @@ -38,7 +38,7 @@ import net.runelite.api.Player; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.ItemContainerChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.mta.MTAConfig; import net.runelite.client.plugins.mta.MTAPlugin; @@ -55,21 +55,32 @@ public class GraveyardRoom extends MTARoom private final MTAPlugin plugin; private final ItemManager itemManager; private final InfoBoxManager infoBoxManager; + private final EventBus eventBus; private GraveyardCounter counter; private boolean graveyard; @Inject - private GraveyardRoom(final MTAConfig config, final Client client, final MTAPlugin plugin, final ItemManager itemManager, final InfoBoxManager infoBoxManager) + private GraveyardRoom(final MTAConfig config, final Client client, final MTAPlugin plugin, final ItemManager itemManager, final InfoBoxManager infoBoxManager, final EventBus eventBus) { super(config); this.client = client; this.plugin = plugin; this.itemManager = itemManager; this.infoBoxManager = infoBoxManager; + this.eventBus = eventBus; this.graveyard = config.graveyard(); + + addSubscriptions(); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); } @Override @@ -80,8 +91,7 @@ public class GraveyardRoom extends MTARoom && player.getWorldLocation().getPlane() == 1; } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { if ((!inside() || !this.graveyard) && this.counter != null) { @@ -90,8 +100,7 @@ public class GraveyardRoom extends MTARoom } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (!inside()) { @@ -114,8 +123,7 @@ public class GraveyardRoom extends MTARoom } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("mta") || !event.getKey().equals("graveyard")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java index 40a1cb47b6..12e6d11603 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java @@ -52,14 +52,16 @@ import net.runelite.api.coords.Direction; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; +import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.GroundObjectSpawned; +import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.WallObjectSpawned; import net.runelite.api.widgets.WidgetID; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.mta.MTAConfig; import net.runelite.client.plugins.mta.MTARoom; @@ -81,12 +83,26 @@ public class TelekineticRoom extends MTARoom private Rectangle bounds; private NPC guardian; private Maze maze; + private EventBus eventBus; @Inject - private TelekineticRoom(MTAConfig config, Client client) + private TelekineticRoom(MTAConfig config, Client client, EventBus eventBus) { super(config); this.client = client; + this.eventBus = eventBus; + + addSubscriptions(); + } + + private void addSubscriptions() + { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); } public void resetRoom() @@ -95,7 +111,6 @@ public class TelekineticRoom extends MTARoom telekineticWalls.clear(); } - @Subscribe public void onWallObjectSpawned(WallObjectSpawned event) { final WallObject wall = event.getWallObject(); @@ -107,7 +122,6 @@ public class TelekineticRoom extends MTARoom telekineticWalls.add(wall); } - @Subscribe public void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) @@ -118,8 +132,7 @@ public class TelekineticRoom extends MTARoom } } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { final GroundObject object = event.getGroundObject(); if (object.getId() == TELEKINETIC_FINISH) @@ -128,8 +141,7 @@ public class TelekineticRoom extends MTARoom } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (!config.telekinetic() || !inside() @@ -188,8 +200,7 @@ public class TelekineticRoom extends MTARoom } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { NPC npc = event.getNpc(); @@ -199,8 +210,7 @@ public class TelekineticRoom extends MTARoom } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { NPC npc = event.getNpc(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java index 9f6fb91f2b..337b9539b8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java @@ -51,7 +51,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.geometry.Geometry; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -86,6 +86,9 @@ public class MultiIndicatorsPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private GeneralPath[] multicombatPathToDisplay; @@ -130,6 +133,7 @@ public class MultiIndicatorsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(minimapOverlay); @@ -148,12 +152,20 @@ public class MultiIndicatorsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(minimapOverlay); uninitializePaths(); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + private void initializePaths() { multicombatPathToDisplay = new GeneralPath[Constants.MAX_Z]; @@ -366,8 +378,7 @@ public class MultiIndicatorsPlugin extends Plugin return false; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("multiindicators")) { @@ -386,8 +397,7 @@ public class MultiIndicatorsPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java index 1974109215..36e872991a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java @@ -38,6 +38,7 @@ import net.runelite.api.Client; import net.runelite.api.EnumDefinition; import net.runelite.api.EnumID; import net.runelite.api.VarPlayer; +import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.VarbitChanged; @@ -45,7 +46,7 @@ import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -79,6 +80,9 @@ public class MusicIndicatorPlugin extends Plugin @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; + // Mapping of relevant varps to their values, used to compare against new values private final Map musicTrackVarpValues = new HashMap<>(); @@ -87,17 +91,25 @@ public class MusicIndicatorPlugin extends Plugin @Override public void startUp() { + addSubscriptions(); loggingIn = true; } @Override public void shutDown() { + eventBus.unregister(this); musicTrackVarpValues.clear(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -109,8 +121,7 @@ public class MusicIndicatorPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (!loggingIn) { @@ -126,8 +137,7 @@ public class MusicIndicatorPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { int idx = event.getIndex(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/musiclist/MusicListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/musiclist/MusicListPlugin.java index 683666c2bc..715f9ee64a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/musiclist/MusicListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/musiclist/MusicListPlugin.java @@ -48,7 +48,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetPositionMode; import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; import net.runelite.client.plugins.Plugin; @@ -70,6 +70,9 @@ public class MusicListPlugin extends Plugin @Inject private ChatboxPanelManager chatboxPanelManager; + @Inject + private EventBus eventBus; + private ChatboxTextInput searchInput; private Widget musicSearchButton; @@ -82,12 +85,16 @@ public class MusicListPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + clientThread.invoke(this::addMusicButtons); } @Override protected void shutDown() { + eventBus.unregister(this); + Widget header = client.getWidget(WidgetInfo.MUSIC_WINDOW); if (header != null) { @@ -97,8 +104,14 @@ public class MusicListPlugin extends Plugin tracks = null; } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(VarClientIntChanged.class, this, this::onVarClientIntChanged); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN) { @@ -108,8 +121,7 @@ public class MusicListPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded widgetLoaded) + private void onWidgetLoaded(WidgetLoaded widgetLoaded) { if (widgetLoaded.getGroupId() == WidgetID.MUSIC_GROUP_ID) { @@ -160,8 +172,7 @@ public class MusicListPlugin extends Plugin musicFilterButton.revalidate(); } - @Subscribe - public void onVarClientIntChanged(VarClientIntChanged varClientIntChanged) + private void onVarClientIntChanged(VarClientIntChanged varClientIntChanged) { if (isChatboxOpen() && !isOnMusicTab()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java index 63fffe5396..9c32dabc51 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java @@ -41,7 +41,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -72,6 +72,9 @@ public class NightmareZonePlugin extends Plugin @Inject private NightmareZoneOverlay overlay; + @Inject + private EventBus eventBus; + // This starts as true since you need to get // above the threshold before sending notifications private boolean absorptionNotificationSend = true; @@ -97,6 +100,7 @@ public class NightmareZonePlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlay.removeAbsorptionCounter(); @@ -105,6 +109,8 @@ public class NightmareZonePlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlay.removeAbsorptionCounter(); @@ -116,8 +122,14 @@ public class NightmareZonePlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("nightmareZone")) { @@ -134,8 +146,7 @@ public class NightmareZonePlugin extends Plugin return configManager.getConfig(NightmareZoneConfig.class); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (isNotInNightmareZone()) { @@ -153,8 +164,7 @@ public class NightmareZonePlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE || isNotInNightmareZone()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/notes/NotesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/notes/NotesPlugin.java index e765944fbd..4b5777c8fc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/notes/NotesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/notes/NotesPlugin.java @@ -29,7 +29,7 @@ import java.awt.image.BufferedImage; import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.SessionOpen; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -52,6 +52,9 @@ public class NotesPlugin extends Plugin @Inject private NotesConfig config; + @Inject + private EventBus eventBus; + private NotesPanel panel; private NavigationButton navButton; @@ -64,6 +67,8 @@ public class NotesPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); + panel = injector.getInstance(NotesPanel.class); panel.init(config); @@ -82,11 +87,12 @@ public class NotesPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + clientToolbar.removeNavigation(navButton); } - @Subscribe - public void onSessionOpen(SessionOpen event) + private void onSessionOpen(SessionOpen event) { // update notes String data = config.notesData(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcstatus/NpcStatusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcstatus/NpcStatusPlugin.java index 18e9d4b38b..c4129f3007 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npcstatus/NpcStatusPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcstatus/NpcStatusPlugin.java @@ -47,7 +47,7 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.SpotAnimationChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.NPCManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -80,6 +80,9 @@ public class NpcStatusPlugin extends Plugin @Inject private NpcStatusOverlay npcStatusOverlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final Set memorizedNPCs = new HashSet<>(); @@ -101,6 +104,8 @@ public class NpcStatusPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.getRange = config.getRange(); overlayManager.add(npcStatusOverlay); } @@ -108,12 +113,24 @@ public class NpcStatusPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(npcStatusOverlay); memorizedNPCs.clear(); } - @Subscribe - public void onNpcSpawned(NpcSpawned npcSpawned) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onNpcSpawned(NpcSpawned npcSpawned) { final NPC npc = npcSpawned.getNpc(); final String npcName = npc.getName(); @@ -130,15 +147,13 @@ public class NpcStatusPlugin extends Plugin memorizedNPCs.add(new MemorizedNPC(npc, AttackSpeed, npc.getWorldArea())); } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { final NPC npc = npcDespawned.getNpc(); memorizedNPCs.removeIf(c -> c.getNpc() == npc); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN || event.getGameState() == GameState.HOPPING) @@ -147,8 +162,7 @@ public class NpcStatusPlugin extends Plugin } } - @Subscribe - public void onHitsplatApplied(HitsplatApplied event) + private void onHitsplatApplied(HitsplatApplied event) { if (event.getActor().getInteracting() != client.getLocalPlayer()) { @@ -181,8 +195,7 @@ public class NpcStatusPlugin extends Plugin } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged event) + private void onSpotAnimationChanged(SpotAnimationChanged event) { if ((event.getActor().getSpotAnimation() == GraphicID.SPLASH) && event.getActor() instanceof NPC) { @@ -272,15 +285,13 @@ public class NpcStatusPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { checkStatus(); lastPlayerLocation = client.getLocalPlayer().getWorldArea(); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (!configChanged.getGroup().equals("npcstatus")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java index 8e3cccd803..f4f78126c7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaPlugin.java @@ -58,7 +58,7 @@ import net.runelite.api.events.NpcSpawned; import net.runelite.api.geometry.Geometry; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -119,6 +119,9 @@ public class NpcAggroAreaPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final WorldPoint[] safeCenters = new WorldPoint[2]; @@ -160,6 +163,7 @@ public class NpcAggroAreaPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); if (this.showNotWorkingOverlay) @@ -175,6 +179,8 @@ public class NpcAggroAreaPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + removeTimer(); overlayManager.remove(overlay); if (notWorkingOverlayShown) @@ -192,6 +198,14 @@ public class NpcAggroAreaPlugin extends Plugin Arrays.fill(linesToDisplay, null); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + private Area generateSafeArea() { final Area area = new Area(); @@ -337,8 +351,7 @@ public class NpcAggroAreaPlugin extends Plugin checkAreaNpcs(client.getCachedNPCs()); } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { if (this.alwaysActive) { @@ -348,8 +361,7 @@ public class NpcAggroAreaPlugin extends Plugin checkAreaNpcs(event.getNpc()); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { WorldPoint newLocation = client.getLocalPlayer().getWorldLocation(); if (lastPlayerLocation != null && safeCenters[1] == null && newLocation.distanceTo2D(lastPlayerLocation) > SAFE_AREA_RADIUS * 4) @@ -388,8 +400,7 @@ public class NpcAggroAreaPlugin extends Plugin lastPlayerLocation = newLocation; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("npcUnaggroArea")) { @@ -479,8 +490,7 @@ public class NpcAggroAreaPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java index e65b070674..4b1a5a223f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.InteractingChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -73,6 +73,9 @@ public class OpponentInfoPlugin extends Plugin @Inject private PlayerComparisonOverlay playerComparisonOverlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private HiscoreEndpoint hiscoreEndpoint = HiscoreEndpoint.NORMAL; @@ -98,6 +101,7 @@ public class OpponentInfoPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(opponentInfoOverlay); overlayManager.add(playerComparisonOverlay); @@ -106,14 +110,23 @@ public class OpponentInfoPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + lastOpponent = null; lastTime = null; overlayManager.remove(opponentInfoOverlay); overlayManager.remove(playerComparisonOverlay); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() != GameState.LOGGED_IN) { @@ -139,8 +152,7 @@ public class OpponentInfoPlugin extends Plugin } } - @Subscribe - public void onInteractingChanged(InteractingChanged event) + private void onInteractingChanged(InteractingChanged event) { if (event.getSource() != client.getLocalPlayer()) { @@ -158,8 +170,7 @@ public class OpponentInfoPlugin extends Plugin lastOpponent = opponent; } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (lastOpponent != null && lastTime != null @@ -171,8 +182,7 @@ public class OpponentInfoPlugin extends Plugin } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("opponentinfo")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java index ac83ef69e1..738d1179ed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java @@ -61,7 +61,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PartyChanged; import net.runelite.client.input.KeyListener; @@ -126,6 +126,9 @@ public class PartyPlugin extends Plugin implements KeyListener @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; + @Inject @Named("developerMode") boolean developerMode; @@ -158,6 +161,7 @@ public class PartyPlugin extends Plugin implements KeyListener protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(partyStatsOverlay); overlayManager.add(partyPingOverlay); @@ -171,6 +175,8 @@ public class PartyPlugin extends Plugin implements KeyListener @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + partyDataMap.clear(); pendingTilePings.clear(); worldMapManager.removeIf(PartyWorldMapPoint.class::isInstance); @@ -185,14 +191,30 @@ public class PartyPlugin extends Plugin implements KeyListener sendAlert = false; } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(TilePing.class, this, this::onTilePing); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(SkillUpdate.class, this, this::onSkillUpdate); + eventBus.subscribe(LocationUpdate.class, this, this::onLocationUpdate); + eventBus.subscribe(UserJoin.class, this, this::onUserJoin); + eventBus.subscribe(UserSync.class, this, this::onUserSync); + eventBus.subscribe(UserPart.class, this, this::onUserPart); + eventBus.subscribe(PartyChanged.class, this, this::onPartyChanged); + eventBus.subscribe(CommandExecuted.class, this, this::onCommandExecuted); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + @Provides public PartyConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(PartyConfig.class); } - @Subscribe - public void onOverlayMenuClicked(OverlayMenuClicked event) + private void onOverlayMenuClicked(OverlayMenuClicked event) { if (event.getEntry().getMenuAction() == MenuAction.RUNELITE_OVERLAY && event.getEntry().getTarget().equals("Party") && @@ -217,8 +239,7 @@ public class PartyPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (!hotkeyDown || client.isMenuOpen() || party.getMembers().isEmpty() || !this.pings) { @@ -257,8 +278,7 @@ public class PartyPlugin extends Plugin implements KeyListener wsClient.send(tilePing); } - @Subscribe - public void onTilePing(TilePing event) + private void onTilePing(TilePing event) { if (this.pings) { @@ -303,8 +323,7 @@ public class PartyPlugin extends Plugin implements KeyListener wsClient.send(locationUpdate); } - @Subscribe - public void onGameTick(final GameTick event) + private void onGameTick(final GameTick event) { if (sendAlert && client.getGameState() == GameState.LOGGED_IN) { @@ -349,8 +368,7 @@ public class PartyPlugin extends Plugin implements KeyListener lastPray = currentPrayer; } - @Subscribe - public void onSkillUpdate(final SkillUpdate event) + private void onSkillUpdate(final SkillUpdate event) { final PartyData partyData = getPartyData(event.getMemberId()); @@ -371,8 +389,7 @@ public class PartyPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onLocationUpdate(final LocationUpdate event) + private void onLocationUpdate(final LocationUpdate event) { final PartyData partyData = getPartyData(event.getMemberId()); @@ -384,8 +401,7 @@ public class PartyPlugin extends Plugin implements KeyListener partyData.getWorldMapPoint().setWorldPoint(event.getWorldPoint()); } - @Subscribe - public void onUserJoin(final UserJoin event) + private void onUserJoin(final UserJoin event) { final PartyData partyData = getPartyData(event.getMemberId()); @@ -413,8 +429,7 @@ public class PartyPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onUserSync(final UserSync event) + private void onUserSync(final UserSync event) { final int currentHealth = client.getBoostedSkillLevel(Skill.HITPOINTS); final int currentPrayer = client.getBoostedSkillLevel(Skill.PRAYER); @@ -434,8 +449,7 @@ public class PartyPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onUserPart(final UserPart event) + private void onUserPart(final UserPart event) { final PartyData removed = partyDataMap.remove(event.getMemberId()); @@ -459,8 +473,7 @@ public class PartyPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onPartyChanged(final PartyChanged event) + private void onPartyChanged(final PartyChanged event) { // Reset party partyDataMap.clear(); @@ -468,8 +481,7 @@ public class PartyPlugin extends Plugin implements KeyListener worldMapManager.removeIf(PartyWorldMapPoint.class::isInstance); } - @Subscribe - public void onCommandExecuted(CommandExecuted commandExecuted) + private void onCommandExecuted(CommandExecuted commandExecuted) { if (!developerMode || !commandExecuted.getCommand().equals("partyinfo")) { @@ -515,8 +527,7 @@ public class PartyPlugin extends Plugin implements KeyListener }); } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void onFocusChanged(FocusChanged event) { if (!event.isFocused()) { @@ -561,8 +572,7 @@ public class PartyPlugin extends Plugin implements KeyListener .build()); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("party")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java index 41fdfedfc6..b6bc491ce4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java @@ -52,7 +52,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PartyChanged; import net.runelite.client.game.NPCManager; @@ -109,6 +109,9 @@ public class PerformanceStatsPlugin extends Plugin @Inject private WSClient wsClient; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean enabled = false; @Getter(AccessLevel.PACKAGE) @@ -138,6 +141,8 @@ public class PerformanceStatsPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + this.submitTimeout = config.submitTimeout(); overlayManager.add(performanceTrackerOverlay); @@ -147,14 +152,30 @@ public class PerformanceStatsPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(performanceTrackerOverlay); wsClient.unregisterMessage(Performance.class); disable(); reset(); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked); + eventBus.subscribe(Performance.class, this, this::onPerformance); + eventBus.subscribe(UserSync.class, this, this::onUserSync); + eventBus.subscribe(UserPart.class, this, this::onUserPart); + eventBus.subscribe(PartyChanged.class, this, this::onPartyChanged); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -167,8 +188,7 @@ public class PerformanceStatsPlugin extends Plugin } } - @Subscribe - public void onHitsplatApplied(HitsplatApplied e) + private void onHitsplatApplied(HitsplatApplied e) { if (isPaused()) { @@ -187,8 +207,7 @@ public class PerformanceStatsPlugin extends Plugin } } - @Subscribe - public void onExperienceChanged(ExperienceChanged c) + private void onExperienceChanged(ExperienceChanged c) { if (isPaused() || hopping) { @@ -223,8 +242,7 @@ public class PerformanceStatsPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent e) + private void onScriptCallbackEvent(ScriptCallbackEvent e) { // Handles Fake XP drops (Ironman in PvP, DMM Cap, 200m xp, etc) if (isPaused()) @@ -255,8 +273,7 @@ public class PerformanceStatsPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick t) + private void onGameTick(GameTick t) { oldTarget = client.getLocalPlayer().getInteracting(); @@ -295,8 +312,7 @@ public class PerformanceStatsPlugin extends Plugin sendPerformance(); } - @Subscribe - public void onOverlayMenuClicked(OverlayMenuClicked c) + private void onOverlayMenuClicked(OverlayMenuClicked c) { if (!c.getOverlay().equals(performanceTrackerOverlay)) { @@ -429,14 +445,12 @@ public class PerformanceStatsPlugin extends Plugin } } - @Subscribe - public void onPerformance(final Performance performance) + private void onPerformance(final Performance performance) { partyDataMap.put(performance.getMemberId(), performance); } - @Subscribe - public void onUserSync(final UserSync event) + private void onUserSync(final UserSync event) { if (isEnabled()) { @@ -444,21 +458,18 @@ public class PerformanceStatsPlugin extends Plugin } } - @Subscribe - public void onUserPart(final UserPart event) + private void onUserPart(final UserPart event) { partyDataMap.remove(event.getMemberId()); } - @Subscribe - public void onPartyChanged(final PartyChanged event) + private void onPartyChanged(final PartyChanged event) { // Reset party partyDataMap.clear(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("performancestats")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java index 3329f6f520..c178ffb901 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java @@ -58,7 +58,7 @@ import net.runelite.api.events.WidgetLoaded; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -132,6 +132,9 @@ public class PestControlPlugin extends Plugin @Inject private PortalWeaknessOverlay portalWeaknessOverlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Game game; @@ -185,17 +188,33 @@ public class PestControlPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); loadPlugin(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); unloadPlugin(); } - @Subscribe - public void onConfigChanged(ConfigChanged configEvent) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(GroundObjectChanged.class, this, this::onGroundObjectChanged); + eventBus.subscribe(GroundObjectDespawned.class, this, this::onGroundObjectDespawned); + } + + private void onConfigChanged(ConfigChanged configEvent) { if (configEvent.getGroup().equals("pestcontrol")) { @@ -341,7 +360,6 @@ public class PestControlPlugin extends Plugin } } - @Subscribe public void onGameStateChanged(GameStateChanged event) { // LOGGED_IN also triggers when teleporting to the island @@ -486,8 +504,7 @@ public class PestControlPlugin extends Plugin handlePointsInfoboxCounter(); } - @Subscribe - public void onGameTick(GameTick gameTickEvent) + private void onGameTick(GameTick gameTickEvent) { // Check for widgets on main island if (game == null && isOnPestControlMainIsland()) @@ -551,8 +568,7 @@ public class PestControlPlugin extends Plugin game.onGameTick(gameTickEvent); } - @Subscribe - public void onChatMessage(ChatMessage chatMessage) + private void onChatMessage(ChatMessage chatMessage) { if (game != null && chatMessage.getType() == ChatMessageType.GAMEMESSAGE) { @@ -564,8 +580,7 @@ public class PestControlPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (game != null) { @@ -640,40 +655,34 @@ public class PestControlPlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { handleTileObject(event.getTile(), event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { unlistTileObject(event.getPrevious()); handleTileObject(event.getTile(), event.getGameObject()); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { unlistTileObject(event.getGameObject()); } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { handleTileObject(event.getTile(), event.getGroundObject()); } - @Subscribe - public void onGroundObjectChanged(GroundObjectChanged event) + private void onGroundObjectChanged(GroundObjectChanged event) { unlistTileObject(event.getPrevious()); handleTileObject(event.getTile(), event.getGroundObject()); } - @Subscribe - public void onGroundObjectDespawned(GroundObjectDespawned event) + private void onGroundObjectDespawned(GroundObjectDespawned event) { unlistTileObject(event.getGroundObject()); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java index 50e04c26ee..cd90a63b47 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pileindicators/PileIndicatorsPlugin.java @@ -40,7 +40,7 @@ import net.runelite.api.Player; import net.runelite.api.Varbits; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -71,6 +71,9 @@ public class PileIndicatorsPlugin extends Plugin @Inject private PileIndicatorsOverlay overlay; + @Inject + private EventBus eventBus; + private boolean enablePlayers; private boolean wildyOnlyPlayer; private Color playerPileColor; @@ -95,12 +98,16 @@ public class PileIndicatorsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.remove(overlay); } @@ -196,8 +203,7 @@ public class PileIndicatorsPlugin extends Plugin return pileType; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("pileindicators")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java index a883d18e77..82c5e42bfa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java @@ -57,7 +57,7 @@ import net.runelite.api.events.ClanMemberLeft; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ClanManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -94,6 +94,9 @@ public class PlayerIndicatorsPlugin extends Plugin @Inject private ClanManager clanManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean highlightOwnPlayer; @Getter(AccessLevel.PACKAGE) @@ -162,6 +165,7 @@ public class PlayerIndicatorsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(playerIndicatorsOverlay); overlayManager.add(playerIndicatorsTileOverlay); @@ -172,15 +176,24 @@ public class PlayerIndicatorsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(playerIndicatorsOverlay); overlayManager.remove(playerIndicatorsTileOverlay); overlayManager.remove(playerIndicatorsMinimapOverlay); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ClanMemberJoined.class, this, this::onClanMemberJoined); + eventBus.subscribe(ClanMemberLeft.class, this, this::onClanMemberLeft); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + } + private List callers = new ArrayList<>(); - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("playerindicators")) { @@ -195,14 +208,12 @@ public class PlayerIndicatorsPlugin extends Plugin } } - @Subscribe - public void onClanMemberJoined(ClanMemberJoined event) + private void onClanMemberJoined(ClanMemberJoined event) { getCallerList(); } - @Subscribe - public void onClanMemberLeft(ClanMemberLeft event) + private void onClanMemberLeft(ClanMemberLeft event) { getCallerList(); } @@ -250,9 +261,7 @@ public class PlayerIndicatorsPlugin extends Plugin return false; } - - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) + private void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) { int type = menuEntryAdded.getType(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java index c2f09c8371..2be385662d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java @@ -33,7 +33,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.PluginChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -56,6 +56,9 @@ public class PluginSorterPlugin extends Plugin @Inject private PluginSorterConfig config; + @Inject + private EventBus eventBus; + private boolean hidePlugins; private Color externalColor; private Color pvmColor; @@ -73,17 +76,24 @@ public class PluginSorterPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + updateColors(); } @Override protected void shutDown() throws Exception { - + eventBus.unregister(this); } - @Subscribe - public void onPluginChanged(PluginChanged pluginChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(PluginChanged.class, this, this::onPluginChanged); + } + + private void onPluginChanged(PluginChanged pluginChanged) { validatePlugins(); } @@ -102,8 +112,7 @@ public class PluginSorterPlugin extends Plugin updateColors(); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (!configChanged.getGroup().equals("pluginsorter")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java index c71bfad61e..4592608dc9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java @@ -57,7 +57,7 @@ import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameStateChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.HiscoreManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -105,6 +105,9 @@ public class PohPlugin extends Plugin @Inject private BurnerOverlay burnerOverlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean showPortals; @Getter(AccessLevel.PACKAGE) @@ -142,6 +145,7 @@ public class PohPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(burnerOverlay); @@ -151,14 +155,26 @@ public class PohPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(burnerOverlay); pohObjects.clear(); incenseBurners.clear(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(DecorativeObjectSpawned.class, this, this::onDecorativeObjectSpawned); + eventBus.subscribe(DecorativeObjectDespawned.class, this, this::onDecorativeObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("poh")) { @@ -170,8 +186,7 @@ public class PohPlugin extends Plugin overlay.updateConfig(); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { final GameObject gameObject = event.getGameObject(); @@ -190,15 +205,13 @@ public class PohPlugin extends Plugin incenseBurners.put(event.getTile(), new IncenseBurner(gameObject.getId(), countdownTimer, randomTimer, null)); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { GameObject gameObject = event.getGameObject(); pohObjects.remove(gameObject); } - @Subscribe - public void onDecorativeObjectSpawned(DecorativeObjectSpawned event) + private void onDecorativeObjectSpawned(DecorativeObjectSpawned event) { DecorativeObject decorativeObject = event.getDecorativeObject(); if (PohIcons.getIcon(decorativeObject.getId()) != null) @@ -207,15 +220,13 @@ public class PohPlugin extends Plugin } } - @Subscribe - public void onDecorativeObjectDespawned(DecorativeObjectDespawned event) + private void onDecorativeObjectDespawned(DecorativeObjectDespawned event) { DecorativeObject decorativeObject = event.getDecorativeObject(); pohObjects.remove(decorativeObject); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -224,8 +235,7 @@ public class PohPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { final Actor actor = event.getActor(); final String actorName = actor.getName(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java index ef0a03b5e8..a492797b2d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poison/PoisonPlugin.java @@ -55,7 +55,7 @@ import net.runelite.api.events.PlayerDespawned; import net.runelite.api.events.VarbitChanged; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -114,6 +114,9 @@ public class PoisonPlugin extends Plugin @Inject private PoisonActorOverlay actorOverlay; + @Inject + private EventBus eventBus; + @Getter private int lastDamage; @@ -144,6 +147,7 @@ public class PoisonPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); actorOverlay.setFontSize(this.fontSize); overlayManager.add(poisonOverlay); @@ -162,6 +166,8 @@ public class PoisonPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(poisonOverlay); if (infobox != null) @@ -180,8 +186,17 @@ public class PoisonPlugin extends Plugin clientThread.invoke(this::resetHealthIcon); } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + } + + private void onVarbitChanged(VarbitChanged event) { final int poisonValue = client.getVar(VarPlayer.POISON); if (poisonValue != lastValue) @@ -229,7 +244,6 @@ public class PoisonPlugin extends Plugin } } - @Subscribe private void onHitsplatApplied(HitsplatApplied event) { Hitsplat.HitsplatType type = event.getHitsplat().getHitsplatType(); @@ -294,7 +308,6 @@ public class PoisonPlugin extends Plugin info.setLastDamageTick(tickCount); } - @Subscribe private void onGameTick(GameTick event) { int tickCount = client.getTickCount(); @@ -303,20 +316,17 @@ public class PoisonPlugin extends Plugin poisonedActors.values().removeIf(info -> info.getLastDamageTick() + POISON_TICK_TICKS + 5 < tickCount); } - @Subscribe private void onNpcDespawned(NpcDespawned event) { poisonedActors.remove(event.getNpc()); } - @Subscribe private void onPlayerDespawned(PlayerDespawned event) { poisonedActors.remove(event.getPlayer()); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals(PoisonConfig.GROUP)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java index 6e40c5ebe9..4e3ce27162 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java @@ -49,7 +49,7 @@ import net.runelite.api.events.InteractingChanged; import net.runelite.api.events.PlayerDespawned; import net.runelite.api.events.PlayerSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -103,6 +103,9 @@ public class PrayAgainstPlayerPlugin extends Plugin @Inject private PrayAgainstPlayerConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Color attackerPlayerColor; @Getter(AccessLevel.PACKAGE) @@ -140,8 +143,7 @@ public class PrayAgainstPlayerPlugin extends Plugin return configManager.getConfig(PrayAgainstPlayerConfig.class); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGGED_IN) { @@ -153,6 +155,7 @@ public class PrayAgainstPlayerPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); potentialPlayersAttackingMe = new ArrayList<>(); playersAttackingMe = new ArrayList<>(); @@ -163,12 +166,23 @@ public class PrayAgainstPlayerPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(overlayPrayerTab); } - @Subscribe - protected void onAnimationChanged(AnimationChanged animationChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned); + } + + private void onAnimationChanged(AnimationChanged animationChanged) { if ((animationChanged.getActor() instanceof Player) && (animationChanged.getActor().getInteracting() instanceof Player) && (animationChanged.getActor().getInteracting() == client.getLocalPlayer())) { @@ -206,8 +220,7 @@ public class PrayAgainstPlayerPlugin extends Plugin } } - @Subscribe - protected void onInteractingChanged(InteractingChanged interactingChanged) + private void onInteractingChanged(InteractingChanged interactingChanged) { // if someone interacts with you, add them to the potential attackers list if ((interactingChanged.getSource() instanceof Player) && (interactingChanged.getTarget() instanceof Player)) @@ -233,8 +246,7 @@ public class PrayAgainstPlayerPlugin extends Plugin } } - @Subscribe - protected void onPlayerDespawned(PlayerDespawned playerDespawned) + private void onPlayerDespawned(PlayerDespawned playerDespawned) { PlayerContainer container = findPlayerInAttackerList(playerDespawned.getPlayer()); PlayerContainer container2 = findPlayerInPotentialList(playerDespawned.getPlayer()); @@ -248,8 +260,7 @@ public class PrayAgainstPlayerPlugin extends Plugin } } - @Subscribe - protected void onPlayerSpawned(PlayerSpawned playerSpawned) + private void onPlayerSpawned(PlayerSpawned playerSpawned) { if (this.markNewPlayer) { @@ -414,8 +425,7 @@ public class PrayAgainstPlayerPlugin extends Plugin return null; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("prayagainstplayer")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerPlugin.java index 1dae89f203..e51e988f52 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayer/PrayerPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.ItemContainerChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -88,6 +88,9 @@ public class PrayerPlugin extends Plugin @Inject private PrayerConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private PrayerFlickLocation prayerFlickLocation; @Getter(AccessLevel.PACKAGE) @@ -115,6 +118,8 @@ public class PrayerPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); + overlayManager.add(flickOverlay); overlayManager.add(doseOverlay); overlayManager.add(barOverlay); @@ -123,13 +128,21 @@ public class PrayerPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(flickOverlay); overlayManager.remove(doseOverlay); overlayManager.remove(barOverlay); removeIndicators(); } - @Subscribe + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("prayer")) @@ -146,8 +159,7 @@ public class PrayerPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(final ItemContainerChanged event) + private void onItemContainerChanged(final ItemContainerChanged event) { final ItemContainer container = event.getItemContainer(); final ItemContainer inventory = client.getItemContainer(InventoryID.INVENTORY); @@ -172,8 +184,7 @@ public class PrayerPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { prayersActive = isAnyPrayerActive(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertPlugin.java index edba3b0550..1293327e03 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayeralert/PrayerAlertPlugin.java @@ -23,7 +23,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -48,6 +48,9 @@ public class PrayerAlertPlugin extends Plugin @Inject private PrayerAlertConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean alwaysShowAlert; @Getter(AccessLevel.PACKAGE) @@ -65,16 +68,19 @@ public class PrayerAlertPlugin extends Plugin this.alwaysShowAlert = config.alwaysShowAlert(); this.oldRenderMode = config.oldRenderMode(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } - @Subscribe private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("prayeralert")) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPlugin.java index b79187fa6a..ea5e87587a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPlugin.java @@ -30,7 +30,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -51,6 +51,9 @@ public class ProfilesPlugin extends Plugin @Inject private ClientToolbar clientToolbar; + @Inject + private EventBus eventBus; + private ProfilesPanel panel; private NavigationButton navButton; @@ -64,6 +67,8 @@ public class ProfilesPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + panel = injector.getInstance(ProfilesPanel.class); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "profiles_icon.png"); @@ -81,10 +86,11 @@ public class ProfilesPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + clientToolbar.removeNavigation(navButton); } - @Subscribe private void onConfigChanged(ConfigChanged event) throws Exception { if (event.getGroup().equals("profiles") && event.getKey().equals("rememberPassword")) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java index 331a7a6205..d9c574f744 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java @@ -51,7 +51,7 @@ import static net.runelite.api.widgets.WidgetInfo.LIGHT_BOX_BUTTON_G; import static net.runelite.api.widgets.WidgetInfo.LIGHT_BOX_BUTTON_H; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.puzzlesolver.lightbox.Combination; @@ -86,6 +86,9 @@ public class PuzzleSolverPlugin extends Plugin @Inject private PuzzleSolverConfig config; + @Inject + private EventBus eventBus; + private LightboxState lightbox; private final LightboxState[] changes = new LightboxState[LightBox.COMBINATIONS_POWER]; private Combination lastClick; @@ -102,23 +105,34 @@ public class PuzzleSolverPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + @Provides PuzzleSolverConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(PuzzleSolverConfig.class); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded widget) + private void onWidgetLoaded(WidgetLoaded widget) { if (widget.getGroupId() != WidgetID.VARROCK_MUSEUM_QUIZ_GROUP_ID) { @@ -151,8 +165,7 @@ public class PuzzleSolverPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked menuOptionClicked) + private void onMenuOptionClicked(MenuOptionClicked menuOptionClicked) { int widgetId = menuOptionClicked.getActionParam1(); if (TO_GROUP(widgetId) != WidgetID.LIGHT_BOX_GROUP_ID) @@ -208,7 +221,6 @@ public class PuzzleSolverPlugin extends Plugin } } - @Subscribe public void onGameTick(GameTick event) { Widget lightboxWidget = client.getWidget(WidgetInfo.LIGHT_BOX_CONTENTS); @@ -297,7 +309,6 @@ public class PuzzleSolverPlugin extends Plugin } } - @Subscribe private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("puzzlesolver")) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java index b0b7d100f4..ad78cccd61 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java @@ -43,7 +43,7 @@ import net.runelite.api.events.PlayerDespawned; import net.runelite.api.events.PlayerSpawned; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.AsyncBufferedImage; import net.runelite.client.game.ItemManager; import net.runelite.client.input.KeyManager; @@ -97,6 +97,9 @@ public class PvpToolsPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + private final PvpToolsPlugin uhPvpToolsPlugin = this; /** @@ -235,6 +238,7 @@ public class PvpToolsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(pvpToolsOverlay); overlayManager.add(playerCountOverlay); @@ -274,6 +278,8 @@ public class PvpToolsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(pvpToolsOverlay); overlayManager.remove(playerCountOverlay); keyManager.unregisterKeyListener(fallinHotkeyListener); @@ -283,8 +289,16 @@ public class PvpToolsPlugin extends Plugin client.setHideFriendCastOptions(false); } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned); + eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); + } + + private void onConfigChanged(ConfigChanged configChanged) { if (!"pvptools".equals(configChanged.getGroup())) { @@ -347,8 +361,7 @@ public class PvpToolsPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer().equals(client.getItemContainer(InventoryID.INVENTORY)) && this.riskCalculatorEnabled) @@ -357,8 +370,7 @@ public class PvpToolsPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState().equals(GameState.LOGGED_IN) && this.riskCalculatorEnabled) { @@ -370,8 +382,7 @@ public class PvpToolsPlugin extends Plugin } } - @Subscribe - public void onPlayerSpawned(PlayerSpawned event) + private void onPlayerSpawned(PlayerSpawned event) { if (this.countPlayers && PvPUtil.isAttackable(client, event.getPlayer())) { @@ -383,8 +394,7 @@ public class PvpToolsPlugin extends Plugin } } - @Subscribe - public void onPlayerDespawned(PlayerDespawned event) + private void onPlayerDespawned(PlayerDespawned event) { if (this.countPlayers && PvPUtil.isAttackable(client, event.getPlayer())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderPlugin.java index f12911344c..0b9e4a09d0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderPlugin.java @@ -56,7 +56,7 @@ import net.runelite.api.events.WallObjectChanged; import net.runelite.api.events.WallObjectDespawned; import net.runelite.api.events.WallObjectSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -120,6 +120,9 @@ public class PyramidPlunderPlugin extends Plugin @Inject private PyramidPlunderOverlay pyramidPlunderOverlay; + @Inject + private EventBus eventBus; + @Getter private boolean isInGame; @@ -147,18 +150,33 @@ public class PyramidPlunderPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(pyramidPlunderOverlay); highlighted.clear(); reset(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned); + eventBus.subscribe(WallObjectChanged.class, this, this::onWallObjectChanged); + eventBus.subscribe(WallObjectDespawned.class, this, this::onWallObjectDespawned); + } + + private void onConfigChanged(ConfigChanged event) { if (!"pyramidplunder".equals(event.getGroup())) { @@ -207,8 +225,7 @@ public class PyramidPlunderPlugin extends Plugin ); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -241,8 +258,7 @@ public class PyramidPlunderPlugin extends Plugin } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { int lastValue = pyramidTimer; pyramidTimer = client.getVar(Varbits.PYRAMID_PLUNDER_TIMER); @@ -276,38 +292,32 @@ public class PyramidPlunderPlugin extends Plugin removeTimer(); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { onTileObject(event.getTile(), null, event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGameObject()); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { onTileObject(event.getTile(), event.getGameObject(), null); } - @Subscribe - public void onWallObjectSpawned(WallObjectSpawned event) + private void onWallObjectSpawned(WallObjectSpawned event) { onTileObject(event.getTile(), null, event.getWallObject()); } - @Subscribe - public void onWallObjectChanged(WallObjectChanged event) + private void onWallObjectChanged(WallObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getWallObject()); } - @Subscribe - public void onWallObjectDespawned(WallObjectDespawned event) + private void onWallObjectDespawned(WallObjectDespawned event) { onTileObject(event.getTile(), event.getWallObject(), null); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java index 2f0fb9b415..775d28179b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java @@ -53,7 +53,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetPositionMode; import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; import net.runelite.client.plugins.Plugin; @@ -87,6 +87,9 @@ public class QuestListPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + private ChatboxTextInput searchInput; private Widget questSearchButton; private Widget questHideButton; @@ -98,12 +101,15 @@ public class QuestListPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); clientThread.invoke(this::addQuestButtons); } @Override protected void shutDown() { + eventBus.unregister(this); + Widget header = client.getWidget(WidgetInfo.QUESTLIST_BOX); if (header != null) { @@ -111,8 +117,15 @@ public class QuestListPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged e) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(VarClientIntChanged.class, this, this::onVarClientIntChanged); + } + + private void onGameStateChanged(GameStateChanged e) { if (e.getGameState() == GameState.LOGGING_IN) { @@ -120,8 +133,7 @@ public class QuestListPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!event.getEventName().equals("questProgressUpdated")) { @@ -170,8 +182,7 @@ public class QuestListPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged varbitChanged) + private void onVarbitChanged(VarbitChanged varbitChanged) { if (isChatboxOpen() && isNotOnQuestTab()) { @@ -179,8 +190,7 @@ public class QuestListPlugin extends Plugin } } - @Subscribe - public void onVarClientIntChanged(VarClientIntChanged varClientIntChanged) + private void onVarClientIntChanged(VarClientIntChanged varClientIntChanged) { if (varClientIntChanged.getIndex() == VarClientInt.INVENTORY_TAB.getIndex() && isChatboxOpen() && isNotOnQuestTab()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index 4866d91b1a..5b8081236d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -75,7 +75,7 @@ import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; @@ -195,6 +195,9 @@ public class RaidsPlugin extends Plugin @Getter(AccessLevel.NONE) @Inject private ItemManager itemManager; + @Getter(AccessLevel.NONE) + @Inject + private EventBus eventBus; private boolean raidStarted; private boolean inRaidChambers; private boolean enhanceScouterTitle; @@ -266,6 +269,7 @@ public class RaidsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(pointsOverlay); @@ -291,6 +295,8 @@ public class RaidsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(pointsOverlay); clientToolbar.removeNavigation(navButton); @@ -307,8 +313,17 @@ public class RaidsPlugin extends Plugin reset(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ClientTick.class, this, this::onClientTick); + eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("raids")) { @@ -339,8 +354,7 @@ public class RaidsPlugin extends Plugin clientThread.invokeLater(() -> checkRaidPresence(true)); } - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + private void onWidgetHiddenChanged(WidgetHiddenChanged event) { if (!inRaidChambers || event.isHidden()) { @@ -355,8 +369,7 @@ public class RaidsPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { checkRaidPresence(false); if (this.partyDisplay) @@ -365,8 +378,7 @@ public class RaidsPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (inRaidChambers && event.getType() == ChatMessageType.FRIENDSCHATNOTIFICATION) { @@ -498,8 +510,7 @@ public class RaidsPlugin extends Plugin } } - @Subscribe - public void onClientTick(ClientTick event) + private void onClientTick(ClientTick event) { if (!this.raidsTimer || !client.getGameState().equals(GameState.LOGGED_IN) @@ -515,8 +526,7 @@ public class RaidsPlugin extends Plugin } } - @Subscribe - public void onOverlayMenuClicked(OverlayMenuClicked event) + private void onOverlayMenuClicked(OverlayMenuClicked event) { OverlayMenuEntry entry = event.getEntry(); if (entry.getMenuAction() == MenuAction.RUNELITE_OVERLAY && diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/shortcuts/ShortcutPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/shortcuts/ShortcutPlugin.java index b8bb023e98..8cba543dc3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/shortcuts/ShortcutPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/shortcuts/ShortcutPlugin.java @@ -16,7 +16,7 @@ import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -39,6 +39,8 @@ public class ShortcutPlugin extends Plugin private ShortcutOverlay overlay; @Inject private ShortcutConfig config; + @Inject + private EventBus eventBus; @Getter(AccessLevel.PACKAGE) private boolean highlightShortcuts; @@ -57,6 +59,8 @@ public class ShortcutPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + this.highlightShortcuts = config.highlightShortcuts(); overlayManager.add(overlay); } @@ -64,11 +68,19 @@ public class ShortcutPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); overlayManager.remove(overlay); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameObjectSpawned(GameObjectSpawned event) { WorldPoint worldPoint = WorldPoint.fromLocalInstance(client, event.getGameObject().getLocalLocation()); if (worldPoint == null) @@ -81,20 +93,17 @@ public class ShortcutPlugin extends Plugin } } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { shortcut.remove(event.getGameObject()); } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { shortcut.removeIf(object -> object.getCanvasLocation() == null); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("shortcut")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java index 5df929535f..5a4f16fdb7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java @@ -46,7 +46,7 @@ import net.runelite.api.events.GraphicsObjectCreated; import net.runelite.api.events.VarbitChanged; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -81,6 +81,9 @@ public class RaidsThievingPlugin extends Plugin @Inject private RaidsThievingConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final Map chests = new HashMap<>(); @@ -115,6 +118,7 @@ public class RaidsThievingPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlay.updateConfig(); @@ -124,14 +128,22 @@ public class RaidsThievingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); lastActionTime = Instant.ofEpochMilli(0); chests.clear(); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GraphicsObjectCreated.class, this, this::onGraphicsObjectCreated); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { GameObject obj = event.getGameObject(); WorldPoint loc = obj.getWorldLocation(); @@ -203,9 +215,7 @@ public class RaidsThievingPlugin extends Plugin } } - - @Subscribe - public void onGraphicsObjectCreated(GraphicsObjectCreated event) + private void onGraphicsObjectCreated(GraphicsObjectCreated event) { GraphicsObject obj = event.getGraphicsObject(); if (obj.getId() == 184) @@ -222,8 +232,7 @@ public class RaidsThievingPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { boolean setting = client.getVar(Varbits.IN_RAID) == 1; @@ -235,8 +244,7 @@ public class RaidsThievingPlugin extends Plugin } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("raidsthievingplugin")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/reorderprayers/ReorderPrayersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/reorderprayers/ReorderPrayersPlugin.java index deec5d3ec6..09baf49c33 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/reorderprayers/ReorderPrayersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/reorderprayers/ReorderPrayersPlugin.java @@ -48,7 +48,7 @@ import static net.runelite.api.widgets.WidgetConfig.DRAG_ON; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; @@ -181,6 +181,9 @@ public class ReorderPrayersPlugin extends Plugin @Inject private MenuManager menuManager; + @Inject + private EventBus eventBus; + private Prayer[] prayerOrder; static String prayerOrderToString(Prayer[] prayerOrder) @@ -221,6 +224,8 @@ public class ReorderPrayersPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + refreshPrayerTabOption(); prayerOrder = stringToPrayerOrder(config.prayerOrder()); reorderPrayers(); @@ -229,13 +234,23 @@ public class ReorderPrayersPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + clearPrayerTabMenus(); prayerOrder = Prayer.values(); reorderPrayers(false); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(DraggingWidgetChanged.class, this, this::onDraggingWidgetChanged); + eventBus.subscribe(WidgetMenuOptionClicked.class, this, this::onWidgetMenuOptionClicked); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -243,8 +258,7 @@ public class ReorderPrayersPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals(CONFIG_GROUP_KEY)) { @@ -260,8 +274,7 @@ public class ReorderPrayersPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() == WidgetID.PRAYER_GROUP_ID || event.getGroupId() == WidgetID.QUICK_PRAYERS_GROUP_ID) { @@ -269,8 +282,7 @@ public class ReorderPrayersPlugin extends Plugin } } - @Subscribe - public void onDraggingWidgetChanged(DraggingWidgetChanged event) + private void onDraggingWidgetChanged(DraggingWidgetChanged event) { // is dragging widget and mouse button released if (event.isDraggingWidget() && client.getMouseCurrentButton() == 0) @@ -301,8 +313,7 @@ public class ReorderPrayersPlugin extends Plugin } } - @Subscribe - public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) + private void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) { if (event.getWidget() == WidgetInfo.FIXED_VIEWPORT_PRAYER_TAB || event.getWidget() == WidgetInfo.RESIZABLE_VIEWPORT_PRAYER_TAB diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/reportbutton/ReportButtonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/reportbutton/ReportButtonPlugin.java index 8a0f91e692..f8d0888375 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/reportbutton/ReportButtonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/reportbutton/ReportButtonPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @@ -76,6 +76,9 @@ public class ReportButtonPlugin extends Plugin @Inject private ReportButtonConfig config; + @Inject + private EventBus eventBus; + private TimeStyle timeStyle; @Provides @@ -87,6 +90,8 @@ public class ReportButtonPlugin extends Plugin @Override public void startUp() { + addSubscriptions(); + this.timeStyle = config.time(); clientThread.invoke(this::updateReportButtonTime); } @@ -94,6 +99,8 @@ public class ReportButtonPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + clientThread.invoke(() -> { Widget reportButton = client.getWidget(WidgetInfo.CHATBOX_REPORT_TEXT); @@ -104,8 +111,13 @@ public class ReportButtonPlugin extends Plugin }); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onGameStateChanged(GameStateChanged event) { GameState state = event.getGameState(); @@ -205,8 +217,7 @@ public class ReportButtonPlugin extends Plugin return DATE_FORMAT.format(new Date()); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("regenmeter")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java index 163682223b..469a1ff4cd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java @@ -45,7 +45,7 @@ import net.runelite.api.events.GroundObjectChanged; import net.runelite.api.events.GroundObjectDespawned; import net.runelite.api.events.GroundObjectSpawned; import net.runelite.api.events.ItemContainerChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -76,23 +76,41 @@ public class RoguesDenPlugin extends Plugin @Inject private RoguesDenOverlay overlay; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { + addSubscriptions(); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); obstaclesHull.clear(); obstaclesTile.clear(); hasGem = false; } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(GroundObjectChanged.class, this, this::onGroundObjectChanged); + eventBus.subscribe(GroundObjectDespawned.class, this, this::onGroundObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer() != client.getItemContainer(InventoryID.INVENTORY)) { @@ -111,44 +129,37 @@ public class RoguesDenPlugin extends Plugin hasGem = false; } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { onTileObject(event.getTile(), null, event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGameObject()); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { onTileObject(event.getTile(), event.getGameObject(), null); } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { onTileObject(event.getTile(), null, event.getGroundObject()); } - @Subscribe - public void onGroundObjectChanged(GroundObjectChanged event) + private void onGroundObjectChanged(GroundObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGroundObject()); } - @Subscribe - public void onGroundObjectDespawned(GroundObjectDespawned event) + private void onGroundObjectDespawned(GroundObjectDespawned event) { onTileObject(event.getTile(), event.getGroundObject(), null); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java index 29f3ae2523..d80e22b592 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java @@ -56,7 +56,7 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -115,6 +115,9 @@ public class RunecraftPlugin extends Plugin @Inject private MenuManager menuManager; + @Inject + private EventBus eventBus; + private boolean Lavas; @Getter(AccessLevel.PACKAGE) private boolean essPouch; @@ -162,6 +165,7 @@ public class RunecraftPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(abyssOverlay); abyssOverlay.updateConfig(); @@ -172,6 +176,8 @@ public class RunecraftPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(abyssOverlay); abyssObjects.clear(); darkMage = null; @@ -180,8 +186,20 @@ public class RunecraftPlugin extends Plugin removeSwaps(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(DecorativeObjectSpawned.class, this, this::onDecorativeObjectSpawned); + eventBus.subscribe(DecorativeObjectDespawned.class, this, this::onDecorativeObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("runecraft")) { @@ -198,8 +216,7 @@ public class RunecraftPlugin extends Plugin abyssOverlay.updateConfig(); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE) { @@ -212,8 +229,7 @@ public class RunecraftPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded entry) + private void onMenuEntryAdded(MenuEntryAdded entry) { if (wearingCape || wearingTiara) { @@ -287,9 +303,7 @@ public class RunecraftPlugin extends Plugin return -1; } - - @Subscribe - public void onDecorativeObjectSpawned(DecorativeObjectSpawned event) + private void onDecorativeObjectSpawned(DecorativeObjectSpawned event) { DecorativeObject decorativeObject = event.getDecorativeObject(); if (AbyssRifts.getRift(decorativeObject.getId()) != null) @@ -298,15 +312,13 @@ public class RunecraftPlugin extends Plugin } } - @Subscribe - public void onDecorativeObjectDespawned(DecorativeObjectDespawned event) + private void onDecorativeObjectDespawned(DecorativeObjectDespawned event) { DecorativeObject decorativeObject = event.getDecorativeObject(); abyssObjects.remove(decorativeObject); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { GameState gameState = event.getGameState(); switch (gameState) @@ -322,8 +334,7 @@ public class RunecraftPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (event.getItemContainer() == client.getItemContainer(InventoryID.INVENTORY)) { @@ -339,8 +350,7 @@ public class RunecraftPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { final NPC npc = event.getNpc(); if (npc.getId() == NpcID.DARK_MAGE) @@ -349,8 +359,7 @@ public class RunecraftPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { final NPC npc = event.getNpc(); if (npc != null && npc.equals(darkMage)) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runedoku/RunedokuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runedoku/RunedokuPlugin.java index 3fa8214b50..e06e11d5e8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runedoku/RunedokuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runedoku/RunedokuPlugin.java @@ -33,7 +33,7 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -60,6 +60,9 @@ public class RunedokuPlugin extends Plugin @Inject private RunedokuConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Color mindRuneColor; @Getter(AccessLevel.PACKAGE) @@ -91,17 +94,21 @@ public class RunedokuPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(runedokuOverlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(runedokuOverlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("runedoku")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java index 88a897d9ef..b3dbdc6b18 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java @@ -32,7 +32,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.runepouch.config.RunePouchOverlayMode; @@ -55,6 +55,9 @@ public class RunepouchPlugin extends Plugin @Inject private RunepouchConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Color fontColor; @Getter(AccessLevel.PACKAGE) @@ -72,17 +75,21 @@ public class RunepouchPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("runepouch")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java index bc2ea6d984..168fbcde35 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/safespot/SafeSpotPlugin.java @@ -30,7 +30,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.InteractingChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -55,6 +55,9 @@ public class SafeSpotPlugin extends Plugin @Inject private SafeSpotConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private List safeSpotList; @@ -79,6 +82,7 @@ public class SafeSpotPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); safeSpotOverlay = new SafeSpotOverlay(client, this); overlayManager.add(safeSpotOverlay); @@ -87,10 +91,18 @@ public class SafeSpotPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(safeSpotOverlay); } - @Subscribe + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + private void onInteractingChanged(InteractingChanged event) { if (event.getSource() != client.getLocalPlayer()) @@ -103,8 +115,7 @@ public class SafeSpotPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (client.getLocalPlayer().getInteracting() != null) { @@ -185,8 +196,7 @@ public class SafeSpotPlugin extends Plugin return safeSpotList; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("safespot")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java index ce6a8d67fa..e45bf34e0e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ScreenMarkerPlugin.java @@ -44,7 +44,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.MouseManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -87,6 +87,9 @@ public class ScreenMarkerPlugin extends Plugin @Inject private ScreenMarkerCreationOverlay overlay; + @Inject + private EventBus eventBus; + private ScreenMarkerMouseListener mouseListener; private ScreenMarkerPluginPanel pluginPanel; private NavigationButton navigationButton; @@ -101,6 +104,8 @@ public class ScreenMarkerPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); loadConfig(configManager.getConfiguration(CONFIG_GROUP, CONFIG_KEY)).forEach(screenMarkers::add); screenMarkers.forEach(overlayManager::add); @@ -125,6 +130,8 @@ public class ScreenMarkerPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.removeIf(ScreenMarkerOverlay.class::isInstance); screenMarkers.clear(); @@ -138,8 +145,7 @@ public class ScreenMarkerPlugin extends Plugin navigationButton = null; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (screenMarkers.isEmpty() && event.getGroup().equals(CONFIG_GROUP) && event.getKey().equals(CONFIG_KEY)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index df1ece5714..c932e4772b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -58,7 +58,6 @@ import javax.imageio.ImageIO; import javax.inject.Inject; import javax.inject.Singleton; import javax.swing.SwingUtilities; - import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; @@ -91,7 +90,7 @@ import net.runelite.client.Notifier; import static net.runelite.client.RuneLite.SCREENSHOT_DIR; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.PlayerLootReceived; import net.runelite.client.game.SpriteManager; import net.runelite.client.input.KeyManager; @@ -196,6 +195,9 @@ public class ScreenshotPlugin extends Plugin @Inject private SpriteManager spriteManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private BufferedImage reportButton; @@ -244,6 +246,7 @@ public class ScreenshotPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(screenshotOverlay); SCREENSHOT_DIR.mkdirs(); @@ -278,13 +281,25 @@ public class ScreenshotPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(screenshotOverlay); clientToolbar.removeNavigation(titleBarButton); keyManager.unregisterKeyListener(hotkeyListener); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(PlayerLootReceived.class, this, this::onPlayerLootReceived); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN && reportButton == null) @@ -293,8 +308,7 @@ public class ScreenshotPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (this.screenshotFriendDeath) { @@ -342,8 +356,7 @@ public class ScreenshotPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged e) + private void onAnimationChanged(AnimationChanged e) { //this got refactored somewhere, but some things were missing if (!this.screenshotFriendDeath || !this.screenshotPlayerDeath) @@ -383,8 +396,7 @@ public class ScreenshotPlugin extends Plugin } } - @Subscribe - public void onPlayerLootReceived(final PlayerLootReceived playerLootReceived) + private void onPlayerLootReceived(final PlayerLootReceived playerLootReceived) { if (this.screenshotKills) { @@ -395,8 +407,7 @@ public class ScreenshotPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.TRADE) { @@ -509,8 +520,7 @@ public class ScreenshotPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { String fileName; int groupId = event.getGroupId(); @@ -894,8 +904,7 @@ public class ScreenshotPlugin extends Plugin return theatreOfBloodNumber; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("screenshot")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java index e74b268575..7280e59e8c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java @@ -34,7 +34,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.NPC; import net.runelite.api.events.GameTick; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -60,18 +60,25 @@ public class ShayzienInfirmaryPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + @Inject private ShayzienInfirmaryOverlay overlay; @Override protected void startUp() throws Exception { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + loadPlugin(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + unloadPlugin(); } @@ -85,8 +92,7 @@ public class ShayzienInfirmaryPlugin extends Plugin overlayManager.remove(overlay); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (isNotAtInfirmary()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java index d9464b1dd6..d0e2eb02e9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java @@ -30,7 +30,7 @@ import javax.inject.Singleton; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; @@ -65,6 +65,9 @@ public class ShiftWalkerPlugin extends Plugin @Inject private KeyManager keyManager; + @Inject + private EventBus eventBus; + private boolean shiftWalk; private boolean shiftLoot; @@ -80,17 +83,26 @@ public class ShiftWalkerPlugin extends Plugin this.shiftWalk = config.shiftWalk(); this.shiftLoot = config.shiftLoot(); + addSubscriptions(); + keyManager.registerKeyListener(inputListener); } @Override public void shutDown() { + eventBus.unregister(this); + keyManager.unregisterKeyListener(inputListener); } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + + private void onFocusChanged(FocusChanged event) { if (!event.isFocused()) { @@ -117,8 +129,7 @@ public class ShiftWalkerPlugin extends Plugin menuManager.removePriorityEntry(WALK_HERE); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("shiftwalkhere")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java index 147420e7b1..44797f4968 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculatorPlugin.java @@ -40,7 +40,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SkillIconManager; import net.runelite.client.game.SpriteManager; @@ -81,6 +81,9 @@ public class SkillCalculatorPlugin extends Plugin @Inject private SkillCalculatorConfig skillCalculatorConfig; + @Inject + private EventBus eventBus; + private NavigationButton uiNavigationButton; private NavigationButton bankedUiNavigationButton; @@ -96,6 +99,8 @@ public class SkillCalculatorPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "calc.png"); final SkillCalculatorPanel uiPanel = new SkillCalculatorPanel(skillIconManager, client, spriteManager, itemManager); @@ -114,6 +119,7 @@ public class SkillCalculatorPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); clientToolbar.removeNavigation(uiNavigationButton); if (bankedUiNavigationButton != null) { @@ -121,8 +127,13 @@ public class SkillCalculatorPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("skillCalculator") && event.getKey().equals("enabledBankedXp")) { @@ -130,7 +141,6 @@ public class SkillCalculatorPlugin extends Plugin } } - @Subscribe public void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!event.getEventName().equals("setBankTitle") || !skillCalculatorConfig.showBankedXp()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java index d91597749b..7a0c11bf33 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skybox/SkyboxPlugin.java @@ -33,7 +33,7 @@ import net.runelite.api.Player; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.BeforeRender; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -49,21 +49,34 @@ public class SkyboxPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + private Skybox skybox; @Override public void startUp() throws IOException { + addSubscriptions(); + skybox = new Skybox(SkyboxPlugin.class.getResourceAsStream("skybox.txt"), "skybox.txt"); } @Override public void shutDown() { + eventBus.unregister(this); + client.setSkyboxColor(0); skybox = null; } + private void addSubscriptions() + { + eventBus.subscribe(BeforeRender.class, this, this::onBeforeRender); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + private int mapChunk(int cx, int cy, int plane) { cx -= client.getBaseX() / 8; @@ -79,8 +92,7 @@ public class SkyboxPlugin extends Plugin return instanceTemplateChunks[cx][cy]; } - @Subscribe - public void onBeforeRender(BeforeRender r) + private void onBeforeRender(BeforeRender r) { if (skybox == null || client.getGameState() != GameState.LOGGED_IN) { @@ -124,8 +136,7 @@ public class SkyboxPlugin extends Plugin )); } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index eee2b5beeb..1cbfc23116 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -82,7 +82,7 @@ import net.runelite.client.chat.ChatCommandManager; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ChatInput; import net.runelite.client.game.AsyncBufferedImage; import net.runelite.client.game.ItemManager; @@ -219,6 +219,9 @@ public class SlayerPlugin extends Plugin @Inject private ChatClient chatClient; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final Set highlightedTargets = new HashSet<>(); @@ -291,6 +294,7 @@ public class SlayerPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(targetClickboxOverlay); @@ -326,6 +330,8 @@ public class SlayerPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(targetClickboxOverlay); overlayManager.remove(targetWeaknessOverlay); @@ -338,14 +344,27 @@ public class SlayerPlugin extends Plugin clientToolbar.removeNavigation(navButton); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDefinitionChanged.class, this, this::onNpcDefinitionChanged); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged); + } + @Provides SlayerConfig getConfig(ConfigManager configManager) { return configManager.getConfig(SlayerConfig.class); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -387,8 +406,7 @@ public class SlayerPlugin extends Plugin config.streak(streak); } - @Subscribe - public void onNpcSpawned(NpcSpawned npcSpawned) + private void onNpcSpawned(NpcSpawned npcSpawned) { NPC npc = npcSpawned.getNpc(); if (isTarget(npc, targetNames)) @@ -397,8 +415,7 @@ public class SlayerPlugin extends Plugin } } - @Subscribe - public void onNpcDefinitionChanged(NpcDefinitionChanged event) + private void onNpcDefinitionChanged(NpcDefinitionChanged event) { NPC npc = event.getNpc(); @@ -408,8 +425,7 @@ public class SlayerPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { NPC npc = npcDespawned.getNpc(); boolean contained = highlightedTargets.remove(npc); @@ -420,8 +436,7 @@ public class SlayerPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (client.getVar(Varbits.SLAYER_REWARD_POINTS) == cachedPoints) { @@ -528,8 +543,7 @@ public class SlayerPlugin extends Plugin private static final int FORCED_WAIT = 2; private int forcedWait = -1; - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { loginTick = false; @@ -610,8 +624,7 @@ public class SlayerPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM) { @@ -696,8 +709,7 @@ public class SlayerPlugin extends Plugin } } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void onExperienceChanged(ExperienceChanged event) { if (event.getSkill() != SLAYER) { @@ -735,8 +747,7 @@ public class SlayerPlugin extends Plugin cachedXp = slayerExp; } - @Subscribe - public void onInteractingChanged(InteractingChanged event) + private void onInteractingChanged(InteractingChanged event) { if (client.getLocalPlayer() == null) { @@ -767,7 +778,6 @@ public class SlayerPlugin extends Plugin return SUPERIOR_SLAYER_MONSTERS.contains(name.toLowerCase()); } - @Subscribe private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("slayer")) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java index 682f39ba2f..5753e46f39 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java @@ -63,7 +63,7 @@ import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.chat.ChatMessageManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -96,20 +96,23 @@ public class SlayermusiqPlugin extends Plugin @Inject private ChatMessageManager chatMessageManager; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { - // + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); } @Override protected void shutDown() throws Exception { - // + eventBus.unregister(this); } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { int widgetID = event.getActionParam1(); if (Ints.contains(QUESTLIST_WIDGET_IDS, widgetID) && "Read Journal:".equals(event.getOption())) @@ -124,7 +127,6 @@ public class SlayermusiqPlugin extends Plugin } } - @Subscribe private void onMenuOptionClicked(MenuOptionClicked ev) { if (ev.getMenuAction() == MenuAction.RUNELITE && ev.getOption().equals(MENUOP_SLAYERMUSIQ)) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java index 9d821ad6ab..f76f4df431 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java @@ -36,7 +36,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; @@ -61,6 +61,9 @@ public class SmeltingPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private SmeltingSession session; @@ -75,6 +78,8 @@ public class SmeltingPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + this.statTimeout = config.statTimeout(); session = null; overlayManager.add(overlay); @@ -83,12 +88,20 @@ public class SmeltingPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); session = null; } - @Subscribe - public void onChatMessage(ChatMessage event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM) { @@ -113,8 +126,7 @@ public class SmeltingPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (session != null) { @@ -128,7 +140,6 @@ public class SmeltingPlugin extends Plugin } } - @Subscribe private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("smelting")) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java index aa1e66efd0..6fd663ad58 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java @@ -19,7 +19,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -39,6 +39,8 @@ public class SpawnTimerPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; @Getter(AccessLevel.PACKAGE) private final Set highlightedNpcs = new HashSet<>(); @@ -68,6 +70,8 @@ public class SpawnTimerPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.getNpcToHighlight = config.getNpcToHighlight(); this.getHighlightColor = config.getHighlightColor(); @@ -79,19 +83,28 @@ public class SpawnTimerPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + ticks.clear(); highlightedNpcs.clear(); overlayManager.remove(SpawnTimerOverlay); } - @Subscribe - public void onGameTick(GameTick g) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + } + + private void onGameTick(GameTick g) { currentTick++; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN || event.getGameState() == GameState.HOPPING) @@ -101,8 +114,7 @@ public class SpawnTimerPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned n) + private void onNpcSpawned(NpcSpawned n) { if (n.getNpc() != null) { @@ -115,8 +127,7 @@ public class SpawnTimerPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned n) + private void onNpcDespawned(NpcDespawned n) { final NPC npc = n.getNpc(); if (highlightedNpcs.contains(npc)) @@ -140,7 +151,6 @@ public class SpawnTimerPlugin extends Plugin return Text.fromCSV(configNpcs); } - @Subscribe private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("spawntimer")) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specbar/SpecBarPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/specbar/SpecBarPlugin.java index d58467d9f1..ecb7d2832d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specbar/SpecBarPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specbar/SpecBarPlugin.java @@ -28,7 +28,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.Client; import net.runelite.api.events.ScriptCallbackEvent; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -47,18 +47,22 @@ public class SpecBarPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!"drawSpecbarAnyway".equals(event.getEventName())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java index 3f164f87b0..c28057a6b7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specialcounter/SpecialCounterPlugin.java @@ -46,7 +46,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.VarbitChanged; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -92,21 +92,36 @@ public class SpecialCounterPlugin extends Plugin @Inject private ItemManager itemManager; + @Inject + private EventBus eventBus; + @Override protected void startUp() { + addSubscriptions(); + wsClient.registerMessage(SpecialCounterUpdate.class); } @Override protected void shutDown() { + eventBus.unregister(this); + removeCounters(); wsClient.unregisterMessage(SpecialCounterUpdate.class); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(SpecialCounterUpdate.class, this, this::onSpecialCounterUpdate); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -122,8 +137,7 @@ public class SpecialCounterPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { int specialPercentage = client.getVar(VarPlayer.SPECIAL_ATTACK_PERCENT); @@ -142,7 +156,6 @@ public class SpecialCounterPlugin extends Plugin specialHitpointsExperience = client.getSkillExperience(Skill.HITPOINTS); } - @Subscribe private void onGameTick(GameTick tick) { if (client.getGameState() != GameState.LOGGED_IN) @@ -219,8 +232,7 @@ public class SpecialCounterPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { NPC actor = npcDespawned.getNpc(); @@ -230,8 +242,7 @@ public class SpecialCounterPlugin extends Plugin } } - @Subscribe - public void onSpecialCounterUpdate(SpecialCounterUpdate event) + private void onSpecialCounterUpdate(SpecialCounterUpdate event) { if (party.getLocalMember().getMemberId().equals(event.getMemberId())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java index 0502330b79..3694512f1e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java @@ -53,7 +53,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.MouseManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; @@ -120,6 +120,9 @@ public class SpellbookPlugin extends Plugin @Inject private SpellbookDragOverlay overlay; + @Inject + private EventBus eventBus; + @Getter private boolean dragging; @@ -151,6 +154,7 @@ public class SpellbookPlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); refreshMagicTabOption(); loadFilter(); @@ -160,6 +164,7 @@ public class SpellbookPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); clearMagicTabMenus(); saveSpells(); config.canDrag(false); @@ -168,8 +173,16 @@ public class SpellbookPlugin extends Plugin mouseListener = null; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(WidgetMenuOptionClicked.class, this, this::onWidgetMenuOptionClicked); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -177,8 +190,7 @@ public class SpellbookPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"spellbook".equals(event.getGroup())) { @@ -198,7 +210,6 @@ public class SpellbookPlugin extends Plugin refreshMagicTabOption(); } - @Subscribe public void onVarbitChanged(VarbitChanged event) { if (client.getGameState() != GameState.LOGGED_IN) @@ -252,9 +263,7 @@ public class SpellbookPlugin extends Plugin return false; } - - @Subscribe - public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) + private void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) { if (event.getWidget() != WidgetInfo.FIXED_VIEWPORT_MAGIC_TAB && event.getWidget() != WidgetInfo.RESIZABLE_VIEWPORT_MAGIC_TAB @@ -318,8 +327,7 @@ public class SpellbookPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (client.getVar(Varbits.FILTER_SPELLBOOK) != 0 || !this.enableMobile diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsPlugin.java index 1936f87664..3b7e8eecdb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/statusbars/StatusBarsPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.NPCDefinition; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; @@ -94,6 +94,9 @@ public class StatusBarsPlugin extends Plugin @Inject private StatusBarsConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Instant lastCombatAction; @@ -114,6 +117,7 @@ public class StatusBarsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); barRenderers.put(BarMode.DISABLED, null); @@ -128,8 +132,7 @@ public class StatusBarsPlugin extends Plugin this.lastCombatAction = Instant.now(); } - @Subscribe - public void onGameTick(GameTick gameTick) + private void onGameTick(GameTick gameTick) { if (!this.toggleRestorationBars) { @@ -167,18 +170,25 @@ public class StatusBarsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); barRenderers.clear(); } + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + @Provides StatusBarsConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(StatusBarsConfig.class); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"statusbars".equals(event.getGroup())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/statusorbs/StatusOrbsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/statusorbs/StatusOrbsPlugin.java index 3e3e671f4a..ade1af9e64 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/statusorbs/StatusOrbsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/statusorbs/StatusOrbsPlugin.java @@ -52,7 +52,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -102,6 +102,9 @@ public class StatusOrbsPlugin extends Plugin @Inject private Notifier notifier; + @Inject + private EventBus eventBus; + @Getter private double hitpointsPercentage; @@ -152,8 +155,9 @@ public class StatusOrbsPlugin extends Plugin @Override protected void startUp() throws Exception { - migrateConfigs(); updateConfig(); + addSubscriptions(); + overlayManager.add(overlay); if (this.dynamicHpHeart && client.getGameState().equals(GameState.LOGGED_IN)) { @@ -164,6 +168,8 @@ public class StatusOrbsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); localPlayerRunningToDestination = false; prevLocalPlayerLocation = null; @@ -174,8 +180,15 @@ public class StatusOrbsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("statusorbs")) { @@ -202,7 +215,6 @@ public class StatusOrbsPlugin extends Plugin } } - @Subscribe private void onVarbitChanged(VarbitChanged e) { if (this.dynamicHpHeart) @@ -218,7 +230,6 @@ public class StatusOrbsPlugin extends Plugin wasRapidHeal = isRapidHeal; } - @Subscribe private void onGameStateChanged(GameStateChanged ev) { if (ev.getGameState() == GameState.HOPPING || ev.getGameState() == GameState.LOGIN_SCREEN) @@ -229,8 +240,7 @@ public class StatusOrbsPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (client.getVar(VarPlayer.SPECIAL_ATTACK_PERCENT) == 1000) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/StonedLootTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/StonedLootTrackerPlugin.java index 6ba61372c2..edae7b42d1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/StonedLootTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/StonedLootTrackerPlugin.java @@ -70,7 +70,7 @@ import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.NpcLootReceived; import net.runelite.client.events.PlayerLootReceived; import net.runelite.client.game.ItemManager; @@ -141,6 +141,9 @@ public class StonedLootTrackerPlugin extends Plugin @Inject private LootRecordWriter writer; + @Inject + private EventBus eventBus; + private Multiset inventorySnapshot; @Provides @@ -149,8 +152,7 @@ public class StonedLootTrackerPlugin extends Plugin return configManager.getConfig(StonedLootTrackerConfig.class); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("stonedloottracker")) { @@ -173,6 +175,8 @@ public class StonedLootTrackerPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + panel = new LootTrackerPanel(itemManager, this); final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "panel_icon.png"); @@ -224,25 +228,37 @@ public class StonedLootTrackerPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + clientToolbar.removeNavigation(navButton); } - @Subscribe - public void onLootTrackerRecordStored(LootTrackerRecordStored s) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(LootTrackerRecordStored.class, this, this::onLootTrackerRecordStored); + eventBus.subscribe(LootTrackerNameChange.class, this, this::onLootTrackerNameChange); + eventBus.subscribe(NpcLootReceived.class, this, this::onNpcLootReceived); + eventBus.subscribe(PlayerLootReceived.class, this, this::onPlayerLootReceived); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onLootTrackerRecordStored(LootTrackerRecordStored s) { SwingUtilities.invokeLater(() -> panel.addLog(s.getRecord())); } - @Subscribe - public void onLootTrackerNameChange(LootTrackerNameChange c) + private void onLootTrackerNameChange(LootTrackerNameChange c) { refreshData(); SwingUtilities.invokeLater(() -> panel.updateNames()); } - @Subscribe - public void onNpcLootReceived(final NpcLootReceived npcLootReceived) + private void onNpcLootReceived(final NpcLootReceived npcLootReceived) { final NPC npc = npcLootReceived.getNpc(); final Collection items = npcLootReceived.getItems(); @@ -268,8 +284,7 @@ public class StonedLootTrackerPlugin extends Plugin addLog(name, rec); } - @Subscribe - public void onPlayerLootReceived(final PlayerLootReceived playerLootReceived) + private void onPlayerLootReceived(final PlayerLootReceived playerLootReceived) { final Player player = playerLootReceived.getPlayer(); final Collection items = playerLootReceived.getItems(); @@ -281,8 +296,7 @@ public class StonedLootTrackerPlugin extends Plugin addLog(name, rec); } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { final ItemContainer container; switch (event.getGroupId()) @@ -350,8 +364,7 @@ public class StonedLootTrackerPlugin extends Plugin writer.addLootTrackerRecord(record); } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM) { @@ -471,8 +484,7 @@ public class StonedLootTrackerPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (eventType != null && (CHEST_EVENT_TYPES.containsValue(eventType) || HERBIBOR_EVENT.equals(eventType))) { @@ -671,8 +683,7 @@ public class StonedLootTrackerPlugin extends Plugin }); } - @Subscribe - public void onGameStateChanged(GameStateChanged c) + private void onGameStateChanged(GameStateChanged c) { if (c.getGameState().equals(GameState.LOGGED_IN)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java b/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java index d4c340df67..7b9f74b2f7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/stonedloottracker/data/LootRecordWriter.java @@ -41,7 +41,6 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import static net.runelite.client.RuneLite.RUNELITE_DIR; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.eventbus.EventBusImplementation; import net.runelite.client.plugins.stonedloottracker.data.events.LootTrackerNameChange; import net.runelite.client.plugins.stonedloottracker.data.events.LootTrackerRecordStored; import net.runelite.http.api.RuneLiteAPI; @@ -56,10 +55,10 @@ public class LootRecordWriter // Data is stored in a folder with the players in-game username private File playerFolder = LOOT_RECORD_DIR; - private final EventBusImplementation bus; + private final EventBus bus; @Inject - public LootRecordWriter(EventBusImplementation bus) + public LootRecordWriter(EventBus bus) { this.bus = bus; playerFolder.mkdir(); @@ -74,7 +73,7 @@ public class LootRecordWriter { playerFolder = new File(LOOT_RECORD_DIR, username); playerFolder.mkdir(); - bus.post(new LootTrackerNameChange()); + bus.post(LootTrackerNameChange.class, new LootTrackerNameChange()); } public Set getKnownFileNames() @@ -141,7 +140,7 @@ public class LootRecordWriter file.append(dataAsString); file.newLine(); file.close(); - bus.post(new LootTrackerRecordStored(rec)); + bus.post(LootTrackerRecordStored.class, new LootTrackerRecordStored(rec)); } catch (IOException ioe) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/stretchedmode/StretchedModePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/stretchedmode/StretchedModePlugin.java index 1d57cdb4ee..2287f7cf2a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/stretchedmode/StretchedModePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/stretchedmode/StretchedModePlugin.java @@ -32,7 +32,7 @@ import net.runelite.api.Client; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ResizeableChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.MouseManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -61,6 +61,9 @@ public class StretchedModePlugin extends Plugin @Inject private TranslateMouseWheelListener mouseWheelListener; + @Inject + private EventBus eventBus; + @Provides StretchedModeConfig provideConfig(ConfigManager configManager) { @@ -70,6 +73,9 @@ public class StretchedModePlugin extends Plugin @Override protected void startUp() { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ResizeableChanged.class, this, this::onResizeableChanged); + mouseManager.registerMouseListener(0, mouseListener); mouseManager.registerMouseWheelListener(0, mouseWheelListener); @@ -80,6 +86,8 @@ public class StretchedModePlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + client.setStretchedEnabled(false); client.invalidateStretching(true); @@ -87,14 +95,12 @@ public class StretchedModePlugin extends Plugin mouseManager.unregisterMouseWheelListener(mouseWheelListener); } - @Subscribe - public void onResizeableChanged(ResizeableChanged event) + private void onResizeableChanged(ResizeableChanged event) { client.invalidateStretching(true); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("stretchedmode")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java index 6b0d864198..27e1afe746 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java @@ -62,7 +62,7 @@ import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.VarbitChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -150,10 +150,14 @@ public class SuppliesTrackerPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; @Override protected void startUp() throws Exception { + addSubscriptions(); + panel = new SuppliesTrackerPanel(itemManager, this); final BufferedImage header = ImageUtil.getResourceStreamFromClass(getClass(), "panel_icon.png"); panel.loadHeaderIcon(header); @@ -172,17 +176,27 @@ public class SuppliesTrackerPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); clientToolbar.removeNavigation(navButton); } + private void addSubscriptions() + { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(CannonballFired.class, this, this::onCannonballFired); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + } + @Provides SuppliesTrackerConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(SuppliesTrackerConfig.class); } - @Subscribe - public void onGameTick(GameTick tick) + private void onGameTick(GameTick tick) { Player player = client.getLocalPlayer(); if (player.getAnimation() == BLOWPIPE_ATTACK) @@ -239,8 +253,7 @@ public class SuppliesTrackerPlugin extends Plugin return percent; } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (attackStyleVarbit == -1 || attackStyleVarbit != client.getVar(VarPlayer.ATTACK_STYLE)) { @@ -314,14 +327,12 @@ public class SuppliesTrackerPlugin extends Plugin } } - @Subscribe - public void onCannonballFired(CannonballFired cannonballFired) + private void onCannonballFired(CannonballFired cannonballFired) { buildEntries(CANNONBALL); } - @Subscribe - public void onAnimationChanged(AnimationChanged animationChanged) + private void onAnimationChanged(AnimationChanged animationChanged) { if (animationChanged.getActor() == client.getLocalPlayer()) { @@ -374,8 +385,7 @@ public class SuppliesTrackerPlugin extends Plugin } } - @Subscribe - public void onItemContainerChanged(ItemContainerChanged itemContainerChanged) + private void onItemContainerChanged(ItemContainerChanged itemContainerChanged) { ItemContainer itemContainer = itemContainerChanged.getItemContainer(); @@ -501,8 +511,7 @@ public class SuppliesTrackerPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(final MenuOptionClicked event) + private void onMenuOptionClicked(final MenuOptionClicked event) { // Uses stacks to push/pop for tick eating // Create pattern to find eat/drink at beginning diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tarnslair/TarnsLairPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tarnslair/TarnsLairPlugin.java index fc2bbff2f7..9bb03bf433 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tarnslair/TarnsLairPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tarnslair/TarnsLairPlugin.java @@ -43,7 +43,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.GroundObjectChanged; import net.runelite.api.events.GroundObjectDespawned; import net.runelite.api.events.GroundObjectSpawned; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -84,6 +84,9 @@ public class TarnsLairPlugin extends Plugin @Inject private TarnsLairOverlay overlay; + @Inject + private EventBus eventBus; + @Override protected void startUp() throws Exception { @@ -93,6 +96,8 @@ public class TarnsLairPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); staircases.clear(); wallTraps.clear(); @@ -100,51 +105,55 @@ public class TarnsLairPlugin extends Plugin inLair = false; } - @Subscribe - public void onGameTick(GameTick event) + private void addSubscriptions() + { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(GroundObjectChanged.class, this, this::onGroundObjectChanged); + eventBus.subscribe(GroundObjectDespawned.class, this, this::onGroundObjectDespawned); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onGameTick(GameTick event) { int regionID = client.getLocalPlayer().getWorldLocation().getRegionID(); inLair = (regionID == TARNS_LAIR_NORTH_REGION || regionID == TARNS_LAIR_SOUTH_REGION); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { onTileObject(event.getTile(), null, event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(GameObjectChanged event) + private void onGameObjectChanged(GameObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGameObject()); } - @Subscribe - public void onGameObjectDespawned(GameObjectDespawned event) + private void onGameObjectDespawned(GameObjectDespawned event) { onTileObject(event.getTile(), event.getGameObject(), null); } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { onTileObject(event.getTile(), null, event.getGroundObject()); } - @Subscribe - public void onGroundObjectChanged(GroundObjectChanged event) + private void onGroundObjectChanged(GroundObjectChanged event) { onTileObject(event.getTile(), event.getPrevious(), event.getGroundObject()); } - @Subscribe - public void onGroundObjectDespawned(GroundObjectDespawned event) + private void onGroundObjectDespawned(GroundObjectDespawned event) { onTileObject(event.getTile(), event.getGroundObject(), null); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java index 56740fdd0a..3897309b2a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tearsofguthix/TearsOfGuthixPlugin.java @@ -39,7 +39,7 @@ import net.runelite.api.Skill; import net.runelite.api.events.DecorativeObjectDespawned; import net.runelite.api.events.DecorativeObjectSpawned; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -66,6 +66,9 @@ public class TearsOfGuthixPlugin extends Plugin @Inject private TearsOfGuthixExperienceOverlay experienceOverlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final Map streams = new HashMap<>(); @@ -75,6 +78,8 @@ public class TearsOfGuthixPlugin extends Plugin @Override protected void startUp() { + addSubscriptions(); + overlayManager.add(overlay); overlayManager.add(experienceOverlay); } @@ -82,14 +87,22 @@ public class TearsOfGuthixPlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(experienceOverlay); streams.clear(); playerLowestSkill = null; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(DecorativeObjectSpawned.class, this, this::onDecorativeObjectSpawned); + eventBus.subscribe(DecorativeObjectDespawned.class, this, this::onDecorativeObjectDespawned); + } + + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -120,8 +133,7 @@ public class TearsOfGuthixPlugin extends Plugin } } - @Subscribe - public void onDecorativeObjectSpawned(DecorativeObjectSpawned event) + private void onDecorativeObjectSpawned(DecorativeObjectSpawned event) { DecorativeObject object = event.getDecorativeObject(); @@ -133,8 +145,7 @@ public class TearsOfGuthixPlugin extends Plugin } } - @Subscribe - public void onDecorativeObjectDespawned(DecorativeObjectDespawned event) + private void onDecorativeObjectDespawned(DecorativeObjectDespawned event) { if (streams.isEmpty()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/TheatrePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/TheatrePlugin.java index 26238c416b..142d40e982 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/TheatrePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/TheatrePlugin.java @@ -35,7 +35,7 @@ import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.graphics.ModelOutlineRenderer; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -84,6 +84,9 @@ public class TheatrePlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + private Widget widget = null; @Getter(AccessLevel.PUBLIC) @@ -162,6 +165,7 @@ public class TheatrePlugin extends Plugin protected void startUp() { updateConfig(); + addSubscriptions(); room = TheatreRoom.UNKNOWN; @@ -178,6 +182,8 @@ public class TheatrePlugin extends Plugin @Override protected void shutDown() { + eventBus.unregister(this); + maidenHandler.onStop(); maidenHandler = null; @@ -202,8 +208,23 @@ public class TheatrePlugin extends Plugin overlayManager.remove(overlay); } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(NpcDefinitionChanged.class, this, this::onNpcDefinitionChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + } + + private void onSpotAnimationChanged(SpotAnimationChanged event) { if (maidenHandler != null) { @@ -211,8 +232,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onNpcDefinitionChanged(NpcDefinitionChanged event) + private void onNpcDefinitionChanged(NpcDefinitionChanged event) { if (maidenHandler != null) { @@ -220,8 +240,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { if (maidenHandler != null) { @@ -255,8 +274,7 @@ public class TheatrePlugin extends Plugin } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (maidenHandler != null) { @@ -285,8 +303,7 @@ public class TheatrePlugin extends Plugin } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { if (verzikHandler != null) { @@ -294,8 +311,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (maidenHandler != null) { @@ -303,8 +319,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) + private void onWidgetLoaded(WidgetLoaded event) { if (event.getGroupId() != WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID && event.getGroupId() != WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID) { @@ -322,8 +337,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (maidenHandler != null) { @@ -445,8 +459,7 @@ public class TheatrePlugin extends Plugin widget = null; } - @Subscribe - public void onGroundObjectSpawned(GroundObjectSpawned event) + private void onGroundObjectSpawned(GroundObjectSpawned event) { if (sotetsegHandler != null) { @@ -459,8 +472,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("Theatre")) { @@ -473,8 +485,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (bloatHandler != null) { @@ -487,8 +498,7 @@ public class TheatrePlugin extends Plugin } } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { if (sotetsegHandler != null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/BloatHandler.java b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/BloatHandler.java index f7c262c853..dddc77f9ad 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/BloatHandler.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/BloatHandler.java @@ -16,7 +16,6 @@ import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.VarbitChanged; -import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.theatre.RoomHandler; import net.runelite.client.plugins.theatre.TheatrePlugin; import net.runelite.client.plugins.theatre.TheatreRoom; @@ -129,7 +128,6 @@ public class BloatHandler extends RoomHandler } } - @Subscribe public void onVarbitChanged(VarbitChanged event) { if (client.getVar(Varbits.BLOAT_DOOR) == 1 && !bloatFlag) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/thieving/ThievingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/thieving/ThievingPlugin.java index fa73e5b00f..c7718bfaa7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/thieving/ThievingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/thieving/ThievingPlugin.java @@ -38,7 +38,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; @@ -67,6 +67,9 @@ public class ThievingPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private ThievingSession session; @@ -81,6 +84,8 @@ public class ThievingPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.statTimeout = config.statTimeout(); session = null; @@ -90,12 +95,20 @@ public class ThievingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); session = null; } - @Subscribe - public void onGameTick(GameTick gameTick) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onGameTick(GameTick gameTick) { if (session == null || this.statTimeout == 0) { @@ -111,10 +124,8 @@ public class ThievingPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { - if (event.getType() != ChatMessageType.SPAM) { return; @@ -145,8 +156,7 @@ public class ThievingPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"thieving".equals(event.getGroup())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TickTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TickTimersPlugin.java index b801e83a40..066b0163ad 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TickTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ticktimers/TickTimersPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.NPCManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -76,6 +76,8 @@ public class TickTimersPlugin extends Plugin private TickTimersConfig config; @Inject private NPCManager npcManager; + @Inject + private EventBus eventBus; @Getter(AccessLevel.PACKAGE) private Set npcContainer = new HashSet<>(); private boolean validRegion; @@ -105,19 +107,29 @@ public class TickTimersPlugin extends Plugin public void startUp() { updateConfig(); + addSubscriptions(); npcContainer.clear(); } @Override public void shutDown() { + eventBus.unregister(this); npcContainer.clear(); overlayManager.remove(timersOverlay); validRegion = false; } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() != GameState.LOGGED_IN) { @@ -137,8 +149,7 @@ public class TickTimersPlugin extends Plugin npcContainer.clear(); } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { if (!validRegion) { @@ -181,8 +192,7 @@ public class TickTimersPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (!validRegion) { @@ -217,7 +227,6 @@ public class TickTimersPlugin extends Plugin } } - @Subscribe public void onGameTick(GameTick Event) { if (!validRegion) @@ -254,8 +263,7 @@ public class TickTimersPlugin extends Plugin ); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"TickTimers".equals(event.getGroup())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java index 9a41a6a35b..c10ae5f23d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java @@ -32,7 +32,7 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.events.ConfigChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -55,6 +55,9 @@ public class TileIndicatorsPlugin extends Plugin @Inject private TileIndicatorsConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private Color highlightDestinationColor; @Getter(AccessLevel.PACKAGE) @@ -78,17 +81,20 @@ public class TileIndicatorsPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!"tileindicators".equals(event.getGroup())) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index 36ac85610f..fe4cddd1e2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -72,7 +72,7 @@ import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import static net.runelite.api.widgets.WidgetInfo.PVP_WORLD_SAFE_ZONE; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; @@ -150,6 +150,9 @@ public class TimersPlugin extends Plugin @Inject private InfoBoxManager infoBoxManager; + + @Inject + private EventBus eventBus; private boolean showHomeMinigameTeleports; private boolean showAntiPoison; @@ -181,11 +184,14 @@ public class TimersPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + infoBoxManager.removeIf(t -> t instanceof TimerTimer); lastRaidVarb = -1; lastPoint = null; @@ -198,8 +204,24 @@ public class TimersPlugin extends Plugin imbuedHeartClicked = false; } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath); + eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged); + } + + private void onVarbitChanged(VarbitChanged event) { int raidVarb = client.getVar(Varbits.IN_RAID); int vengCooldownVarb = client.getVar(Varbits.VENGEANCE_COOLDOWN); @@ -286,8 +308,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + private void onWidgetHiddenChanged(WidgetHiddenChanged event) { Widget widget = event.getWidget(); if (WorldType.isPvpWorld(client.getWorldType()) @@ -297,8 +318,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("timers")) { @@ -397,8 +417,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (this.showStamina && event.getOption().contains("Drink") @@ -464,8 +483,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.GAMEMESSAGE) { @@ -620,8 +638,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { loggedInRace = false; @@ -670,8 +687,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { switch (gameStateChanged.getGameState()) { @@ -685,8 +701,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { Actor actor = event.getActor(); @@ -744,8 +759,7 @@ public class TimersPlugin extends Plugin lastAnimation = client.getLocalPlayer().getAnimation(); } - @Subscribe - public void onSpotAnimationChanged(SpotAnimationChanged event) + private void onSpotAnimationChanged(SpotAnimationChanged event) { Actor actor = event.getActor(); @@ -832,8 +846,7 @@ public class TimersPlugin extends Plugin * * @param itemContainerChanged */ - @Subscribe - public void onItemContainerChanged(ItemContainerChanged itemContainerChanged) + private void onItemContainerChanged(ItemContainerChanged itemContainerChanged) { ItemContainer container = itemContainerChanged.getItemContainer(); if (container == client.getItemContainer(InventoryID.EQUIPMENT)) @@ -868,8 +881,7 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned npcDespawned) + private void onNpcDespawned(NpcDespawned npcDespawned) { NPC npc = npcDespawned.getNpc(); @@ -886,14 +898,12 @@ public class TimersPlugin extends Plugin } } - @Subscribe - public void onLocalPlayerDeath(LocalPlayerDeath event) + private void onLocalPlayerDeath(LocalPlayerDeath event) { infoBoxManager.removeIf(t -> t instanceof TimerTimer && ((TimerTimer) t).getTimer().isRemovedOnDeath()); } - @Subscribe - public void onBoostedLevelChanged(BoostedLevelChanged event) + private void onBoostedLevelChanged(BoostedLevelChanged event) { Skill skill = event.getSkill(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java index 516fb5eb94..be05bd32cc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java @@ -41,7 +41,7 @@ import net.runelite.api.Varbits; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.util.ColorUtil; @@ -61,6 +61,9 @@ public class TimestampPlugin extends Plugin @Inject private TimestampConfig config; + @Inject + private EventBus eventBus; + @Getter private SimpleDateFormat formatter; @@ -73,17 +76,21 @@ public class TimestampPlugin extends Plugin @Override protected void startUp() throws Exception { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + updateFormatter(); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + formatter = null; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("timestamp") && event.getKey().equals("format")) { @@ -91,8 +98,7 @@ public class TimestampPlugin extends Plugin } } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (!event.getEventName().equals("addTimestamp")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeTrackingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeTrackingPlugin.java index 9279883311..dbd23caabf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeTrackingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeTrackingPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.UsernameChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -88,6 +88,9 @@ public class TimeTrackingPlugin extends Plugin @Inject private ScheduledExecutorService executorService; + @Inject + private EventBus eventBus; + private ScheduledFuture panelUpdateFuture; private TimeTrackingPanel panel; @@ -106,6 +109,8 @@ public class TimeTrackingPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + clockManager.loadTimers(); clockManager.loadStopwatches(); birdHouseTracker.loadFromConfig(); @@ -130,6 +135,8 @@ public class TimeTrackingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + lastTickLocation = null; lastTickPostLogin = false; @@ -142,8 +149,14 @@ public class TimeTrackingPlugin extends Plugin clientToolbar.removeNavigation(navButton); } - @Subscribe - public void onConfigChanged(ConfigChanged e) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(UsernameChanged.class, this, this::onUsernameChanged); + } + + private void onConfigChanged(ConfigChanged e) { if (!e.getGroup().equals(CONFIG_GROUP)) { @@ -160,8 +173,7 @@ public class TimeTrackingPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick t) + private void onGameTick(GameTick t) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -200,8 +212,7 @@ public class TimeTrackingPlugin extends Plugin } } - @Subscribe - public void onUsernameChanged(UsernameChanged e) + private void onUsernameChanged(UsernameChanged e) { farmingTracker.loadCompletionTimes(); birdHouseTracker.loadFromConfig(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tithefarm/TitheFarmPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tithefarm/TitheFarmPlugin.java index bc69f169fe..c3295578f9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tithefarm/TitheFarmPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tithefarm/TitheFarmPlugin.java @@ -39,7 +39,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @@ -62,6 +62,9 @@ public class TitheFarmPlugin extends Plugin @Inject private TitheFarmPluginConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private final Set plants = new HashSet<>(); @@ -82,6 +85,8 @@ public class TitheFarmPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + overlayManager.add(titheFarmOverlay); titheFarmOverlay.updateConfig(); } @@ -89,11 +94,19 @@ public class TitheFarmPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(titheFarmOverlay); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("tithefarmplugin")) { @@ -103,14 +116,12 @@ public class TitheFarmPlugin extends Plugin } } - @Subscribe - public void onGameTick(final GameTick event) + private void onGameTick(final GameTick event) { plants.removeIf(plant -> plant.getPlantTimeRelative() == 1); } - @Subscribe - public void onGameObjectSpawned(GameObjectSpawned event) + private void onGameObjectSpawned(GameObjectSpawned event) { GameObject gameObject = event.getGameObject(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java index 133636aa77..1a432301ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java @@ -35,7 +35,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.kit.KitType; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -57,6 +57,9 @@ public class TMorph extends Plugin @Inject private TMorphConfig config; + @Inject + private EventBus eventBus; + private boolean mageSwap; private boolean rangeSwap; private boolean meleeSwap; @@ -128,10 +131,23 @@ public class TMorph extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("TMorph")) { @@ -139,8 +155,7 @@ public class TMorph extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { if (this.animationTarget <= 0 && this.animationSwap <= 0 && this.globalAnimSwap > 0) { @@ -158,8 +173,7 @@ public class TMorph extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (client.getGameState() != GameState.LOGGED_IN) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java index 842e1cc887..e2c60ac3ca 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java @@ -46,12 +46,11 @@ import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; - @PluginDescriptor( name = "ToB Damage Counter", description = "Gives you an estimation damage on a boss and taken after the fight is done" + @@ -105,9 +104,27 @@ public class DamageCounterPlugin extends Plugin private Client client; @Inject private ChatMessageManager chatMessangerManager; + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath); + } + + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } //every game tick it will go through methods - @Subscribe private void onGameTick(GameTick tick) { if (client.getGameState() != GameState.LOGGED_IN) @@ -140,9 +157,8 @@ public class DamageCounterPlugin extends Plugin } } - @Subscribe //if you hop it will reset the counter - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGGED_IN) { @@ -192,7 +208,6 @@ public class DamageCounterPlugin extends Plugin } - @Subscribe //will add the damage that you have taken from the current boss fight private void onHitsplatApplied(HitsplatApplied Hit) { @@ -208,8 +223,7 @@ public class DamageCounterPlugin extends Plugin because every time she phases she "dies" so making sure the counter doesn't print out the damage for phase 1, 2, and 3. */ - @Subscribe - public void onNpcDespawned(NpcDespawned npc) + private void onNpcDespawned(NpcDespawned npc) { NPC actor = npc.getNpc(); double Percent = calculatePercent(WorldPoint.fromLocalInstance(client, @@ -310,7 +324,6 @@ public class DamageCounterPlugin extends Plugin sendChatMessage(MessageTaken); } - @Subscribe //whenever you have died in tob you will get a death message with damage // made sure the message works at ToB area or else it will message every where private void onLocalPlayerDeath(LocalPlayerDeath death) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/twitch/TwitchPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/twitch/TwitchPlugin.java index 62923981a9..b409c84217 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/twitch/TwitchPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/twitch/TwitchPlugin.java @@ -42,7 +42,7 @@ import net.runelite.client.chat.ChatboxInputListener; import net.runelite.client.chat.CommandManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ChatboxInput; import net.runelite.client.events.PrivateMessageInput; import net.runelite.client.plugins.Plugin; @@ -72,11 +72,16 @@ public class TwitchPlugin extends Plugin implements TwitchListener, ChatboxInput @Inject private CommandManager commandManager; + @Inject + private EventBus eventBus; + private TwitchIRCClient twitchIRCClient; @Override protected void startUp() { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + connect(); commandManager.register(this); } @@ -84,6 +89,8 @@ public class TwitchPlugin extends Plugin implements TwitchListener, ChatboxInput @Override protected void shutDown() { + eventBus.unregister(this); + if (twitchIRCClient != null) { twitchIRCClient.close(); @@ -149,8 +156,7 @@ public class TwitchPlugin extends Plugin implements TwitchListener, ChatboxInput } } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (!configChanged.getGroup().equals("twitch")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java index 9d3179c68c..3207e576bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java @@ -33,7 +33,7 @@ import lombok.Getter; import net.runelite.api.Actor; import net.runelite.api.AnimationID; import net.runelite.api.events.AnimationChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -56,12 +56,17 @@ public class VetionPlugin extends Plugin @Inject private VetionOverlay overlay; + @Inject + private EventBus eventBus; + @Getter private Map vetions; @Override protected void startUp() { + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + vetions = new HashMap<>(); overlayManager.add(overlay); } @@ -73,9 +78,7 @@ public class VetionPlugin extends Plugin vetions = null; } - - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { if (event.getActor().getAnimation() == AnimationID.VETION_EARTHQUAKE) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/virtuallevels/VirtualLevelsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/virtuallevels/VirtualLevelsPlugin.java index c9f3bb462f..719b55a6b4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/virtuallevels/VirtualLevelsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/virtuallevels/VirtualLevelsPlugin.java @@ -35,7 +35,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.PluginChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -60,20 +60,33 @@ public class VirtualLevelsPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private EventBus eventBus; + @Provides VirtualLevelsConfig provideConfig(ConfigManager configManager) { return configManager.getConfig(VirtualLevelsConfig.class); } + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(PluginChanged.class, this, this::onPluginChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + } + @Override protected void shutDown() { + eventBus.unregister(this); + clientThread.invoke(this::simulateSkillChange); } - @Subscribe - public void onPluginChanged(PluginChanged pluginChanged) + private void onPluginChanged(PluginChanged pluginChanged) { // this is guaranteed to be called after the plugin has been registered by the eventbus. startUp is not. if (pluginChanged.getPlugin() == this) @@ -82,8 +95,7 @@ public class VirtualLevelsPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged configChanged) + private void onConfigChanged(ConfigChanged configChanged) { if (!configChanged.getGroup().equals("virtuallevels")) { @@ -93,8 +105,7 @@ public class VirtualLevelsPlugin extends Plugin clientThread.invoke(this::simulateSkillChange); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent e) + private void onScriptCallbackEvent(ScriptCallbackEvent e) { final String eventName = e.getEventName(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java index 58cefc7efe..2aed82c228 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java @@ -38,7 +38,7 @@ import net.runelite.api.events.AnimationChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.ProjectileMoved; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -71,6 +71,9 @@ public class VorkathPlugin extends Plugin @Inject private ZombifiedSpawnOverlay SpawnOverlay; + @Inject + private EventBus eventBus; + @Getter private Vorkath vorkath; @@ -95,8 +98,27 @@ public class VorkathPlugin extends Plugin SPAWN = ImageUtil.getResourceStreamFromClass(VorkathPlugin.class, "ice.png"); } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + @Override + protected void startUp() throws Exception + { + addSubscriptions(); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void addSubscriptions() + { + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + + private void onNpcSpawned(NpcSpawned event) { if (isAtVorkath()) { @@ -114,8 +136,7 @@ public class VorkathPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { if (isAtVorkath()) { @@ -133,8 +154,7 @@ public class VorkathPlugin extends Plugin } } - @Subscribe - public void onProjectileMoved(ProjectileMoved event) + private void onProjectileMoved(ProjectileMoved event) { // Only capture initial projectile if (!isAtVorkath() || event.getProjectile().getStartMovementCycle() == lastProjectileCycle) @@ -191,8 +211,7 @@ public class VorkathPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { if (isAtVorkath() && vorkath != null && event.getActor().equals(vorkath.getVorkath()) && event.getActor().getAnimation() == VorkathAttack.SLASH_ATTACK.getVorkathAnimationID()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java index e3ca95d45a..ca037b8f1e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java @@ -48,7 +48,7 @@ import net.runelite.api.Player; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.MenuEntryAdded; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; @@ -80,6 +80,9 @@ public class WarIndicatorPlugin extends Plugin @Inject private Client client; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean highLightCallers; @Getter(AccessLevel.PACKAGE) @@ -111,6 +114,7 @@ public class WarIndicatorPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(warIndicatorOverlay); overlayManager.add(warIndicatorMiniMapOverlay); @@ -119,12 +123,18 @@ public class WarIndicatorPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.remove(warIndicatorOverlay); overlayManager.remove(warIndicatorMiniMapOverlay); } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded onMenuEntryAdded) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + } + + private void onMenuEntryAdded(MenuEntryAdded onMenuEntryAdded) { int type = onMenuEntryAdded.getType(); @@ -195,8 +205,7 @@ public class WarIndicatorPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("warIndicators")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java index 31878c18ab..e892cd6799 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java @@ -37,7 +37,7 @@ import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.VarbitChanged; import net.runelite.api.kit.KitType; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -76,6 +76,8 @@ public class WhaleWatchersPlugin extends Plugin private WhaleWatchersGloryOverlay whaleWatchersGloryOverlay; @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; private int tickCountdown = 0; @Getter(AccessLevel.PACKAGE) private boolean displaySmiteOverlay; @@ -95,8 +97,7 @@ public class WhaleWatchersPlugin extends Plugin return configManager.getConfig(WhaleWatchersConfig.class); } - @Subscribe - public void onOverlayMenuClicked(OverlayMenuClicked event) + private void onOverlayMenuClicked(OverlayMenuClicked event) { if (event.getOverlay().equals(overlay) && event.getEntry().getOption().equals("Reset")) { @@ -108,6 +109,7 @@ public class WhaleWatchersPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(whaleWatchersProtOverlay); @@ -118,6 +120,7 @@ public class WhaleWatchersPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.remove(overlay); overlayManager.remove(whaleWatchersProtOverlay); overlayManager.remove(whaleWatchersSmiteableOverlay); @@ -125,8 +128,18 @@ public class WhaleWatchersPlugin extends Plugin resetDamageCounter(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked); + eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals(CONFIG_GROUP_NAME)) { @@ -149,9 +162,7 @@ public class WhaleWatchersPlugin extends Plugin } } - - @Subscribe - public void onHitsplatApplied(HitsplatApplied event) + private void onHitsplatApplied(HitsplatApplied event) { if (this.showDamageCounter) { @@ -175,9 +186,7 @@ public class WhaleWatchersPlugin extends Plugin } } - - @Subscribe - public void onItemContainerChanged(ItemContainerChanged event) + private void onItemContainerChanged(ItemContainerChanged event) { if (this.gloryWarning && event.getItemContainer() == client.getItemContainer(InventoryID.EQUIPMENT)) { @@ -191,9 +200,7 @@ public class WhaleWatchersPlugin extends Plugin } } - - @Subscribe - public void onMenuOptionClicked(MenuOptionClicked event) + private void onMenuOptionClicked(MenuOptionClicked event) { if (this.showDamageCounter && event.getMenuAction().equals(MenuAction.SPELL_CAST_ON_PLAYER)) { @@ -201,8 +208,7 @@ public class WhaleWatchersPlugin extends Plugin } } - @Subscribe - public void onVarbitChanged(VarbitChanged event) + private void onVarbitChanged(VarbitChanged event) { if (this.showDamageCounter && client.getVar(VarPlayer.ATTACKING_PLAYER) == -1 && inCombat) { @@ -242,8 +248,7 @@ public class WhaleWatchersPlugin extends Plugin } } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (this.showDamageCounter && tickCountdown > 0 && tickCountdown < 11) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index b07ea0bad0..e0c704aa40 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -50,7 +50,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetPositionMode; import net.runelite.api.widgets.WidgetType; import net.runelite.client.callback.ClientThread; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.game.chatbox.ChatboxPanelManager; @@ -105,6 +105,9 @@ public class WikiPlugin extends Plugin @Inject private Provider wikiSearchChatboxTextInputProvider; + @Inject + private EventBus eventBus; + private Widget icon; private boolean wikiSelected = false; @@ -112,6 +115,8 @@ public class WikiPlugin extends Plugin @Override public void startUp() { + addSubscriptions(); + spriteManager.addSpriteOverrides(WikiSprite.values()); clientThread.invokeLater(this::addWidgets); } @@ -119,6 +124,8 @@ public class WikiPlugin extends Plugin @Override public void shutDown() { + eventBus.unregister(this); + spriteManager.removeSpriteOverrides(WikiSprite.values()); clientThread.invokeLater(() -> { @@ -139,7 +146,13 @@ public class WikiPlugin extends Plugin }); } - @Subscribe + private void addSubscriptions() + { + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + } + private void onWidgetLoaded(WidgetLoaded l) { if (l.getGroupId() == WidgetID.MINIMAP_GROUP_ID) @@ -195,7 +208,6 @@ public class WikiPlugin extends Plugin } } - @Subscribe private void onMenuOptionClicked(MenuOptionClicked ev) { if (wikiSelected) @@ -322,8 +334,7 @@ public class WikiPlugin extends Plugin .build(); } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { int widgetIndex = event.getActionParam0(); int widgetID = event.getActionParam1(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java index 07e7442638..ac2cc07ca9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java @@ -33,7 +33,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -78,6 +78,9 @@ public class WildernessLocationsPlugin extends Plugin @Inject private KeyManager keyManager; + @Inject + private EventBus eventBus; + private String oldChat = ""; private int currentCooldown = 0; private WorldPoint worldPoint = null; @@ -105,6 +108,8 @@ public class WildernessLocationsPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + this.drawOverlay = wildyConfig.drawOverlay(); this.keybind = wildyConfig.keybind(); @@ -112,8 +117,14 @@ public class WildernessLocationsPlugin extends Plugin keyManager.registerKeyListener(hotkeyListener); } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("wildernesslocations")) { @@ -127,12 +138,13 @@ public class WildernessLocationsPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); keyManager.unregisterKeyListener(hotkeyListener); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (currentCooldown != 0) { @@ -210,8 +222,7 @@ public class WildernessLocationsPlugin extends Plugin return hashMap; } - @Subscribe - public void onVarClientStrChanged(VarClientStrChanged varClient) + private void onVarClientStrChanged(VarClientStrChanged varClient) { String newChat = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT); if (varClient.getIndex() == VarClientStr.CHATBOX_TYPED_TEXT.getIndex() && !newChat.equals(oldChat)) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java index bca3584121..6bdfe862c7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java @@ -54,7 +54,7 @@ import net.runelite.api.events.VarbitChanged; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.EventBusImplementation; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.wintertodt.config.WintertodtNotifyMode; @@ -94,7 +94,7 @@ public class WintertodtPlugin extends Plugin private ChatMessageManager chatMessageManager; @Inject - private EventBusImplementation eventbus; + private EventBus eventBus; @Getter(AccessLevel.PACKAGE) private WintertodtActivity currentActivity = WintertodtActivity.IDLE; @@ -143,41 +143,12 @@ public class WintertodtPlugin extends Plugin private void addSubscriptions() { - this.addSubscription( - this.eventbus - .observableOfType(ConfigChanged.class) - .subscribe(this::onConfigChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(GameTick.class) - .subscribe(this::onGameTick) - ); - - this.addSubscription( - this.eventbus - .observableOfType(VarbitChanged.class) - .subscribe(this::onVarbitChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ChatMessage.class) - .subscribe(this::onChatMessage) - ); - - this.addSubscription( - this.eventbus - .observableOfType(AnimationChanged.class) - .subscribe(this::onAnimationChanged) - ); - - this.addSubscription( - this.eventbus - .observableOfType(ItemContainerChanged.class) - .subscribe(this::onItemContainerChanged) - ); + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); } private void onConfigChanged(ConfigChanged event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java index 996a13cb30..7bc066283c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java @@ -48,7 +48,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; @@ -82,6 +82,9 @@ public class WoodcuttingPlugin extends Plugin @Inject private WoodcuttingConfig config; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private WoodcuttingSession session; @@ -108,6 +111,7 @@ public class WoodcuttingPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); overlayManager.add(overlay); overlayManager.add(treesOverlay); @@ -116,6 +120,8 @@ public class WoodcuttingPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); overlayManager.remove(treesOverlay); treeObjects.clear(); @@ -123,8 +129,19 @@ public class WoodcuttingPlugin extends Plugin axe = null; } - @Subscribe - public void onGameTick(GameTick gameTick) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned); + eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned); + eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + } + + private void onGameTick(GameTick gameTick) { if (session == null || session.getLastLogCut() == null) { @@ -141,8 +158,7 @@ public class WoodcuttingPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() == ChatMessageType.SPAM || event.getType() == ChatMessageType.GAMEMESSAGE) { @@ -163,8 +179,7 @@ public class WoodcuttingPlugin extends Plugin } } - @Subscribe - public void onGameObjectSpawned(final GameObjectSpawned event) + private void onGameObjectSpawned(final GameObjectSpawned event) { GameObject gameObject = event.getGameObject(); Tree tree = Tree.findTree(gameObject.getId()); @@ -175,20 +190,17 @@ public class WoodcuttingPlugin extends Plugin } } - @Subscribe - public void onGameObjectDespawned(final GameObjectDespawned event) + private void onGameObjectDespawned(final GameObjectDespawned event) { treeObjects.remove(event.getGameObject()); } - @Subscribe - public void onGameObjectChanged(final GameObjectChanged event) + private void onGameObjectChanged(final GameObjectChanged event) { treeObjects.remove(event.getGameObject()); } - @Subscribe - public void onGameStateChanged(final GameStateChanged event) + private void onGameStateChanged(final GameStateChanged event) { if (event.getGameState() != GameState.LOGGED_IN) { @@ -196,8 +208,7 @@ public class WoodcuttingPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(final AnimationChanged event) + private void onAnimationChanged(final AnimationChanged event) { Player local = client.getLocalPlayer(); @@ -214,8 +225,7 @@ public class WoodcuttingPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("woodcutting")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java index 1136fffc31..7613e456ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java @@ -72,7 +72,7 @@ import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -130,6 +130,9 @@ public class WorldHopperPlugin extends Plugin @Inject private WorldHopperConfig config; + @Inject + private EventBus eventBus; + private ScheduledExecutorService hopperExecutorService; private NavigationButton navButton; @@ -183,6 +186,7 @@ public class WorldHopperPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); firstRun = true; @@ -219,6 +223,8 @@ public class WorldHopperPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + pingFuture.cancel(true); pingFuture = null; @@ -236,8 +242,19 @@ public class WorldHopperPlugin extends Plugin hopperExecutorService = null; } - @Subscribe - public void onConfigChanged(final ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); + eventBus.subscribe(PlayerMenuOptionClicked.class, this, this::onPlayerMenuOptionClicked); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(WorldListLoad.class, this, this::onWorldListLoad); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); + } + + private void onConfigChanged(final ConfigChanged event) { if (event.getGroup().equals(WorldHopperConfig.GROUP)) { @@ -320,8 +337,7 @@ public class WorldHopperPlugin extends Plugin panel.updateFavoriteMenu(world.getId(), false); } - @Subscribe - public void onVarbitChanged(VarbitChanged varbitChanged) + private void onVarbitChanged(VarbitChanged varbitChanged) { int old1 = favoriteWorld1; int old2 = favoriteWorld2; @@ -335,8 +351,7 @@ public class WorldHopperPlugin extends Plugin } } - @Subscribe - public void onMenuEntryAdded(MenuEntryAdded event) + private void onMenuEntryAdded(MenuEntryAdded event) { if (!config.menuOption()) { @@ -405,8 +420,7 @@ public class WorldHopperPlugin extends Plugin client.setMenuEntries(newMenu); } - @Subscribe - public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) + private void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event) { if (!event.getMenuOption().equals(HOP_TO)) { @@ -421,8 +435,7 @@ public class WorldHopperPlugin extends Plugin } } - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + private void onGameStateChanged(GameStateChanged gameStateChanged) { // If the player has disabled the side bar plugin panel, do not update the UI if (this.showSidebar && gameStateChanged.getGameState() == GameState.LOGGED_IN) @@ -436,8 +449,7 @@ public class WorldHopperPlugin extends Plugin } } - @Subscribe - public void onWorldListLoad(WorldListLoad worldListLoad) + private void onWorldListLoad(WorldListLoad worldListLoad) { if (!this.showSidebar) { @@ -672,8 +684,7 @@ public class WorldHopperPlugin extends Plugin displaySwitcherAttempts = 0; } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { if (quickHopTargetWorld == null) { @@ -711,8 +722,7 @@ public class WorldHopperPlugin extends Plugin } } - @Subscribe - public void onChatMessage(ChatMessage event) + private void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java index 7f8a0ec744..9c4f30cc59 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/WorldMapPlugin.java @@ -41,7 +41,7 @@ import net.runelite.api.events.WidgetLoaded; import net.runelite.api.widgets.WidgetID; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.AgilityShortcut; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -124,6 +124,9 @@ public class WorldMapPlugin extends Plugin @Inject private WorldMapPointManager worldMapPointManager; + @Inject + private EventBus eventBus; + private int agilityLevel = 0; private int woodcuttingLevel = 0; @@ -155,6 +158,8 @@ public class WorldMapPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + agilityLevel = client.getRealSkillLevel(Skill.AGILITY); woodcuttingLevel = client.getRealSkillLevel(Skill.WOODCUTTING); updateShownIcons(); @@ -163,6 +168,8 @@ public class WorldMapPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + worldMapPointManager.removeIf(FairyRingPoint.class::isInstance); worldMapPointManager.removeIf(AgilityShortcutPoint.class::isInstance); worldMapPointManager.removeIf(QuestStartPoint.class::isInstance); @@ -175,8 +182,14 @@ public class WorldMapPlugin extends Plugin woodcuttingLevel = 0; } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded); + } + + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals(CONFIG_KEY)) { @@ -187,8 +200,7 @@ public class WorldMapPlugin extends Plugin updateShownIcons(); } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void onExperienceChanged(ExperienceChanged event) { if (event.getSkill() == Skill.AGILITY) { @@ -211,8 +223,7 @@ public class WorldMapPlugin extends Plugin } } - @Subscribe - public void onWidgetLoaded(WidgetLoaded widgetLoaded) + private void onWidgetLoaded(WidgetLoaded widgetLoaded) { if (widgetLoaded.getGroupId() == WidgetID.WORLD_MAP_GROUP_ID) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java index 591543e137..e9b8345dfd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java @@ -42,7 +42,7 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDependency; import net.runelite.client.plugins.PluginDescriptor; @@ -79,6 +79,9 @@ public class XpGlobesPlugin extends Plugin @Inject private XpGlobesOverlay overlay; + @Inject + private EventBus eventBus; + @Getter(AccessLevel.PACKAGE) private boolean enableTooltips; private boolean hideMaxed; @@ -108,17 +111,27 @@ public class XpGlobesPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); + overlayManager.add(overlay); } @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(overlay); } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + private void onExperienceChanged(ExperienceChanged event) { Skill skill = event.getSkill(); int currentXp = client.getSkillExperience(skill); @@ -197,8 +210,7 @@ public class XpGlobesPlugin extends Plugin globeCache = new XpGlobe[Skill.values().length - 1]; } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void onGameStateChanged(GameStateChanged event) { switch (event.getGameState()) { @@ -209,10 +221,7 @@ public class XpGlobesPlugin extends Plugin } } - - - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("xpglobes")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java index f592cdc166..f926248040 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java @@ -53,7 +53,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.NPCManager; import net.runelite.client.game.SkillIconManager; import net.runelite.client.plugins.Plugin; @@ -105,6 +105,9 @@ public class XpTrackerPlugin extends Plugin @Inject private OverlayManager overlayManager; + @Inject + private EventBus eventBus; + private NavigationButton navButton; private XpPanel xpPanel; private XpWorldType lastWorldType; @@ -143,6 +146,7 @@ public class XpTrackerPlugin extends Plugin protected void startUp() throws Exception { updateConfig(); + addSubscriptions(); xpPanel = new XpPanel(this, client, skillIconManager); @@ -161,13 +165,22 @@ public class XpTrackerPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); overlayManager.removeIf(e -> e instanceof XpInfoBoxOverlay); xpState.reset(); clientToolbar.removeNavigation(navButton); } - @Subscribe - public void onGameStateChanged(GameStateChanged event) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + eventBus.subscribe(GameTick.class, this, this::onGameTick); + } + + private void onGameStateChanged(GameStateChanged event) { GameState state = event.getGameState(); if (state == GameState.LOGGED_IN) @@ -318,8 +331,7 @@ public class XpTrackerPlugin extends Plugin } } - @Subscribe - public void onExperienceChanged(ExperienceChanged event) + private void onExperienceChanged(ExperienceChanged event) { final Skill skill = event.getSkill(); final int currentXp = client.getSkillExperience(skill); @@ -361,8 +373,7 @@ public class XpTrackerPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { final NPC npc = event.getNpc(); @@ -381,8 +392,7 @@ public class XpTrackerPlugin extends Plugin xpPanel.updateTotal(xpState.getTotalSnapshot()); } - @Subscribe - public void onGameTick(GameTick event) + private void onGameTick(GameTick event) { rebuildSkills(); if (fetchXp) @@ -579,8 +589,7 @@ public class XpTrackerPlugin extends Plugin } } - @Subscribe - public void onConfigChanged(ConfigChanged event) + private void onConfigChanged(ConfigChanged event) { if (!event.getGroup().equals("xpTracker")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java index e8e31dd0f2..a9a95ab724 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java @@ -31,7 +31,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.events.GameStateChanged; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.http.api.xtea.XteaClient; @@ -52,8 +52,22 @@ public class XteaPlugin extends Plugin @Inject private Client client; - @Subscribe - public void onGameStateChanged(GameStateChanged gameStateChanged) + @Inject + private EventBus eventBus; + + @Override + protected void startUp() throws Exception + { + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); + } + + @Override + protected void shutDown() throws Exception + { + eventBus.unregister(this); + } + + private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() != GameState.LOGGED_IN) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java index 634c9fe06a..5e66dc6cd0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java @@ -35,7 +35,7 @@ import net.runelite.api.events.FocusChanged; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; @@ -71,14 +71,16 @@ public class ZoomPlugin extends Plugin implements KeyListener @Inject private KeyManager keyManager; + @Inject + private EventBus eventBus; + @Provides ZoomConfig getConfig(ConfigManager configManager) { return configManager.getConfig(ZoomConfig.class); } - @Subscribe - public void onScriptCallbackEvent(ScriptCallbackEvent event) + private void onScriptCallbackEvent(ScriptCallbackEvent event) { if (client.getIndexScripts().isOverlayOutdated()) { @@ -140,8 +142,7 @@ public class ZoomPlugin extends Plugin implements KeyListener } } - @Subscribe - public void onFocusChanged(FocusChanged event) + private void onFocusChanged(FocusChanged event) { if (!event.isFocused()) { @@ -152,6 +153,8 @@ public class ZoomPlugin extends Plugin implements KeyListener @Override protected void startUp() { + addSubscriptions(); + client.setCameraPitchRelaxerEnabled(zoomConfig.relaxCameraPitch()); keyManager.registerKeyListener(this); } @@ -159,13 +162,21 @@ public class ZoomPlugin extends Plugin implements KeyListener @Override protected void shutDown() { + eventBus.unregister(this); + client.setCameraPitchRelaxerEnabled(false); keyManager.unregisterKeyListener(this); controlDown = false; } - @Subscribe - public void onConfigChanged(ConfigChanged ev) + private void addSubscriptions() + { + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent); + eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + } + + private void onConfigChanged(ConfigChanged ev) { client.setCameraPitchRelaxerEnabled(zoomConfig.relaxCameraPitch()); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java index 82deb0d766..18ee33b51f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java @@ -44,7 +44,7 @@ import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.client.config.ConfigManager; -import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.game.Sound; import net.runelite.client.game.SoundManager; import net.runelite.client.plugins.Plugin; @@ -98,6 +98,8 @@ public class ZulrahPlugin extends Plugin private ZulrahPrayerOverlay zulrahPrayerOverlay; @Inject private ZulrahOverlay zulrahOverlay; + @Inject + private EventBus eventBus; private ZulrahInstance instance; @Provides @@ -109,6 +111,8 @@ public class ZulrahPlugin extends Plugin @Override protected void startUp() throws Exception { + addSubscriptions(); + overlayManager.add(currentPhaseOverlay); overlayManager.add(nextPhaseOverlay); overlayManager.add(zulrahPrayerOverlay); @@ -118,6 +122,8 @@ public class ZulrahPlugin extends Plugin @Override protected void shutDown() throws Exception { + eventBus.unregister(this); + overlayManager.remove(currentPhaseOverlay); overlayManager.remove(nextPhaseOverlay); overlayManager.remove(zulrahPrayerOverlay); @@ -126,8 +132,15 @@ public class ZulrahPlugin extends Plugin instance = null; } - @Subscribe - public void onGameTick(GameTick event) + private void addSubscriptions() + { + eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); + eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned); + eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned); + } + + private void onGameTick(GameTick event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -196,8 +209,7 @@ public class ZulrahPlugin extends Plugin } } - @Subscribe - public void onAnimationChanged(AnimationChanged event) + private void onAnimationChanged(AnimationChanged event) { if (instance == null) { @@ -231,8 +243,7 @@ public class ZulrahPlugin extends Plugin } } - @Subscribe - public void onNpcSpawned(NpcSpawned event) + private void onNpcSpawned(NpcSpawned event) { NPC npc = event.getNpc(); if (npc != null && npc.getName() != null && @@ -242,8 +253,7 @@ public class ZulrahPlugin extends Plugin } } - @Subscribe - public void onNpcDespawned(NpcDespawned event) + private void onNpcDespawned(NpcDespawned event) { NPC npc = event.getNpc(); if (npc != null && npc.getName() != null && From 19865173d8593e71bfd3b4e41e20dd1ca3c74bbb Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 13:47:26 +0200 Subject: [PATCH 08/15] Fix tests --- .../plugins/attackstyles/AttackStylesPlugin.java | 4 ++-- .../client/plugins/cerberus/CerberusPlugin.java | 2 +- .../plugins/chatcommands/ChatCommandsPlugin.java | 2 +- .../chatnotifications/ChatNotificationsPlugin.java | 2 +- .../runelite/client/plugins/cooking/CookingPlugin.java | 4 ++-- .../runelite/client/plugins/emojis/EmojiPlugin.java | 4 ++-- .../runelite/client/plugins/examine/ExaminePlugin.java | 4 ++-- .../plugins/idlenotifier/IdleNotifierPlugin.java | 10 +++++----- .../client/plugins/itemcharges/ItemChargePlugin.java | 2 +- .../client/plugins/motherlode/MotherlodePlugin.java | 6 +++--- .../client/plugins/screenshot/ScreenshotPlugin.java | 6 +++--- .../runelite/client/plugins/slayer/SlayerPlugin.java | 6 +++--- .../client/plugins/smelting/SmeltingPlugin.java | 2 +- .../runelite/client/plugins/timers/TimersPlugin.java | 2 +- .../client/plugins/timestamp/TimestampPlugin.java | 2 +- .../client/plugins/wintertodt/WintertodtPlugin.java | 2 +- .../net/runelite/client/plugins/PluginManagerTest.java | 4 ---- 17 files changed, 30 insertions(+), 34 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java index 05dc67eab2..66a6b3abd5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java @@ -220,7 +220,7 @@ public class AttackStylesPlugin extends Plugin } } - private void onVarbitChanged(VarbitChanged event) + void onVarbitChanged(VarbitChanged event) { if (attackStyleVarbit == -1 || attackStyleVarbit != client.getVar(VarPlayer.ATTACK_STYLE)) { @@ -247,7 +247,7 @@ public class AttackStylesPlugin extends Plugin } } - private void onConfigChanged(ConfigChanged event) + void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("attackIndicator")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java index 8b9f979f1c..073616f72f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cerberus/CerberusPlugin.java @@ -106,7 +106,7 @@ public class CerberusPlugin extends Plugin ghosts.remove(event.getNpc()); } - private void onGameTick(GameTick gameTick) + void onGameTick(GameTick gameTick) { if (ghosts.isEmpty()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 841cea3fd1..a17596f99c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -223,7 +223,7 @@ public class ChatCommandsPlugin extends Plugin return personalBest == null ? 0 : personalBest; } - private void onChatMessage(ChatMessage chatMessage) + void onChatMessage(ChatMessage chatMessage) { if (chatMessage.getType() != ChatMessageType.TRADE && chatMessage.getType() != ChatMessageType.GAMEMESSAGE diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index 0ae10ecabd..178c441245 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -162,7 +162,7 @@ public class ChatNotificationsPlugin extends Plugin } } - private void onChatMessage(ChatMessage chatMessage) + void onChatMessage(ChatMessage chatMessage) { MessageNode messageNode = chatMessage.getMessageNode(); boolean update = false; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java index b6a236888f..6ab9ecf5ee 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java @@ -140,7 +140,7 @@ public class CookingPlugin extends Plugin } } - private void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) + void onSpotAnimationChanged(SpotAnimationChanged graphicChanged) { Player player = client.getLocalPlayer(); @@ -169,7 +169,7 @@ public class CookingPlugin extends Plugin } } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java index 6f30275145..1124dbb9aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/emojis/EmojiPlugin.java @@ -89,7 +89,7 @@ public class EmojiPlugin extends Plugin eventBus.subscribe(OverheadTextChanged.class, this, this::onOverheadTextChanged); } - private void onGameStateChanged(GameStateChanged gameStateChanged) + void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGGED_IN) { @@ -129,7 +129,7 @@ public class EmojiPlugin extends Plugin client.setModIcons(newModIcons); } - private void onChatMessage(ChatMessage chatMessage) + void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOGGED_IN || modIconsStart == -1) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java index c49a51d568..8583cbe11a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java @@ -123,7 +123,7 @@ public class ExaminePlugin extends Plugin pending.clear(); } - private void onMenuOptionClicked(MenuOptionClicked event) + void onMenuOptionClicked(MenuOptionClicked event) { if (!event.getOption().equals("Examine")) { @@ -180,7 +180,7 @@ public class ExaminePlugin extends Plugin pending.push(pendingExamine); } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { ExamineType type; switch (event.getType()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index 32b36b72e0..57f2bbab2f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -167,7 +167,7 @@ public class IdleNotifierPlugin extends Plugin return configManager.getConfig(IdleNotifierConfig.class); } - private void onAnimationChanged(AnimationChanged event) + void onAnimationChanged(AnimationChanged event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -402,7 +402,7 @@ public class IdleNotifierPlugin extends Plugin itemQuantitiesPrevious = itemQuantities; } - private void onInteractingChanged(InteractingChanged event) + void onInteractingChanged(InteractingChanged event) { final Actor source = event.getSource(); if (source != client.getLocalPlayer()) @@ -452,7 +452,7 @@ public class IdleNotifierPlugin extends Plugin } } - private void onGameStateChanged(GameStateChanged gameStateChanged) + void onGameStateChanged(GameStateChanged gameStateChanged) { lastInteracting = null; @@ -484,7 +484,7 @@ public class IdleNotifierPlugin extends Plugin } } - private void onHitsplatApplied(HitsplatApplied event) + void onHitsplatApplied(HitsplatApplied event) { if (event.getActor() != client.getLocalPlayer()) { @@ -515,7 +515,7 @@ public class IdleNotifierPlugin extends Plugin } } - private void onGameTick(GameTick event) + void onGameTick(GameTick event) { skullNotifier(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java index fbdcd0e43a..e217d000ad 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java @@ -312,7 +312,7 @@ public class ItemChargePlugin extends Plugin } } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { String message = event.getMessage(); Matcher dodgyCheckMatcher = DODGY_CHECK_PATTERN.matcher(message); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java index e7676dec74..880a74c8fe 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java @@ -293,7 +293,7 @@ public class MotherlodePlugin extends Plugin eventBus.subscribe(OverheadTextChanged.class, this, this::onOverheadTextChanged); } - private void onVarbitChanged(VarbitChanged event) + void onVarbitChanged(VarbitChanged event) { if (inMlm) { @@ -621,7 +621,7 @@ public class MotherlodePlugin extends Plugin rocks.remove(gameObject); } - private void onGameStateChanged(GameStateChanged event) + void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOADING) { @@ -638,7 +638,7 @@ public class MotherlodePlugin extends Plugin } } - private void onItemContainerChanged(ItemContainerChanged event) + void onItemContainerChanged(ItemContainerChanged event) { final ItemContainer container = event.getItemContainer(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index c932e4772b..6e7dce0237 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -308,7 +308,7 @@ public class ScreenshotPlugin extends Plugin } } - private void onGameTick(GameTick event) + void onGameTick(GameTick event) { if (this.screenshotFriendDeath) { @@ -407,7 +407,7 @@ public class ScreenshotPlugin extends Plugin } } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.TRADE) { @@ -520,7 +520,7 @@ public class ScreenshotPlugin extends Plugin } } - private void onWidgetLoaded(WidgetLoaded event) + void onWidgetLoaded(WidgetLoaded event) { String fileName; int groupId = event.getGroupId(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 1cbfc23116..485ab55986 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -436,7 +436,7 @@ public class SlayerPlugin extends Plugin } } - private void onVarbitChanged(VarbitChanged event) + void onVarbitChanged(VarbitChanged event) { if (client.getVar(Varbits.SLAYER_REWARD_POINTS) == cachedPoints) { @@ -543,7 +543,7 @@ public class SlayerPlugin extends Plugin private static final int FORCED_WAIT = 2; private int forcedWait = -1; - private void onGameTick(GameTick tick) + void onGameTick(GameTick tick) { loginTick = false; @@ -624,7 +624,7 @@ public class SlayerPlugin extends Plugin } } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java index f76f4df431..a549677479 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingPlugin.java @@ -101,7 +101,7 @@ public class SmeltingPlugin extends Plugin eventBus.subscribe(GameTick.class, this, this::onGameTick); } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index fe4cddd1e2..6291672cf7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -483,7 +483,7 @@ public class TimersPlugin extends Plugin } } - private void onChatMessage(ChatMessage event) + void onChatMessage(ChatMessage event) { if (event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.GAMEMESSAGE) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java index be05bd32cc..4cd5d88456 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timestamp/TimestampPlugin.java @@ -90,7 +90,7 @@ public class TimestampPlugin extends Plugin formatter = null; } - private void onConfigChanged(ConfigChanged event) + void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("timestamp") && event.getKey().equals("format")) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java index 6bdfe862c7..b3b66ecea7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java @@ -204,7 +204,7 @@ public class WintertodtPlugin extends Plugin checkActionTimeout(); } - private void onVarbitChanged(VarbitChanged varbitChanged) + void onVarbitChanged(VarbitChanged varbitChanged) { int timerValue = client.getVar(Varbits.WINTERTODT_TIMER); if (timerValue != previousTimerValue) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java index c0b81a9665..a7ce76d6bb 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java @@ -129,10 +129,6 @@ public class PluginManagerTest pluginManager.loadCorePlugins(); plugins = pluginManager.getPlugins(); - // Check that the plugins register with the eventbus without errors - EventBus eventBus = new EventBus(); - plugins.forEach(eventBus::register); - expected = pluginClasses.stream() .map(cl -> (PluginDescriptor) cl.getAnnotation(PluginDescriptor.class)) .filter(Objects::nonNull) From a25d553d3e6914e745956d6ddcfedf26c66c0baa Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 14:06:53 +0200 Subject: [PATCH 09/15] Fix runetime errors in dev tools wq --- .../client/plugins/devtools/VarInspector.java | 12 ++++-------- .../client/plugins/devtools/WidgetInspector.java | 3 ++- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index ae0dfc856a..3115963a9f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -171,14 +171,6 @@ class VarInspector extends JFrame pack(); - addSubscriptions(); - } - - private void addSubscriptions() - { - eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); - eventBus.subscribe(VarClientIntChanged.class, this, this::onVarClientIntChanged); - eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); } private void addVarLog(VarType type, String name, int old, int neew) @@ -355,6 +347,10 @@ class VarInspector extends JFrame varcs = new HashMap<>(client.getVarcMap()); // eventBus.register(this); + eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); + eventBus.subscribe(VarClientIntChanged.class, this, this::onVarClientIntChanged); + eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged); + setVisible(true); toFront(); repaint(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index e2d10e365d..492206a0aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -85,6 +85,8 @@ class WidgetInspector extends JFrame this.config = config; this.overlay = overlay; + eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); + setTitle("RuneLite Widget Inspector"); setIconImage(ClientUI.ICON); @@ -164,7 +166,6 @@ class WidgetInspector extends JFrame pack(); - eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); } private void onConfigChanged(ConfigChanged ev) From aca9ba969ff8849ec74abf54f243469788f5c246 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 14:06:58 +0200 Subject: [PATCH 10/15] Log errors in the eventbus --- .../main/java/net/runelite/client/eventbus/EventBus.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java index d68e93d341..a6b404bc14 100644 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java @@ -10,7 +10,9 @@ import java.util.HashMap; import java.util.Map; import java.util.Objects; import javax.inject.Singleton; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Singleton public class EventBus implements EventBusInterface { @@ -43,7 +45,10 @@ public class EventBus implements EventBusInterface Disposable disposable = getSubject(eventClass) .filter(Objects::nonNull) // Filter out null objects, better safe than sorry .cast(eventClass) // Cast it for easier usage - .subscribe(action); + .subscribe(action, error -> + { + log.error("Error in eventbus: {}", error.getMessage()); + }); getCompositeDisposable(lifecycle).add(disposable); } From 11169905ae23816481f5f0c1e94fbd74fd7c3d9f Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 17:20:38 +0200 Subject: [PATCH 11/15] Checkstyle --- .../client/plugins/mta/telekinetic/TelekineticRoom.java | 2 -- .../client/plugins/musicindicator/MusicIndicatorPlugin.java | 1 - .../java/net/runelite/client/plugins/PluginManagerTest.java | 1 - 3 files changed, 4 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java index 12e6d11603..262cd5b53e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/telekinetic/TelekineticRoom.java @@ -52,11 +52,9 @@ import net.runelite.api.coords.Direction; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; -import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.GroundObjectSpawned; -import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.WallObjectSpawned; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java index 36e872991a..cac7bd30f0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java @@ -38,7 +38,6 @@ import net.runelite.api.Client; import net.runelite.api.EnumDefinition; import net.runelite.api.EnumID; import net.runelite.api.VarPlayer; -import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.VarbitChanged; diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java index a7ce76d6bb..472e2dfcb8 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java @@ -50,7 +50,6 @@ import net.runelite.client.RuneLite; import net.runelite.client.RuneLiteModule; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigItem; -import net.runelite.client.eventbus.EventBus; import net.runelite.client.rs.ClientUpdateCheckMode; import static org.junit.Assert.assertEquals; import org.junit.Before; From cd2b0775c355755ee11846066f077158d642386e Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 17:42:19 +0200 Subject: [PATCH 12/15] Fix PluginManagerTest --- .../main/java/net/runelite/client/plugins/PluginManager.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 6cf52036ee..4be020d07e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -118,9 +118,6 @@ public class PluginManager this.configManager = configManager; this.executor = executor; this.sceneTileManager = sceneTileManager; - - eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen); - eventBus.subscribe(SessionClose.class, this, this::onSessionClose); } public void watch() From 77851542d0130c8340cec0d1a9e06fb689c29d62 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 22:34:40 +0200 Subject: [PATCH 13/15] Remove unneeded unregisters --- .../main/java/net/runelite/client/plugins/PluginManager.java | 1 - .../main/java/net/runelite/client/util/GameEventManager.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 4be020d07e..d3627aabe4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -389,7 +389,6 @@ public class PluginManager try { unschedule(plugin); - eventBus.unregister(plugin); // plugins always stop in the event thread SwingUtilities.invokeAndWait(() -> diff --git a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java index 7ee02b398a..9e1a2d6659 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java +++ b/runelite-client/src/main/java/net/runelite/client/util/GameEventManager.java @@ -191,8 +191,6 @@ public class GameEventManager } }); }); - - eventBus.unregister(subscriber); }); } } From 935037cd982309ba3aa05cff1065a62ce6544ddd Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sun, 14 Jul 2019 22:58:24 +0200 Subject: [PATCH 14/15] Fix entityhider --- .../client/plugins/entityhider/EntityHiderPlugin.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java index f74ab59008..73263e4877 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java @@ -66,6 +66,7 @@ public class EntityHiderPlugin extends Plugin @Override protected void startUp() { + updateConfig(); addSubscriptions(); } @@ -75,9 +76,12 @@ public class EntityHiderPlugin extends Plugin eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); } - public void onConfigChanged(ConfigChanged e) + public void onConfigChanged(ConfigChanged event) { - updateConfig(); + if (event.getGroup().equals("entityhider")) + { + updateConfig(); + } } public void onGameStateChanged(GameStateChanged event) From 297cf7614a8e7277744bdb565ec3a1c4da65be6e Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Mon, 15 Jul 2019 01:26:43 +0200 Subject: [PATCH 15/15] Wintertodt selective eventbus listening --- .../plugins/wintertodt/WintertodtPlugin.java | 81 +++++++++++++------ 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java index b3b66ecea7..b98fe9fdc6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java @@ -37,6 +37,7 @@ import lombok.extern.slf4j.Slf4j; import static net.runelite.api.AnimationID.*; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; +import static net.runelite.api.GameState.LOADING; import net.runelite.api.InventoryID; import net.runelite.api.Item; import net.runelite.api.ItemContainer; @@ -49,6 +50,7 @@ import net.runelite.api.events.AnimationChanged; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; +import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.ItemContainerChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.client.Notifier; @@ -114,6 +116,8 @@ public class WintertodtPlugin extends Plugin private WintertodtNotifyMode notifyCondition; private Color damageNotificationColor; + private boolean subscribed; + @Provides WintertodtConfig getConfig(ConfigManager configManager) { @@ -130,12 +134,15 @@ public class WintertodtPlugin extends Plugin reset(); overlayManager.add(overlay); + + handleWintertodtRegion(); } @Override protected void shutDown() throws Exception { - super.shutDown(); + eventBus.unregister(this); + eventBus.unregister("inside-wintertodt"); overlayManager.remove(overlay); reset(); @@ -144,11 +151,23 @@ public class WintertodtPlugin extends Plugin private void addSubscriptions() { eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); - eventBus.subscribe(GameTick.class, this, this::onGameTick); + eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged); - eventBus.subscribe(ChatMessage.class, this, this::onChatMessage); - eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); - eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged); + } + + private void wintertodtSubscriptions(boolean subscribe) + { + if (subscribe) + { + eventBus.subscribe(GameTick.class, "inside-wintertodt", this::onGameTick); + eventBus.subscribe(ChatMessage.class, "inside-wintertodt", this::onChatMessage); + eventBus.subscribe(AnimationChanged.class, "inside-wintertodt", this::onAnimationChanged); + eventBus.subscribe(ItemContainerChanged.class, "inside-wintertodt", this::onItemContainerChanged); + } + else + { + eventBus.unregister("inside-wintertodt"); + } } private void onConfigChanged(ConfigChanged event) @@ -180,9 +199,24 @@ public class WintertodtPlugin extends Plugin return false; } - private void onGameTick(GameTick gameTick) + private void handleWintertodtRegion() { - if (!isInWintertodtRegion()) + if (isInWintertodtRegion()) + { + if (!isInWintertodt) + { + reset(); + log.debug("Entered Wintertodt!"); + } + isInWintertodt = true; + + if (!subscribed) + { + wintertodtSubscriptions(true); + subscribed = true; + } + } + else { if (isInWintertodt) { @@ -191,16 +225,25 @@ public class WintertodtPlugin extends Plugin } isInWintertodt = false; - return; - } - if (!isInWintertodt) + if (subscribed) + { + wintertodtSubscriptions(false); + subscribed = false; + } + } + } + + private void onGameStateChanged(GameStateChanged event) + { + if (event.getGameState() == LOADING) { - reset(); - log.debug("Entered Wintertodt!"); + handleWintertodtRegion(); } - isInWintertodt = true; + } + private void onGameTick(GameTick gameTick) + { checkActionTimeout(); } @@ -252,11 +295,6 @@ public class WintertodtPlugin extends Plugin private void onChatMessage(ChatMessage chatMessage) { - if (!isInWintertodt) - { - return; - } - ChatMessageType chatMessageType = chatMessage.getType(); if (chatMessageType != ChatMessageType.GAMEMESSAGE && chatMessageType != ChatMessageType.SPAM) @@ -395,11 +433,6 @@ public class WintertodtPlugin extends Plugin private void onAnimationChanged(final AnimationChanged event) { - if (!isInWintertodt) - { - return; - } - final Player local = client.getLocalPlayer(); if (event.getActor() != local) @@ -445,7 +478,7 @@ public class WintertodtPlugin extends Plugin { final ItemContainer container = event.getItemContainer(); - if (!isInWintertodt || container != client.getItemContainer(InventoryID.INVENTORY)) + if (container != client.getItemContainer(InventoryID.INVENTORY)) { return; }