Rework rx eventbus implementation
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 <T> void post(Class<T> eventClass, Object event)
|
||||
{
|
||||
eventBus.post(event);
|
||||
eventBus.post(eventClass, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postDeferred(Object event)
|
||||
public <T> void postDeferred(Class<T> 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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ChatMessage, String> execute)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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> T getConfig(Class<T> 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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -1,38 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com>
|
||||
* 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<Class<?>, Relay<Object>> subjectList = new HashMap<>();
|
||||
private Map<Object, CompositeDisposable> subscriptionsMap = new HashMap<>();
|
||||
|
||||
<T> Observable<T> observableOfType(Class<T> eventClass);
|
||||
@NonNull
|
||||
private <T> Relay<Object> getSubject(Class<T> eventClass)
|
||||
{
|
||||
return subjectList.computeIfAbsent(eventClass, k -> PublishRelay.create().toSerialized());
|
||||
}
|
||||
|
||||
<T> Observable<Object> observableOfTypes(List<Class<T>> 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 <T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<Object> 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 <T> void post(Class<T> eventClass, @NonNull Object event)
|
||||
{
|
||||
getSubject(eventClass).accept(event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Object> bus = PublishRelay.create().toSerialized();
|
||||
|
||||
@Override
|
||||
public void post(Object event)
|
||||
{
|
||||
if (this.bus.hasObservers())
|
||||
{
|
||||
this.bus.accept(event);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> Observable<T> observableOfType(Class<T> 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 <T> Observable<Object> observableOfTypes(List<Class<T>> 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
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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<Integer, ItemStack> itemSpawns = ArrayListMultimap.create();
|
||||
private final Set<LocalPoint> 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)
|
||||
|
||||
@@ -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<ChatboxTextMenuInput> chatboxTextMenuInputProvider, Provider<ChatboxTextInput> 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()
|
||||
|
||||
@@ -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<Integer, String> 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)
|
||||
|
||||
@@ -38,7 +38,6 @@ public abstract class Plugin implements Module
|
||||
|
||||
public File file;
|
||||
public PluginClassLoader loader;
|
||||
private List<Disposable> 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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<WorldPoint> 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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<NavigationButton> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ClientThread> 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)
|
||||
|
||||
@@ -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<OverlayLayer, List<Overlay>> 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<OverlayMenuEntry> 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)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<Object> pendingEvents = new ConcurrentLinkedQueue<>();
|
||||
private final EventBus eventBus;
|
||||
private final Queue<Pair<Class, Object>> pendingEvents = new ConcurrentLinkedQueue<>();
|
||||
|
||||
@Inject
|
||||
private DeferredEventBus(EventBusImplementation eventBus)
|
||||
private DeferredEventBus(EventBus eventBus)
|
||||
{
|
||||
this.eventBus = eventBus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void post(Object object)
|
||||
public <T> void post(Class<T> 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<Class, Object> eventPair = pendingEvents.poll();
|
||||
if (eventPair != null)
|
||||
{
|
||||
eventBus.post(object);
|
||||
eventBus.post(eventPair.getKey(), eventPair.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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<PartyMember> 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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Class<? extends WebsocketMessage>> 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
|
||||
|
||||
Reference in New Issue
Block a user