Merge pull request #589 from devLotto/fix-lvlup-screenshots
Fix screenshot plugin not capturing Hunter levelups + naming files incorrectly
This commit is contained in:
@@ -57,6 +57,7 @@ public class WidgetID
|
||||
public static final int BA_DEFENDER_GROUP_ID = 487;
|
||||
public static final int BA_HEALER_GROUP_ID = 488;
|
||||
public static final int LEVEL_UP_GROUP_ID = 233;
|
||||
public static final int HUNTER_LEVEL_UP_GROUP_ID = 193;
|
||||
public static final int QUEST_COMPLETED_GROUP_ID = 277;
|
||||
public static final int CLUE_SCROLL_REWARD_GROUP_ID = 73;
|
||||
public static final int BARROWS_REWARD_GROUP_ID = 155;
|
||||
|
||||
@@ -162,6 +162,10 @@ public enum WidgetInfo
|
||||
LEVEL_UP_SKILL(WidgetID.LEVEL_UP_GROUP_ID, WidgetID.LevelUp.SKILL),
|
||||
LEVEL_UP_LEVEL(WidgetID.LEVEL_UP_GROUP_ID, WidgetID.LevelUp.LEVEL),
|
||||
|
||||
HUNTER_LEVEL_UP(WidgetID.HUNTER_LEVEL_UP_GROUP_ID, 0),
|
||||
HUNTER_LEVEL_UP_SKILL(WidgetID.HUNTER_LEVEL_UP_GROUP_ID, WidgetID.LevelUp.SKILL),
|
||||
HUNTER_LEVEL_UP_LEVEL(WidgetID.HUNTER_LEVEL_UP_GROUP_ID, WidgetID.LevelUp.LEVEL),
|
||||
|
||||
QUEST_COMPLETED(WidgetID.QUEST_COMPLETED_GROUP_ID, 0),
|
||||
QUEST_COMPLETED_NAME_TEXT(WidgetID.QUEST_COMPLETED_GROUP_ID, WidgetID.QuestCompleted.NAME_TEXT),
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ import net.runelite.api.events.WidgetHiddenChanged;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetID.BARROWS_REWARD_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.CLUE_SCROLL_REWARD_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.HUNTER_LEVEL_UP_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.LEVEL_UP_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.QUEST_COMPLETED_GROUP_ID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
@@ -249,22 +250,12 @@ public class ScreenshotPlugin extends Plugin
|
||||
{
|
||||
case LEVEL_UP_GROUP_ID:
|
||||
{
|
||||
Widget skillChild = client.getWidget(WidgetInfo.LEVEL_UP_SKILL);
|
||||
Widget levelChild = client.getWidget(WidgetInfo.LEVEL_UP_LEVEL);
|
||||
|
||||
if (skillChild == null || levelChild == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// "Your Firemaking level is now 9."
|
||||
String skillText = skillChild.getText();
|
||||
String levelText = levelChild.getText();
|
||||
|
||||
String skillName = skillText.substring(skillText.indexOf("a ") + 2, skillText.indexOf(" level."));
|
||||
String skillLevel = levelText.substring(levelText.lastIndexOf(" ") + 1, levelText.length() - 1);
|
||||
|
||||
fileName = skillName + " (" + skillLevel + ")";
|
||||
fileName = parseLevelUpWidget(WidgetInfo.LEVEL_UP_SKILL, WidgetInfo.LEVEL_UP_LEVEL);
|
||||
break;
|
||||
}
|
||||
case HUNTER_LEVEL_UP_GROUP_ID:
|
||||
{
|
||||
fileName = parseLevelUpWidget(WidgetInfo.HUNTER_LEVEL_UP_SKILL, WidgetInfo.HUNTER_LEVEL_UP_LEVEL);
|
||||
break;
|
||||
}
|
||||
case QUEST_COMPLETED_GROUP_ID:
|
||||
@@ -309,9 +300,36 @@ public class ScreenshotPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
if (fileName == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
takeScreenshot(fileName, config.displayDate());
|
||||
}
|
||||
|
||||
public String parseLevelUpWidget(WidgetInfo levelUpSkill, WidgetInfo levelUpLevel)
|
||||
{
|
||||
Widget skillChild = client.getWidget(levelUpSkill);
|
||||
Widget levelChild = client.getWidget(levelUpLevel);
|
||||
|
||||
if (skillChild == null || levelChild == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// "Congratulations, you just advanced a Firemaking level."
|
||||
String skillText = skillChild.getText();
|
||||
// "Your Firemaking level is now 9."
|
||||
String levelText = levelChild.getText();
|
||||
|
||||
String[] splitSkillName = skillText.split(" ");
|
||||
String skillName = splitSkillName[splitSkillName.length - 2];
|
||||
String skillLevel = levelText.substring(levelText.lastIndexOf(" ") + 1, levelText.length() - 1);
|
||||
|
||||
return skillName + "(" + skillLevel + ")";
|
||||
}
|
||||
|
||||
private void takeScreenshot(String fileName, boolean displayDate)
|
||||
{
|
||||
if (client.getGameState() == GameState.LOGIN_SCREEN)
|
||||
|
||||
@@ -35,7 +35,10 @@ import net.runelite.api.Client;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.WidgetHiddenChanged;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetID.HUNTER_LEVEL_UP_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetID.LEVEL_UP_GROUP_ID;
|
||||
import static net.runelite.api.widgets.WidgetInfo.HUNTER_LEVEL_UP_LEVEL;
|
||||
import static net.runelite.api.widgets.WidgetInfo.HUNTER_LEVEL_UP_SKILL;
|
||||
import static net.runelite.api.widgets.WidgetInfo.LEVEL_UP_LEVEL;
|
||||
import static net.runelite.api.widgets.WidgetInfo.LEVEL_UP_SKILL;
|
||||
import static net.runelite.api.widgets.WidgetInfo.PACK;
|
||||
@@ -133,6 +136,8 @@ public class ScreenshotPluginTest
|
||||
when(skillChild.getText()).thenReturn("Congratulations, you just advanced a Hitpoints level.");
|
||||
when(levelChild.getText()).thenReturn("Your Hitpoints are now 99.");
|
||||
|
||||
assertEquals("Hitpoints(99)", screenshotPlugin.parseLevelUpWidget(LEVEL_UP_SKILL, LEVEL_UP_LEVEL));
|
||||
|
||||
WidgetHiddenChanged event = new WidgetHiddenChanged();
|
||||
event.setWidget(widget);
|
||||
screenshotPlugin.hideWidgets(event);
|
||||
@@ -155,6 +160,56 @@ public class ScreenshotPluginTest
|
||||
when(skillChild.getText()).thenReturn("Congratulations, you just advanced a Firemaking level.");
|
||||
when(levelChild.getText()).thenReturn("Your Firemaking level is now 9.");
|
||||
|
||||
assertEquals("Firemaking(9)", screenshotPlugin.parseLevelUpWidget(LEVEL_UP_SKILL, LEVEL_UP_LEVEL));
|
||||
|
||||
WidgetHiddenChanged event = new WidgetHiddenChanged();
|
||||
event.setWidget(widget);
|
||||
screenshotPlugin.hideWidgets(event);
|
||||
|
||||
verify(overlayRenderer).requestScreenshot(Matchers.any(Consumer.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAttack()
|
||||
{
|
||||
Widget widget = mock(Widget.class);
|
||||
when(widget.getId()).thenReturn(PACK(LEVEL_UP_GROUP_ID, 0));
|
||||
|
||||
Widget skillChild = mock(Widget.class);
|
||||
when(client.getWidget(Matchers.eq(LEVEL_UP_SKILL))).thenReturn(skillChild);
|
||||
|
||||
Widget levelChild = mock(Widget.class);
|
||||
when(client.getWidget(Matchers.eq(LEVEL_UP_LEVEL))).thenReturn(levelChild);
|
||||
|
||||
when(skillChild.getText()).thenReturn("Congratulations, you just advanced an Attack level.");
|
||||
when(levelChild.getText()).thenReturn("Your Attack level is now 70.");
|
||||
|
||||
assertEquals("Attack(70)", screenshotPlugin.parseLevelUpWidget(LEVEL_UP_SKILL, LEVEL_UP_LEVEL));
|
||||
|
||||
WidgetHiddenChanged event = new WidgetHiddenChanged();
|
||||
event.setWidget(widget);
|
||||
screenshotPlugin.hideWidgets(event);
|
||||
|
||||
verify(overlayRenderer).requestScreenshot(Matchers.any(Consumer.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHunter()
|
||||
{
|
||||
Widget widget = mock(Widget.class);
|
||||
when(widget.getId()).thenReturn(PACK(HUNTER_LEVEL_UP_GROUP_ID, 0));
|
||||
|
||||
Widget skillChild = mock(Widget.class);
|
||||
when(client.getWidget(Matchers.eq(HUNTER_LEVEL_UP_SKILL))).thenReturn(skillChild);
|
||||
|
||||
Widget levelChild = mock(Widget.class);
|
||||
when(client.getWidget(Matchers.eq(HUNTER_LEVEL_UP_LEVEL))).thenReturn(levelChild);
|
||||
|
||||
when(skillChild.getText()).thenReturn("Congratulations, you just advanced a Hunter level.");
|
||||
when(levelChild.getText()).thenReturn("Your Hunter level is now 2.");
|
||||
|
||||
assertEquals("Hunter(2)", screenshotPlugin.parseLevelUpWidget(HUNTER_LEVEL_UP_SKILL, HUNTER_LEVEL_UP_LEVEL));
|
||||
|
||||
WidgetHiddenChanged event = new WidgetHiddenChanged();
|
||||
event.setWidget(widget);
|
||||
screenshotPlugin.hideWidgets(event);
|
||||
|
||||
Reference in New Issue
Block a user