Tooltip Hider (#440)

* Tooltip Hider

Adds options for hiding certain tooltips to the mouse highlight plugin
This commit is contained in:
GROUNDBOI
2019-05-30 01:07:22 -04:00
committed by Ganom
parent 2a291f4021
commit 4fef4c7328
4 changed files with 109 additions and 2 deletions

View File

@@ -561,6 +561,7 @@ public class WidgetID
static final int SPELL_TEXT = 28;
static final int AUTO_RETALIATE = 29;
static final int SPECIAL_ATTACK_BAR = 34;
static final int TOOLTIP = 41;
}
static class VolcanicMine
@@ -886,6 +887,8 @@ public class WidgetID
static final int ANNAKARL_TELEPORT = 96;
static final int GHORROCK_TELEPORT = 97;
static final int EDGEVILLE_HOME_TELEPORT = 98;
static final int TOOLTIP = 188;
// LUNAR SPELLS
static final int LUNAR_HOME_TELEPORT = 99;

View File

@@ -324,6 +324,7 @@ public enum WidgetInfo
COMBAT_SPELL_TEXT(WidgetID.COMBAT_GROUP_ID, WidgetID.Combat.SPELL_TEXT),
COMBAT_AUTO_RETALIATE(WidgetID.COMBAT_GROUP_ID, WidgetID.Combat.AUTO_RETALIATE),
COMBAT_SPECIAL_ATTACK(WidgetID.COMBAT_GROUP_ID, WidgetID.Combat.SPECIAL_ATTACK_BAR),
COMBAT_TOOLTIP(WidgetID.COMBAT_GROUP_ID, WidgetID.Combat.TOOLTIP),
DIALOG_OPTION(WidgetID.DIALOG_OPTION_GROUP_ID, 0),
@@ -653,7 +654,7 @@ public enum WidgetInfo
SPELL_SPIN_FLAX(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.SPIN_FLAX),
SPELL_OURANIA_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.OURANIA_TELEPORT),
/* END OF LUNAR SPELL BOOK WIDGETS*/
SPELL_TOOLTIP(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.TOOLTIP),
/* ARCEUUS SPELL BOOK WIDGETS*/
SPELL_ARCEUUS_HOME_TELEPORT(WidgetID.SPELLBOOK_GROUP_ID, WidgetID.SpellBook.ARCEUUS_HOME_TELEPORT),
/* END OF ARCEUUS SPELL BOOK WIDGETS*/

View File

@@ -52,4 +52,16 @@ public interface MouseHighlightConfig extends Config
{
return true;
}
@ConfigItem(position = 2, keyName = "hideSpells", name = "Spellbook", description = "Hides vanilla client tooltips in the spellbook")
default boolean shouldHideSpells()
{
return false;
}
@ConfigItem(position = 3, keyName = "hideCombat", name = "Combat", description = "Hides vanilla client tooltips in the combat menu")
default boolean shouldHideCombat()
{
return false;
}
}

View File

@@ -26,7 +26,16 @@ package net.runelite.client.plugins.mousehighlight;
import com.google.inject.Provides;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.WidgetLoaded;
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.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.OverlayManager;
@@ -34,10 +43,15 @@ import net.runelite.client.ui.overlay.OverlayManager;
@PluginDescriptor(
name = "Mouse Tooltips",
description = "Render default actions as a tooltip",
tags = {"actions", "overlay"}
tags = {"actions", "overlay", "tooltip", "hide"}
)
public class MouseHighlightPlugin extends Plugin
{
@Inject
MouseHighlightConfig config;
@Inject
private Client client;
@Inject
private OverlayManager overlayManager;
@@ -53,12 +67,89 @@ public class MouseHighlightPlugin extends Plugin
@Override
protected void startUp() throws Exception
{
adjustTips();
overlayManager.add(overlay);
}
@Override
protected void shutDown() throws Exception
{
resetTips();
overlayManager.remove(overlay);
}
@Subscribe
public void onGameStateChanged(GameStateChanged event)
{
if (event.getGameState() == GameState.LOGGED_IN)
{
adjustTips();
}
}
@Subscribe
public void onWidgetLoaded(WidgetLoaded event)
{
if (event.getGroupId() == WidgetID.SPELLBOOK_GROUP_ID || event.getGroupId() == WidgetID.COMBAT_GROUP_ID)
{
adjustTips();
}
}
@Subscribe
public void onGameTick(GameTick event)
{
adjustTips();
}
private void adjustTips()
{
if (client.getGameState() != GameState.LOGGED_IN)
{
return;
}
try
{
setTipHidden(WidgetInfo.SPELL_TOOLTIP, config.shouldHideSpells());
setTipHidden(WidgetInfo.COMBAT_TOOLTIP, config.shouldHideCombat());
}
catch (Exception e)
{
//swallow
}
}
private void resetTips()
{
if (client.getGameState() != GameState.LOGGED_IN)
{
return;
}
try
{
setTipHidden(WidgetInfo.SPELL_TOOLTIP, false);
setTipHidden(WidgetInfo.COMBAT_TOOLTIP, false);
}
catch (Exception e)
{
//swallow
}
}
private void setTipHidden(WidgetInfo widgetInfo, boolean hidden)
{
Widget widget = client.getWidget(widgetInfo);
if (widget == null)
{
return;
}
widget.setHidden(hidden);
}
}