b9s Posted May 18, 2016 Share Posted May 18, 2016 (edited) Hey, I'm trying to make a bot for completing a quest. In the initial phase of the script I'd like to check if the quest is already started (or even completed), I try to do this in the following way: if (getQuests().isStarted(Quest.SHEEP_SHEARER)){ doSomething(); } However, when testing I found it returns false even though the quest IS started. Am I doing something wrong here or has something changed on either the API side or RS' side that makes it no longer work? P.S. Yes it is Sheep Shearer and I'm already in the testing phase ;) Edited May 18, 2016 by b9s Quote Link to comment Share on other sites More sharing options...
Token Posted May 18, 2016 Share Posted May 18, 2016 OSBot quest class has been broken for a long time but a few months ago it was reworked because the webwalker had to verify if the user can access certain quest areas such as Morytania. It will now cache the quests on the first attempt to generate a webwalking path. So the problem is either the actual usage of the class was restricted to internal only and the API methods were not fixed or the quests have not been cached. You may be able to enforce the quest caching either by calling Walking#webWalk or Tabs#openTab for Tabs.QUESTS. Quote Link to comment Share on other sites More sharing options...
Xerion Posted May 18, 2016 Share Posted May 18, 2016 (edited) The completion of quests are also registered as configs. If you only need the completion status of a few quests you can try to use configs instead. So for example for sheep shearer the config ID is 179. If the value is 1 it has started and if the value is 21 it's completed. Ideally Osbot should also use configs instead of their current system, but I can imagine that it can be tricky to get all the configs right. I have gathered a big list myself with most the configs for every quests, but cbf to share it here. Edited May 18, 2016 by Xerion Quote Link to comment Share on other sites More sharing options...