Change Notifier to be injectable service
Move notify methods to Notifier and change it to be injectable Guice service. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -26,6 +26,7 @@ package net.runelite.client;
|
||||
|
||||
import com.google.common.escape.Escaper;
|
||||
import com.google.common.escape.Escapers;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.TrayIcon;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -35,7 +36,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
public class Notifier
|
||||
{
|
||||
private static enum OSType
|
||||
private enum OSType
|
||||
{
|
||||
Windows, MacOS, Linux, Other
|
||||
};
|
||||
@@ -74,14 +75,28 @@ public class Notifier
|
||||
log.debug("Detect OS: {}", DETECTED_OS);
|
||||
}
|
||||
|
||||
private final String appName;
|
||||
private final TrayIcon trayIcon;
|
||||
|
||||
public Notifier(final TrayIcon trayIcon)
|
||||
Notifier(final String appName, final TrayIcon trayIcon)
|
||||
{
|
||||
this.appName = appName;
|
||||
this.trayIcon = trayIcon;
|
||||
}
|
||||
|
||||
public void sendNotification(
|
||||
|
||||
public void notify(String message)
|
||||
{
|
||||
notify(message, TrayIcon.MessageType.NONE);
|
||||
}
|
||||
|
||||
public void notify(String message, TrayIcon.MessageType type)
|
||||
{
|
||||
sendNotification(appName, message, type, null);
|
||||
Toolkit.getDefaultToolkit().beep();
|
||||
}
|
||||
|
||||
private void sendNotification(
|
||||
final String title,
|
||||
final String message,
|
||||
final TrayIcon.MessageType type,
|
||||
|
||||
@@ -34,7 +34,6 @@ import java.awt.AWTException;
|
||||
import java.awt.Frame;
|
||||
import java.awt.Image;
|
||||
import java.awt.SystemTray;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.TrayIcon;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
@@ -118,7 +117,7 @@ public class RuneLite
|
||||
|
||||
private AccountSession accountSession;
|
||||
|
||||
private Notifier notifier;
|
||||
Notifier notifier;
|
||||
|
||||
static
|
||||
{
|
||||
@@ -186,7 +185,7 @@ public class RuneLite
|
||||
eventBus.register(chatMessageManager);
|
||||
|
||||
// Setup the notifier
|
||||
notifier = new Notifier(trayIcon);
|
||||
notifier = new Notifier(properties.getTitle(), trayIcon);
|
||||
|
||||
// Load the plugins, but does not start them yet.
|
||||
// This will initialize configuration
|
||||
@@ -409,17 +408,6 @@ public class RuneLite
|
||||
return trayIcon;
|
||||
}
|
||||
|
||||
public void notify(String message)
|
||||
{
|
||||
notify(message, TrayIcon.MessageType.NONE);
|
||||
}
|
||||
|
||||
public void notify(String message, TrayIcon.MessageType type)
|
||||
{
|
||||
notifier.sendNotification(properties.getTitle(), message, type, null);
|
||||
Toolkit.getDefaultToolkit().beep();
|
||||
}
|
||||
|
||||
public AccountSession getAccountSession()
|
||||
{
|
||||
return accountSession;
|
||||
|
||||
@@ -71,6 +71,12 @@ public class RuneliteModule extends AbstractModule
|
||||
return runelite.getGui();
|
||||
}
|
||||
|
||||
@Provides
|
||||
Notifier provideNotifier(RuneLite runeLite)
|
||||
{
|
||||
return runeLite.notifier;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
RuneliteConfig provideConfig(ConfigManager configManager)
|
||||
|
||||
@@ -25,6 +25,69 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.idlenotifier;
|
||||
|
||||
import static net.runelite.api.AnimationID.COOKING_FIRE;
|
||||
import static net.runelite.api.AnimationID.COOKING_RANGE;
|
||||
import static net.runelite.api.AnimationID.CRAFTING_GLASSBLOWING;
|
||||
import static net.runelite.api.AnimationID.FISHING_CAGE;
|
||||
import static net.runelite.api.AnimationID.FISHING_HARPOON;
|
||||
import static net.runelite.api.AnimationID.FISHING_KARAMBWAN;
|
||||
import static net.runelite.api.AnimationID.FISHING_NET;
|
||||
import static net.runelite.api.AnimationID.FISHING_POLE_CAST;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_BOW_CUTTING;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_MAGIC_LONGBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_MAGIC_SHORTBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_MAPLE_LONGBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_MAPLE_SHORTBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_NORMAL_LONGBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_NORMAL_SHORTBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_OAK_LONGBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_OAK_SHORTBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_WILLOW_LONGBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_WILLOW_SHORTBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_YEW_LONGBOW;
|
||||
import static net.runelite.api.AnimationID.FLETCHING_STRING_YEW_SHORTBOW;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_DIAMOND;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_EMERALD;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_JADE;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_OPAL;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_REDTOPAZ;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_RUBY;
|
||||
import static net.runelite.api.AnimationID.GEM_CUTTING_SAPPHIRE;
|
||||
import static net.runelite.api.AnimationID.HERBLORE_POTIONMAKING;
|
||||
import static net.runelite.api.AnimationID.IDLE;
|
||||
import static net.runelite.api.AnimationID.MAGIC_CHARGING_ORBS;
|
||||
import static net.runelite.api.AnimationID.MINING_ADAMANT_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_BLACK_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_BRONZE_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_DRAGON_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_DRAGON_PICKAXE_ORN;
|
||||
import static net.runelite.api.AnimationID.MINING_INFERNAL_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_IRON_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_MITHRIL_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_ADAMANT;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BLACK;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BRONZE;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_ORN;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_INFERNAL;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_IRON;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_MITHRIL;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_RUNE;
|
||||
import static net.runelite.api.AnimationID.MINING_MOTHERLODE_STEEL;
|
||||
import static net.runelite.api.AnimationID.MINING_RUNE_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.MINING_STEEL_PICKAXE;
|
||||
import static net.runelite.api.AnimationID.SMITHING_ANVIL;
|
||||
import static net.runelite.api.AnimationID.SMITHING_CANNONBALL;
|
||||
import static net.runelite.api.AnimationID.SMITHING_SMELTING;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_ADAMANT;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_BLACK;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_BRONZE;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_DRAGON;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_INFERNAL;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_IRON;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_MITHRIL;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_RUNE;
|
||||
import static net.runelite.api.AnimationID.WOODCUTTING_STEEL;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Provides;
|
||||
import java.time.Duration;
|
||||
@@ -33,12 +96,11 @@ import java.time.temporal.ChronoUnit;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Actor;
|
||||
import static net.runelite.api.AnimationID.*;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.events.AnimationChanged;
|
||||
import net.runelite.client.events.GameStateChanged;
|
||||
@@ -53,7 +115,7 @@ import net.runelite.client.ui.ClientUI;
|
||||
public class IdleNotifierPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
RuneLite runelite;
|
||||
Notifier notifier;
|
||||
|
||||
@Inject
|
||||
ClientUI gui;
|
||||
@@ -260,7 +322,7 @@ public class IdleNotifierPlugin extends Plugin
|
||||
}
|
||||
if (config.sendTrayNotification())
|
||||
{
|
||||
runelite.notify(message);
|
||||
notifier.notify(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,31 +25,11 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.volcanicmine;
|
||||
|
||||
import static java.lang.Math.abs;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.google.inject.Binder;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import static java.lang.Math.abs;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameObject;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.Region;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
@@ -59,10 +39,31 @@ import java.util.Map.Entry;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameObject;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.Prayer;
|
||||
import net.runelite.api.Query;
|
||||
import net.runelite.api.Region;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.api.queries.NPCQuery;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.events.ConfigChanged;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Volcanic mine helper"
|
||||
@@ -87,6 +88,9 @@ public class VolcanicMinePlugin extends Plugin
|
||||
@Inject
|
||||
RuneLite runeLite;
|
||||
|
||||
@Inject
|
||||
Notifier notifier;
|
||||
|
||||
@Inject
|
||||
VolcanicMineConfig config;
|
||||
|
||||
@@ -302,7 +306,7 @@ public class VolcanicMinePlugin extends Plugin
|
||||
}
|
||||
if (config.sendTrayNotification())
|
||||
{
|
||||
runeLite.notify(message);
|
||||
notifier.notify(message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.events.ChatMessage;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -46,7 +46,7 @@ import net.runelite.client.ui.overlay.Overlay;
|
||||
public class WoodcuttingPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
RuneLite runelite;
|
||||
Notifier notifier;
|
||||
|
||||
@Inject
|
||||
WoodcuttingOverlay overlay;
|
||||
@@ -91,7 +91,7 @@ public class WoodcuttingPlugin extends Plugin
|
||||
|
||||
if (event.getMessage().contains("A bird's nest falls out of the tree") && config.showNestNotification())
|
||||
{
|
||||
runelite.notify("A bird nest has spawned!");
|
||||
notifier.notify("A bird nest has spawned!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user