chat commands: use script event for loading col log pets
This commit is contained in:
@@ -364,4 +364,7 @@ public final class ScriptID
|
|||||||
*/
|
*/
|
||||||
@ScriptArguments(integer = 6)
|
@ScriptArguments(integer = 6)
|
||||||
public static final int SETTINGS_ZOOM_SLIDER_ONDRAG = 3896;
|
public static final int SETTINGS_ZOOM_SLIDER_ONDRAG = 3896;
|
||||||
|
|
||||||
|
@ScriptArguments(integer = 6)
|
||||||
|
public static final int COLLECTION_DRAW_LIST = 2730;
|
||||||
}
|
}
|
||||||
@@ -56,18 +56,19 @@ import net.runelite.api.IndexedSprite;
|
|||||||
import net.runelite.api.ItemComposition;
|
import net.runelite.api.ItemComposition;
|
||||||
import net.runelite.api.MessageNode;
|
import net.runelite.api.MessageNode;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
|
import net.runelite.api.ScriptID;
|
||||||
import net.runelite.api.VarPlayer;
|
import net.runelite.api.VarPlayer;
|
||||||
import net.runelite.api.Varbits;
|
import net.runelite.api.Varbits;
|
||||||
import net.runelite.api.WorldType;
|
import net.runelite.api.WorldType;
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.api.events.GameStateChanged;
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
|
import net.runelite.api.events.ScriptPostFired;
|
||||||
import net.runelite.api.events.VarbitChanged;
|
import net.runelite.api.events.VarbitChanged;
|
||||||
import net.runelite.api.events.WidgetLoaded;
|
import net.runelite.api.events.WidgetLoaded;
|
||||||
import net.runelite.api.vars.AccountType;
|
import net.runelite.api.vars.AccountType;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import static net.runelite.api.widgets.WidgetID.ADVENTURE_LOG_ID;
|
import static net.runelite.api.widgets.WidgetID.ADVENTURE_LOG_ID;
|
||||||
import static net.runelite.api.widgets.WidgetID.COLLECTION_LOG_ID;
|
|
||||||
import static net.runelite.api.widgets.WidgetID.GENERIC_SCROLL_GROUP_ID;
|
import static net.runelite.api.widgets.WidgetID.GENERIC_SCROLL_GROUP_ID;
|
||||||
import static net.runelite.api.widgets.WidgetID.KILL_LOGS_GROUP_ID;
|
import static net.runelite.api.widgets.WidgetID.KILL_LOGS_GROUP_ID;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
@@ -155,7 +156,6 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
private boolean bossLogLoaded;
|
private boolean bossLogLoaded;
|
||||||
private boolean advLogLoaded;
|
private boolean advLogLoaded;
|
||||||
private boolean scrollInterfaceLoaded;
|
private boolean scrollInterfaceLoaded;
|
||||||
private boolean collectionLogLoaded;
|
|
||||||
private String pohOwner;
|
private String pohOwner;
|
||||||
private HiscoreEndpoint hiscoreEndpoint; // hiscore endpoint for current player
|
private HiscoreEndpoint hiscoreEndpoint; // hiscore endpoint for current player
|
||||||
private String lastBossKill;
|
private String lastBossKill;
|
||||||
@@ -599,39 +599,6 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (collectionLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName())))
|
|
||||||
{
|
|
||||||
collectionLogLoaded = false;
|
|
||||||
|
|
||||||
Widget collectionLogEntryHeader = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_HEADER);
|
|
||||||
if (collectionLogEntryHeader != null && collectionLogEntryHeader.getChildren() != null)
|
|
||||||
{
|
|
||||||
Widget entryTitle = collectionLogEntryHeader.getChild(COL_LOG_ENTRY_HEADER_TITLE_INDEX);
|
|
||||||
// Make sure that the player is looking in the All Pets tab of the collection log
|
|
||||||
if (entryTitle.getText().equals("All Pets"))
|
|
||||||
{
|
|
||||||
Widget collectionLogEntryItems = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_ITEMS);
|
|
||||||
if (collectionLogEntryItems != null && collectionLogEntryItems.getChildren() != null)
|
|
||||||
{
|
|
||||||
List<Pet> petList = new ArrayList<>();
|
|
||||||
for (Widget child : collectionLogEntryItems.getChildren())
|
|
||||||
{
|
|
||||||
if (child.getOpacity() == 0)
|
|
||||||
{
|
|
||||||
Pet pet = Pet.findPet(Text.removeTags(child.getName()));
|
|
||||||
if (pet != null)
|
|
||||||
{
|
|
||||||
petList.add(pet);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setPetList(petList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bossLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName())))
|
if (bossLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName())))
|
||||||
{
|
{
|
||||||
bossLogLoaded = false;
|
bossLogLoaded = false;
|
||||||
@@ -700,6 +667,47 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onScriptPostFired(ScriptPostFired scriptPostFired)
|
||||||
|
{
|
||||||
|
if (scriptPostFired.getScriptId() != ScriptID.COLLECTION_DRAW_LIST)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName()))
|
||||||
|
{
|
||||||
|
Widget collectionLogEntryHeader = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_HEADER);
|
||||||
|
if (collectionLogEntryHeader != null && collectionLogEntryHeader.getChildren() != null)
|
||||||
|
{
|
||||||
|
Widget entryTitle = collectionLogEntryHeader.getChild(COL_LOG_ENTRY_HEADER_TITLE_INDEX);
|
||||||
|
// Make sure that the player is looking in the All Pets tab of the collection log
|
||||||
|
if (entryTitle.getText().equals("All Pets"))
|
||||||
|
{
|
||||||
|
Widget collectionLogEntryItems = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_ITEMS);
|
||||||
|
if (collectionLogEntryItems != null && collectionLogEntryItems.getChildren() != null)
|
||||||
|
{
|
||||||
|
List<Pet> petList = new ArrayList<>();
|
||||||
|
for (Widget child : collectionLogEntryItems.getChildren())
|
||||||
|
{
|
||||||
|
if (child.getOpacity() == 0)
|
||||||
|
{
|
||||||
|
Pet pet = Pet.findPet(Text.removeTags(child.getName()));
|
||||||
|
if (pet != null)
|
||||||
|
{
|
||||||
|
petList.add(pet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setPetList(petList);
|
||||||
|
log.debug("Loaded {} pets", petList.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onWidgetLoaded(WidgetLoaded widget)
|
public void onWidgetLoaded(WidgetLoaded widget)
|
||||||
{
|
{
|
||||||
@@ -708,9 +716,6 @@ public class ChatCommandsPlugin extends Plugin
|
|||||||
case ADVENTURE_LOG_ID:
|
case ADVENTURE_LOG_ID:
|
||||||
advLogLoaded = true;
|
advLogLoaded = true;
|
||||||
break;
|
break;
|
||||||
case COLLECTION_LOG_ID:
|
|
||||||
collectionLogLoaded = true;
|
|
||||||
break;
|
|
||||||
case KILL_LOGS_GROUP_ID:
|
case KILL_LOGS_GROUP_ID:
|
||||||
bossLogLoaded = true;
|
bossLogLoaded = true;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -39,12 +39,13 @@ import static net.runelite.api.ChatMessageType.TRADE;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.MessageNode;
|
import net.runelite.api.MessageNode;
|
||||||
import net.runelite.api.Player;
|
import net.runelite.api.Player;
|
||||||
|
import net.runelite.api.ScriptID;
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
|
import net.runelite.api.events.ScriptPostFired;
|
||||||
import net.runelite.api.events.WidgetLoaded;
|
import net.runelite.api.events.WidgetLoaded;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import static net.runelite.api.widgets.WidgetID.ADVENTURE_LOG_ID;
|
import static net.runelite.api.widgets.WidgetID.ADVENTURE_LOG_ID;
|
||||||
import static net.runelite.api.widgets.WidgetID.COLLECTION_LOG_ID;
|
|
||||||
import static net.runelite.api.widgets.WidgetID.GENERIC_SCROLL_GROUP_ID;
|
import static net.runelite.api.widgets.WidgetID.GENERIC_SCROLL_GROUP_ID;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.chat.ChatCommandManager;
|
import net.runelite.client.chat.ChatCommandManager;
|
||||||
@@ -986,9 +987,8 @@ public class ChatCommandsPluginTest
|
|||||||
|
|
||||||
when(logEntryItemsWidget.getChildren()).thenReturn(logPetEntriesWidget);
|
when(logEntryItemsWidget.getChildren()).thenReturn(logPetEntriesWidget);
|
||||||
|
|
||||||
WidgetLoaded logEvent = new WidgetLoaded();
|
ScriptPostFired scriptPostFired = new ScriptPostFired(ScriptID.COLLECTION_DRAW_LIST);
|
||||||
logEvent.setGroupId(COLLECTION_LOG_ID);
|
chatCommandsPlugin.onScriptPostFired(scriptPostFired);
|
||||||
chatCommandsPlugin.onWidgetLoaded(logEvent);
|
|
||||||
|
|
||||||
chatCommandsPlugin.onGameTick(new GameTick());
|
chatCommandsPlugin.onGameTick(new GameTick());
|
||||||
|
|
||||||
@@ -1024,9 +1024,8 @@ public class ChatCommandsPluginTest
|
|||||||
|
|
||||||
when(logEntryItemsWidget.getChildren()).thenReturn(logPetEntriesWidget);
|
when(logEntryItemsWidget.getChildren()).thenReturn(logPetEntriesWidget);
|
||||||
|
|
||||||
WidgetLoaded logEvent = new WidgetLoaded();
|
ScriptPostFired scriptPostFired = new ScriptPostFired(ScriptID.COLLECTION_DRAW_LIST);
|
||||||
logEvent.setGroupId(COLLECTION_LOG_ID);
|
chatCommandsPlugin.onScriptPostFired(scriptPostFired);
|
||||||
chatCommandsPlugin.onWidgetLoaded(logEvent);
|
|
||||||
|
|
||||||
chatCommandsPlugin.onGameTick(new GameTick());
|
chatCommandsPlugin.onGameTick(new GameTick());
|
||||||
|
|
||||||
@@ -1062,9 +1061,8 @@ public class ChatCommandsPluginTest
|
|||||||
|
|
||||||
when(logEntryItemsWidget.getChildren()).thenReturn(logPetEntriesWidget);
|
when(logEntryItemsWidget.getChildren()).thenReturn(logPetEntriesWidget);
|
||||||
|
|
||||||
WidgetLoaded logEvent = new WidgetLoaded();
|
ScriptPostFired scriptPostFired = new ScriptPostFired(ScriptID.COLLECTION_DRAW_LIST);
|
||||||
logEvent.setGroupId(COLLECTION_LOG_ID);
|
chatCommandsPlugin.onScriptPostFired(scriptPostFired);
|
||||||
chatCommandsPlugin.onWidgetLoaded(logEvent);
|
|
||||||
|
|
||||||
chatCommandsPlugin.onGameTick(new GameTick());
|
chatCommandsPlugin.onGameTick(new GameTick());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user