Merge pull request #620 from runelite-extended/tobupdate
Updated ToB Plugin
This commit is contained in:
@@ -114,7 +114,7 @@ public class WidgetID
|
|||||||
public static final int VARROCK_MUSEUM_QUIZ_GROUP_ID = 533;
|
public static final int VARROCK_MUSEUM_QUIZ_GROUP_ID = 533;
|
||||||
public static final int KILL_LOGS_GROUP_ID = 549;
|
public static final int KILL_LOGS_GROUP_ID = 549;
|
||||||
public static final int DIARY_QUEST_GROUP_ID = 119;
|
public static final int DIARY_QUEST_GROUP_ID = 119;
|
||||||
public static final int THEATRE_OF_BLOOD_GROUP_ID = 23;
|
public static final int THEATRE_OF_BLOOD_GROUP_ID = 28;
|
||||||
public static final int WORLD_SWITCHER_GROUP_ID = 69;
|
public static final int WORLD_SWITCHER_GROUP_ID = 69;
|
||||||
public static final int DIALOG_OPTION_GROUP_ID = 219;
|
public static final int DIALOG_OPTION_GROUP_ID = 219;
|
||||||
public static final int DIALOG_PLAYER_GROUP_ID = 217;
|
public static final int DIALOG_PLAYER_GROUP_ID = 217;
|
||||||
@@ -122,6 +122,8 @@ public class WidgetID
|
|||||||
public static final int MINIGAME_TAB_ID = 76;
|
public static final int MINIGAME_TAB_ID = 76;
|
||||||
public static final int SPELLBOOK_GROUP_ID = 218;
|
public static final int SPELLBOOK_GROUP_ID = 218;
|
||||||
public static final int PVP_GROUP_ID = 90;
|
public static final int PVP_GROUP_ID = 90;
|
||||||
|
public static final int PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID = 364;
|
||||||
|
public static final int PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID = 50;
|
||||||
public static final int FISHING_TRAWLER_GROUP_ID = 366;
|
public static final int FISHING_TRAWLER_GROUP_ID = 366;
|
||||||
public static final int ZEAH_MESS_HALL_GROUP_ID = 235;
|
public static final int ZEAH_MESS_HALL_GROUP_ID = 235;
|
||||||
public static final int KOUREND_FAVOUR_GROUP_ID = 246;
|
public static final int KOUREND_FAVOUR_GROUP_ID = 246;
|
||||||
@@ -650,6 +652,12 @@ public class WidgetID
|
|||||||
static final int POINTS_INFOBOX = 6;
|
static final int POINTS_INFOBOX = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class TheatreOfBlood
|
||||||
|
{
|
||||||
|
static final int ORB_BOX = 10;
|
||||||
|
static final int BOSS_HEALTH_BAR = 35;
|
||||||
|
}
|
||||||
|
|
||||||
static class ExperienceDrop
|
static class ExperienceDrop
|
||||||
{
|
{
|
||||||
static final int DROP_1 = 15;
|
static final int DROP_1 = 15;
|
||||||
|
|||||||
@@ -436,6 +436,9 @@ public enum WidgetInfo
|
|||||||
|
|
||||||
RAIDS_POINTS_INFOBOX(WidgetID.RAIDS_GROUP_ID, WidgetID.Raids.POINTS_INFOBOX),
|
RAIDS_POINTS_INFOBOX(WidgetID.RAIDS_GROUP_ID, WidgetID.Raids.POINTS_INFOBOX),
|
||||||
|
|
||||||
|
THEATRE_OF_BLOOD_HEALTH_ORBS(WidgetID.THEATRE_OF_BLOOD_GROUP_ID, WidgetID.TheatreOfBlood.ORB_BOX),
|
||||||
|
THEATRE_OF_BLOOD_BOSS_HEALTH(WidgetID.THEATRE_OF_BLOOD_GROUP_ID, WidgetID.TheatreOfBlood.BOSS_HEALTH_BAR),
|
||||||
|
|
||||||
BLAST_FURNACE_COFFER(WidgetID.BLAST_FURNACE_GROUP_ID, 2),
|
BLAST_FURNACE_COFFER(WidgetID.BLAST_FURNACE_GROUP_ID, 2),
|
||||||
|
|
||||||
PYRAMID_PLUNDER_DATA(WidgetID.PYRAMID_PLUNDER_GROUP_ID, 2),
|
PYRAMID_PLUNDER_DATA(WidgetID.PYRAMID_PLUNDER_GROUP_ID, 2),
|
||||||
|
|||||||
@@ -430,7 +430,7 @@ public class LootTrackerPlugin extends Plugin
|
|||||||
eventType = "Chambers of Xeric";
|
eventType = "Chambers of Xeric";
|
||||||
container = client.getItemContainer(InventoryID.CHAMBERS_OF_XERIC_CHEST);
|
container = client.getItemContainer(InventoryID.CHAMBERS_OF_XERIC_CHEST);
|
||||||
break;
|
break;
|
||||||
case (WidgetID.THEATRE_OF_BLOOD_GROUP_ID):
|
case (WidgetID.THEATRE_OF_BLOOD_REWARD_GROUP_ID):
|
||||||
int region = WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID();
|
int region = WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID();
|
||||||
if (region != THEATRE_OF_BLOOD_REGION)
|
if (region != THEATRE_OF_BLOOD_REGION)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ public class StonedLootTrackerPlugin extends Plugin
|
|||||||
eventType = "Chambers of Xeric";
|
eventType = "Chambers of Xeric";
|
||||||
container = client.getItemContainer(InventoryID.CHAMBERS_OF_XERIC_CHEST);
|
container = client.getItemContainer(InventoryID.CHAMBERS_OF_XERIC_CHEST);
|
||||||
break;
|
break;
|
||||||
case (WidgetID.THEATRE_OF_BLOOD_GROUP_ID):
|
case (WidgetID.THEATRE_OF_BLOOD_REWARD_GROUP_ID):
|
||||||
int region = WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID();
|
int region = WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID();
|
||||||
if (region != THEATRE_OF_BLOOD_REGION)
|
if (region != THEATRE_OF_BLOOD_REGION)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,10 +13,15 @@ import lombok.AccessLevel;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
import net.runelite.api.events.*;
|
import net.runelite.api.events.*;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.Subscribe;
|
import net.runelite.client.eventbus.Subscribe;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
|
import net.runelite.api.widgets.Widget;
|
||||||
|
import net.runelite.api.widgets.WidgetID;
|
||||||
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.plugins.theatre.rooms.BloatHandler;
|
import net.runelite.client.plugins.theatre.rooms.BloatHandler;
|
||||||
@@ -28,6 +33,7 @@ import net.runelite.client.plugins.theatre.rooms.nylocas.NyloHandler;
|
|||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Theatre of Blood",
|
name = "Theatre of Blood",
|
||||||
@@ -65,6 +71,8 @@ public class TheatrePlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
|
private Widget widget = null;
|
||||||
|
|
||||||
@Getter(AccessLevel.PUBLIC)
|
@Getter(AccessLevel.PUBLIC)
|
||||||
@Inject
|
@Inject
|
||||||
private OverlayManager overlayManager;
|
private OverlayManager overlayManager;
|
||||||
@@ -173,6 +181,25 @@ public class TheatrePlugin extends Plugin
|
|||||||
verzikHandler.onAnimationChanged(event);
|
verzikHandler.onAnimationChanged(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public 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)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getGroupId() == WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID)
|
||||||
|
{
|
||||||
|
widget = client.getWidget(WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getGroupId() == WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID)
|
||||||
|
{
|
||||||
|
widget = client.getWidget(WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onGameTick(GameTick event)
|
public void onGameTick(GameTick event)
|
||||||
{
|
{
|
||||||
@@ -193,6 +220,95 @@ public class TheatrePlugin extends Plugin
|
|||||||
|
|
||||||
if (verzikHandler != null)
|
if (verzikHandler != null)
|
||||||
verzikHandler.onGameTick();
|
verzikHandler.onGameTick();
|
||||||
|
|
||||||
|
if (widget == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// recheck if the widget is still active
|
||||||
|
int p_id = WidgetInfo.TO_GROUP(widget.getId());
|
||||||
|
|
||||||
|
List<Widget> widgetList = new LinkedList<>();
|
||||||
|
|
||||||
|
if (p_id == WidgetID.PERFORMERS_FOR_THE_THEATRE_GROUPS_GROUP_ID)
|
||||||
|
{
|
||||||
|
Widget w = client.getWidget(p_id, 16);
|
||||||
|
if (w == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget[] ws = w.getStaticChildren();
|
||||||
|
for (Widget widget : ws)
|
||||||
|
{
|
||||||
|
Widget[] widgets = widget.getDynamicChildren();
|
||||||
|
if (widgets.length > 3)
|
||||||
|
{
|
||||||
|
widgetList.add(widgets[3]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (p_id == WidgetID.PERFORMERS_FOR_THE_THEATRE_PLAYERS_GROUP_ID)
|
||||||
|
{
|
||||||
|
Widget w1 = client.getWidget(p_id, 26);
|
||||||
|
|
||||||
|
if (w1 != null)
|
||||||
|
{
|
||||||
|
Widget[] dChildsAccepted = w1.getDynamicChildren();
|
||||||
|
|
||||||
|
if (dChildsAccepted.length > 2)
|
||||||
|
{
|
||||||
|
for (int i = 1; i < dChildsAccepted.length; i += 11)
|
||||||
|
{
|
||||||
|
if (!dChildsAccepted[i].getText().equals("-"))
|
||||||
|
{
|
||||||
|
widgetList.add(dChildsAccepted[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget w2 = client.getWidget(p_id, 41);
|
||||||
|
|
||||||
|
if (w2 != null)
|
||||||
|
{
|
||||||
|
Widget[] dChildsApplied = w2.getDynamicChildren();
|
||||||
|
|
||||||
|
if (dChildsApplied.length > 2)
|
||||||
|
{
|
||||||
|
for (int i = 1; i < dChildsApplied.length; i += 11)
|
||||||
|
{
|
||||||
|
if (!dChildsApplied[i].getText().equals("-"))
|
||||||
|
{
|
||||||
|
widgetList.add(dChildsApplied[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Widget w : widgetList)
|
||||||
|
{
|
||||||
|
String wtext = w.getText();
|
||||||
|
if (client.isFriended(wtext, false))
|
||||||
|
{
|
||||||
|
w.setTextColor(Color.green.getRGB());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < client.getIgnoreCount(); i++)
|
||||||
|
{
|
||||||
|
String name = client.getIgnores()[i].getName();
|
||||||
|
if (name.replace('\u00A0', ' ').equals(wtext))
|
||||||
|
{
|
||||||
|
w.setTextColor(Color.red.getRGB());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
widget = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public class WidgetOverlay extends Overlay
|
|||||||
.put(WidgetInfo.MULTICOMBAT_FIXED, OverlayPosition.BOTTOM_RIGHT)
|
.put(WidgetInfo.MULTICOMBAT_FIXED, OverlayPosition.BOTTOM_RIGHT)
|
||||||
.put(WidgetInfo.MULTICOMBAT_RESIZEABLE, OverlayPosition.CANVAS_TOP_RIGHT)
|
.put(WidgetInfo.MULTICOMBAT_RESIZEABLE, OverlayPosition.CANVAS_TOP_RIGHT)
|
||||||
.put(WidgetInfo.PYRAMID_PLUNDER_DATA, OverlayPosition.TOP_CENTER)
|
.put(WidgetInfo.PYRAMID_PLUNDER_DATA, OverlayPosition.TOP_CENTER)
|
||||||
|
.put(WidgetInfo.THEATRE_OF_BLOOD_HEALTH_ORBS, OverlayPosition.TOP_LEFT)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
public static Collection<WidgetOverlay> createOverlays(final Client client)
|
public static Collection<WidgetOverlay> createOverlays(final Client client)
|
||||||
|
|||||||
Reference in New Issue
Block a user