Merge pull request #4255 from MagicfTail/kc-updater
ChatCommandsPlugin: Update boss kc when looking at RoW
This commit is contained in:
@@ -104,6 +104,7 @@ public class WidgetID
|
||||
public static final int CORP_DAMAGE = 13;
|
||||
public static final int DESTROY_ITEM_GROUP_ID = 584;
|
||||
public static final int VARROCK_MUSEUM_QUIZ_GROUP_ID = 533;
|
||||
public static final int KILL_LOGS_GROUP_ID = 549;
|
||||
|
||||
static class WorldMap
|
||||
{
|
||||
@@ -551,4 +552,12 @@ public class WidgetID
|
||||
static final int VARROCK_MUSEUM_SECOND_ANSWER = 30;
|
||||
static final int VARROCK_MUSEUM_THIRD_ANSWER = 31;
|
||||
}
|
||||
|
||||
static class KillLog
|
||||
{
|
||||
static final int TITLE = 3;
|
||||
static final int MONSTER = 13;
|
||||
static final int KILLS = 14;
|
||||
static final int STREAK = 15;
|
||||
}
|
||||
}
|
||||
@@ -354,7 +354,12 @@ public enum WidgetInfo
|
||||
VARROCK_MUSEUM_QUESTION(WidgetID.VARROCK_MUSEUM_QUIZ_GROUP_ID, WidgetID.VarrockMuseum.VARROCK_MUSEUM_QUESTION),
|
||||
VARROCK_MUSEUM_FIRST_ANSWER(WidgetID.VARROCK_MUSEUM_QUIZ_GROUP_ID, WidgetID.VarrockMuseum.VARROCK_MUSEUM_FIRST_ANSWER),
|
||||
VARROCK_MUSEUM_SECOND_ANSWER(WidgetID.VARROCK_MUSEUM_QUIZ_GROUP_ID, WidgetID.VarrockMuseum.VARROCK_MUSEUM_SECOND_ANSWER),
|
||||
VARROCK_MUSEUM_THIRD_ANSWER(WidgetID.VARROCK_MUSEUM_QUIZ_GROUP_ID, WidgetID.VarrockMuseum.VARROCK_MUSEUM_THIRD_ANSWER);
|
||||
VARROCK_MUSEUM_THIRD_ANSWER(WidgetID.VARROCK_MUSEUM_QUIZ_GROUP_ID, WidgetID.VarrockMuseum.VARROCK_MUSEUM_THIRD_ANSWER),
|
||||
|
||||
KILL_LOG_TITLE(WidgetID.KILL_LOGS_GROUP_ID, WidgetID.KillLog.TITLE),
|
||||
KILL_LOG_MONSTER(WidgetID.KILL_LOGS_GROUP_ID, WidgetID.KillLog.MONSTER),
|
||||
KILL_LOG_KILLS(WidgetID.KILL_LOGS_GROUP_ID, WidgetID.KillLog.KILLS),
|
||||
KILL_LOG_STREAK(WidgetID.KILL_LOGS_GROUP_ID, WidgetID.KillLog.STREAK);
|
||||
|
||||
private final int groupId;
|
||||
private final int childId;
|
||||
|
||||
@@ -42,8 +42,13 @@ import net.runelite.api.GameState;
|
||||
import net.runelite.api.ItemComposition;
|
||||
import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.SetMessage;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.vars.AccountType;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetID.KILL_LOGS_GROUP_ID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.chat.ChatColorType;
|
||||
import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
@@ -84,6 +89,8 @@ public class ChatCommandsPlugin extends Plugin implements ChatboxInputListener
|
||||
private final HiscoreClient hiscoreClient = new HiscoreClient();
|
||||
private final KillCountClient killCountClient = new KillCountClient();
|
||||
|
||||
private boolean logKills;
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@@ -259,6 +266,56 @@ public class ChatCommandsPlugin extends Plugin implements ChatboxInputListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
{
|
||||
if (!logKills)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logKills = false;
|
||||
|
||||
Widget title = client.getWidget(WidgetInfo.KILL_LOG_TITLE);
|
||||
Widget bossMonster = client.getWidget(WidgetInfo.KILL_LOG_MONSTER);
|
||||
Widget bossKills = client.getWidget(WidgetInfo.KILL_LOG_KILLS);
|
||||
|
||||
if (title == null || bossMonster == null || bossKills == null
|
||||
|| !"Boss Kill Log".equals(title.getText()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Widget[] bossChildren = bossMonster.getChildren();
|
||||
Widget[] killsChildren = bossKills.getChildren();
|
||||
|
||||
for (int i = 0; i < bossChildren.length; ++i)
|
||||
{
|
||||
Widget boss = bossChildren[i];
|
||||
Widget kill = killsChildren[i];
|
||||
|
||||
String bossName = boss.getText();
|
||||
int kc = Integer.parseInt(kill.getText().replace(",", ""));
|
||||
if (kc != getKc(bossName))
|
||||
{
|
||||
setKc(bossName, kc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded widget)
|
||||
{
|
||||
// don't load kc if in an instance, if the player is in another players poh
|
||||
// and reading their boss log
|
||||
if (widget.getGroupId() != KILL_LOGS_GROUP_ID || client.isInInstancedRegion())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
logKills = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onChatboxInput(ChatboxInput chatboxInput)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user