Merge pull request #5367 from Abextm/fix-diary-req

diaryreqs: Update scrollbar with new length
This commit is contained in:
Tomas Slusny
2018-09-07 16:17:34 +02:00
committed by GitHub
2 changed files with 24 additions and 1 deletions

View File

@@ -54,6 +54,15 @@ public final class ScriptID
*/ */
public static final int CLOSE_CHATBOX_INPUT = 299; public static final int CLOSE_CHATBOX_INPUT = 299;
/**
* Updates the Diary/Quest interface's scrollbar
* <ul>
* <li> int (boolean) Reset scroll position </li>
* <li> int Number of lines </li>
* </ul>
*/
public static final int DIARY_QUEST_UPDATE_LINECOUNT = 2523;
/** /**
* Initializes the chatbox input to use RuneLite callbacks * Initializes the chatbox input to use RuneLite callbacks
* <ul> * <ul>

View File

@@ -35,10 +35,12 @@ import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.ScriptID;
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 net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.plugins.achievementdiary.diaries.ArdougneDiaryRequirement; import net.runelite.client.plugins.achievementdiary.diaries.ArdougneDiaryRequirement;
@@ -66,6 +68,9 @@ public class DiaryRequirementsPlugin extends Plugin
@Inject @Inject
private Client client; private Client client;
@Inject
private ClientThread clientThread;
@Subscribe @Subscribe
public void onWidgetLoaded(final WidgetLoaded event) public void onWidgetLoaded(final WidgetLoaded event)
{ {
@@ -150,11 +155,20 @@ public class DiaryRequirementsPlugin extends Plugin
} }
} }
int lastLine = 0;
for (int i = 0; i < newRequirements.size() && i < children.length; i++) for (int i = 0; i < newRequirements.size() && i < children.length; i++)
{ {
Widget achievementWidget = children[i]; Widget achievementWidget = children[i];
achievementWidget.setText(newRequirements.get(i)); String text = newRequirements.get(i);
achievementWidget.setText(text);
if (text != null && !text.isEmpty())
{
lastLine = i;
}
} }
int numLines = lastLine;
clientThread.invokeLater(() -> client.runScript(ScriptID.DIARY_QUEST_UPDATE_LINECOUNT, 1, numLines));
} }
private List<String> getOriginalAchievements(Widget[] children) private List<String> getOriginalAchievements(Widget[] children)