osrs-tools 2.5.3 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +270 -270
- package/dist/runescape/model/quest/QuestTool.d.ts.map +1 -1
- package/dist/runescape/model/quest/QuestTool.js +102 -4
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts +4 -0
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ANightAtTheTheatre.js +4 -0
- package/dist/runescape/model/quest/all/AtFirstLight.d.ts +4 -0
- package/dist/runescape/model/quest/all/AtFirstLight.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/AtFirstLight.js +4 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts +4 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/BeneathCursedSands.js +4 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts +4 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ChildrenOfTheSun.js +4 -0
- package/dist/runescape/model/quest/all/ColdWar.js +1 -1
- package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts +4 -0
- package/dist/runescape/model/quest/all/DeathOnTheIsle.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DeathOnTheIsle.js +4 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts +4 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DefenderOfVarrock.js +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.d.ts +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DesertTreasureI.js +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts +4 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/DesertTreasureIITheFallenEmpire.js +4 -0
- package/dist/runescape/model/quest/all/DragonSlayerI.js +1 -1
- package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts +4 -0
- package/dist/runescape/model/quest/all/ErnestTheChicken.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ErnestTheChicken.js +38 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts +4 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/EthicallyAcquiredAntiquities.js +4 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts +4 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/LandOfTheGoblins.js +4 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.d.ts +4 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/LearningTheRopes.js +37 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts +4 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MakingFriendsWithMyArm.js +25 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.d.ts +4 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MisthalinMystery.js +4 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts +4 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MonkeyMadnessI.js +4 -0
- package/dist/runescape/model/quest/all/MountainDaughter.d.ts +4 -0
- package/dist/runescape/model/quest/all/MountainDaughter.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MountainDaughter.js +25 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MourningsEndPartI.js +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts +4 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/MourningsEndPartII.js +4 -0
- package/dist/runescape/model/quest/all/PerilousMoons.d.ts +4 -0
- package/dist/runescape/model/quest/all/PerilousMoons.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PerilousMoons.js +4 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.d.ts +4 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PiratesTreasure.js +4 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts +4 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/PrinceAliRescue.js +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RagAndBoneManI.js +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts +4 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RagAndBoneManII.js +4 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts +4 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RomeoAndJuliet.js +25 -0
- package/dist/runescape/model/quest/all/RuneMysteries.d.ts +4 -0
- package/dist/runescape/model/quest/all/RuneMysteries.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/RuneMysteries.js +4 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts +4 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SecretsOfTheNorth.js +4 -0
- package/dist/runescape/model/quest/all/SheepShearer.d.ts +4 -0
- package/dist/runescape/model/quest/all/SheepShearer.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SheepShearer.js +4 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts +4 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ShieldOfArrav.js +4 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts +4 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SinsOfTheFather.js +4 -0
- package/dist/runescape/model/quest/all/SleepingGiants.d.ts +4 -0
- package/dist/runescape/model/quest/all/SleepingGiants.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/SleepingGiants.js +4 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts +4 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TaleOfTheRighteous.js +4 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts +4 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TearsOfGuthix.js +4 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.d.ts +4 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TempleOfIkov.js +4 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts +4 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TempleOfTheEye.js +4 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheCorsairCurse.js +25 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheCurseOfArrav.js +34 -0
- package/dist/runescape/model/quest/all/TheDigSite.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheDigSite.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheDigSite.js +4 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheEyesOfGlouphrie.js +4 -0
- package/dist/runescape/model/quest/all/TheFeud.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheFeud.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheFeud.js +4 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheGardenOfDeath.js +4 -0
- package/dist/runescape/model/quest/all/TheHandInTheSand.js +1 -1
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheHeartOfDarkness.js +4 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheIdesOfMilk.js +4 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts +4 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/ThePathOfGlouphrie.js +4 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheRestlessGhost.js +4 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts +4 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TheRibbitingTaleOfALilyPadLabourDispute.js +4 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.d.ts +4 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/TwilightsPromise.js +4 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts +4 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/WhileGuthixSleeps.js +4 -0
- package/dist/runescape/model/quest/all/WitchsPotion.d.ts +4 -0
- package/dist/runescape/model/quest/all/WitchsPotion.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/WitchsPotion.js +4 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts +4 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.d.ts.map +1 -0
- package/dist/runescape/model/quest/all/XMarksTheSpot.js +4 -0
- package/dist/runescape/model/quest/all/index.d.ts +47 -0
- package/dist/runescape/model/quest/all/index.d.ts.map +1 -1
- package/dist/runescape/model/quest/all/index.js +47 -0
- package/dist/runescape/model/slayer/index.d.ts +10 -10
- package/dist/runescape/model/slayer/index.d.ts.map +1 -1
- package/dist/runescape/model/slayer/index.js +8 -8
- package/dist/runescape/model/slayer/masters/index.d.ts +19 -19
- package/dist/runescape/model/slayer/masters/index.d.ts.map +1 -1
- package/dist/runescape/model/slayer/masters/index.js +20 -20
- package/dist/runescape/model/slayer/masters/registry.d.ts +1 -1
- package/dist/runescape/model/slayer/masters/registry.d.ts.map +1 -1
- package/dist/runescape/model/slayer/masters/registry.js +1 -1
- package/dist/runescape/model/slayer/masters.d.ts +8 -0
- package/dist/runescape/model/slayer/masters.d.ts.map +1 -0
- package/dist/runescape/model/slayer/masters.js +6 -0
- package/dist/runescape/model/slayer/tasks/index.d.ts +11 -11
- package/dist/runescape/model/slayer/tasks/index.js +11 -11
- package/package.json +96 -96
- package/public/assets/icons/diaries/Ardougne_Diary.png +0 -0
- package/public/assets/icons/diaries/Desert_Diary.png +0 -0
- package/public/assets/icons/diaries/Falador_Diary.png +0 -0
- package/public/assets/icons/diaries/Fremennik_Diary.png +0 -0
- package/public/assets/icons/diaries/Kandarin_Diary.png +0 -0
- package/public/assets/icons/diaries/Karamja_Diary.png +0 -0
- package/public/assets/icons/diaries/Morytania_Diary.png +0 -0
- package/public/assets/icons/diaries/Varrock_Diary.png +0 -0
- package/public/assets/icons/diaries/Wilderness_Diary.png +0 -0
- package/public/assets/icons/skills/Agility_icon.png +0 -0
- package/public/assets/icons/skills/Attack_icon.png +0 -0
- package/public/assets/icons/skills/Construction_icon.png +0 -0
- package/public/assets/icons/skills/Cooking_icon.png +0 -0
- package/public/assets/icons/skills/Crafting_icon.png +0 -0
- package/public/assets/icons/skills/Defence_icon.png +0 -0
- package/public/assets/icons/skills/Farming_icon.png +0 -0
- package/public/assets/icons/skills/Firemaking_icon.png +0 -0
- package/public/assets/icons/skills/Fishing_icon.png +0 -0
- package/public/assets/icons/skills/Fletching_icon.png +0 -0
- package/public/assets/icons/skills/Herblore_icon.png +0 -0
- package/public/assets/icons/skills/Hitpoints_icon.png +0 -0
- package/public/assets/icons/skills/Magic_icon.png +0 -0
- package/public/assets/icons/skills/Mining_icon.png +0 -0
- package/public/assets/icons/skills/Prayer_icon.png +0 -0
- package/public/assets/icons/skills/Ranged_icon.png +0 -0
- package/public/assets/icons/skills/Sailing_icon.png +0 -0
- package/public/assets/icons/skills/Slayer_icon.png +0 -0
- package/public/assets/icons/skills/Smithing_icon.png +0 -0
- package/public/assets/icons/skills/Strength_icon.png +0 -0
- package/public/assets/icons/skills/Thieving_icon.png +0 -0
- package/public/assets/icons/skills/Woodcutting_icon.png +0 -0
- package/public/assets/icons/tabs/Combat_Tab.png +0 -0
- package/public/assets/icons/tabs/Inventory_Tab.png +0 -0
- package/public/assets/icons/tabs/Magic_Tab.png +0 -0
- package/public/assets/icons/tabs/Prayer_Tab.png +0 -0
- package/public/assets/icons/tabs/Quest_Tab.png +0 -0
- package/public/assets/icons/tabs/Skills_Tab.png +0 -0
- package/public/assets/icons/ui/Bank.png +0 -0
- package/public/assets/icons/ui/Music.png +0 -0
- package/public/assets/icons/ui/Quest_Points.png +0 -0
- package/public/assets/icons/ui/Settings.png +0 -0
- package/dist/runescape/model/Item/ClueScrollRewards.js +0 -286
- package/dist/runescape/model/Item/all/StudiedChaps.js +0 -35
- package/dist/runescape/model/Item/models/YellowPartyhat.obj +0 -149
- package/dist/runescape/model/slayer/Masters.js +0 -101
- package/dist/runescape/tools/ClueScrollHelper.js +0 -103
- package/dist/runescape/utils/cache.js +0 -124
package/README.md
CHANGED
|
@@ -1,270 +1,270 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Refer to modern Node Packages. Update the Package.json to ONLY need the modern dependencies, reduce packages as much as possible.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# OSRS Tools
|
|
10
|
-
|
|
11
|
-
[](https://www.npmjs.com/package/osrs-tools)
|
|
12
|
-
[](https://www.npmjs.com/package/osrs-tools)
|
|
13
|
-
[](https://www.typescriptlang.org)
|
|
14
|
-
[](https://opensource.org/licenses/MIT)
|
|
15
|
-
[](https://nodejs.org)
|
|
16
|
-
[](https://codecov.io/gh/jamescer/osrs-tools)
|
|
17
|
-
|
|
18
|
-
> A modern TypeScript library for Old School RuneScape (OSRS) data and utilities. Built for developers creating tools, bots, web applications, and analytics around OSRS content.
|
|
19
|
-
|
|
20
|
-
📦 **Type-safe** 🚀 **Well-tested** 📚 **Documented** 🔄 **Actively maintained**
|
|
21
|
-
|
|
22
|
-
## Live Demo
|
|
23
|
-
|
|
24
|
-
Explore the project interactively on CodeSandbox:
|
|
25
|
-
|
|
26
|
-
[](https://codesandbox.io/p/sandbox/xtgp9k)
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Table of Contents
|
|
31
|
-
|
|
32
|
-
- [Installation](#installation)
|
|
33
|
-
- [Examples](#examples)
|
|
34
|
-
- [Development](#development)
|
|
35
|
-
- [Contributing](#contributing)
|
|
36
|
-
- [Support](#support)
|
|
37
|
-
- [License](#license)
|
|
38
|
-
|
|
39
|
-
## Installation
|
|
40
|
-
|
|
41
|
-
### Prerequisites
|
|
42
|
-
|
|
43
|
-
- Node.js 16.x or higher
|
|
44
|
-
- TypeScript 4.9+
|
|
45
|
-
|
|
46
|
-
### Package Installation
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm install osrs-tools
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
For account-related features (hiscores, stats):
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
npm install osrs-json-hiscores
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Examples
|
|
59
|
-
|
|
60
|
-
### Core Imports (Recommended)
|
|
61
|
-
|
|
62
|
-
The main `osrs-tools` export provides the most frequently used classes:
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
import {
|
|
66
|
-
QuestTool,
|
|
67
|
-
OsrsAccount,
|
|
68
|
-
ClueScrollHelper,
|
|
69
|
-
Item
|
|
70
|
-
} from 'osrs-tools';
|
|
71
|
-
|
|
72
|
-
// Use core API directly
|
|
73
|
-
const questTool = new QuestTool();
|
|
74
|
-
const account = OsrsAccount.fromJson({ name: 'Player123' });
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Subpackage Imports (Tree-Shakeable)
|
|
78
|
-
|
|
79
|
-
Import from subpackages for more granular control and better tree-shaking:
|
|
80
|
-
|
|
81
|
-
```typescript
|
|
82
|
-
// Quest module - access all quests and quest utilities
|
|
83
|
-
import { QuestTool, DragonSlayerI } from 'osrs-tools/quest';
|
|
84
|
-
|
|
85
|
-
// Slayer module - slayer masters and utilities
|
|
86
|
-
import { Duradel, SlayerMaster } from 'osrs-tools/slayer';
|
|
87
|
-
|
|
88
|
-
// Account & skills
|
|
89
|
-
import { OsrsAccount, Skill } from 'osrs-tools/account';
|
|
90
|
-
|
|
91
|
-
// Achievement diaries
|
|
92
|
-
import { Ardougne, DiaryName } from 'osrs-tools/diary';
|
|
93
|
-
|
|
94
|
-
// Tools & utilities
|
|
95
|
-
import { ClueScrollHelper, experience } from 'osrs-tools/tools';
|
|
96
|
-
import { cache, validation } from 'osrs-tools/utils';
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Quest System
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// Access a specific quest
|
|
103
|
-
import { DragonSlayerI } from 'osrs-tools/quest';
|
|
104
|
-
|
|
105
|
-
// Or get by name from QuestTool
|
|
106
|
-
import { QuestTool } from 'osrs-tools';
|
|
107
|
-
const dragonSlayer = QuestTool.getQuestByName('Dragon Slayer');
|
|
108
|
-
console.log(dragonSlayer.requirements);
|
|
109
|
-
|
|
110
|
-
// Check quest completion requirements
|
|
111
|
-
const questTool = new QuestTool();
|
|
112
|
-
questTool.setOsrsAccount(playerAccount);
|
|
113
|
-
const canComplete = questTool.canCompleteQuest(dragonSlayer);
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Slayer System
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
import { Duradel } from 'osrs-tools/slayer';
|
|
120
|
-
|
|
121
|
-
// Get master's task list
|
|
122
|
-
const tasks = Duradel.tasks;
|
|
123
|
-
|
|
124
|
-
// Get random assignment
|
|
125
|
-
const task = Duradel.getRandomTask();
|
|
126
|
-
console.log(task.name); // e.g., "Abyssal demons"
|
|
127
|
-
console.log(task.requirements); // Shows requirements
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Account Management
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
import { OsrsAccount } from 'osrs-tools/account';
|
|
134
|
-
|
|
135
|
-
// Create/load account
|
|
136
|
-
const account = OsrsAccount.fromJson({
|
|
137
|
-
name: 'Player123',
|
|
138
|
-
skills: {
|
|
139
|
-
attack: { level: 60 },
|
|
140
|
-
strength: { level: 55 },
|
|
141
|
-
defence: { level: 50 },
|
|
142
|
-
},
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Get skill levels
|
|
146
|
-
const attackLevel = account.getSkill('attack')?.level;
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### 3D Item Models
|
|
150
|
-
|
|
151
|
-
```typescript
|
|
152
|
-
import { yellowPartyhatModelPath } from 'osrs-tools';
|
|
153
|
-
|
|
154
|
-
console.log(yellowPartyhatModelPath);
|
|
155
|
-
// "osrs-tools/models/YellowPartyhat.obj"
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
- **Node.js**: resolve the shipped asset with `require.resolve(yellowPartyhatModelPath)` and read it with `fs.readFileSync(...)`.
|
|
159
|
-
- **Bundlers**: import the raw asset directly from `osrs-tools/models/YellowPartyhat.obj` or use a `?url` suffix if your bundler supports it.
|
|
160
|
-
|
|
161
|
-
### Documentation Links
|
|
162
|
-
|
|
163
|
-
- [Full API Documentation](https://github.com/jamescer/osrs-tools/wiki)
|
|
164
|
-
- [Type Definitions](https://github.com/jamescer/osrs-tools/blob/master/src/model/quest/types.ts)
|
|
165
|
-
- [Code Examples](https://github.com/jamescer/osrs-tools//examples)
|
|
166
|
-
|
|
167
|
-
## Development
|
|
168
|
-
|
|
169
|
-
### Local Setup
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
# Clone and setup
|
|
173
|
-
git clone https://github.com/jamescer/osrs-tools.git
|
|
174
|
-
cd osrs-tools
|
|
175
|
-
npm install
|
|
176
|
-
|
|
177
|
-
# Build and test
|
|
178
|
-
npm run build
|
|
179
|
-
npm test
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Available Scripts
|
|
183
|
-
|
|
184
|
-
| Command | Description |
|
|
185
|
-
| --------------- | ------------------------------ |
|
|
186
|
-
| `build` | Compile TypeScript to dist/ |
|
|
187
|
-
| `dev` | Watch mode compilation |
|
|
188
|
-
| `test` | Run test suite |
|
|
189
|
-
| `test:watch` | Run tests in watch mode |
|
|
190
|
-
| `test:coverage` | Generate coverage report |
|
|
191
|
-
| `lint` | Lint and fix code |
|
|
192
|
-
| `format` | Format code with Prettier |
|
|
193
|
-
|
|
194
|
-
### Project Structure
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
source/ # TypeScript source code
|
|
198
|
-
├── index.ts # Main entry point
|
|
199
|
-
├── runescape/
|
|
200
|
-
│ ├── model/
|
|
201
|
-
│ │ ├── account/ # Player account & skills
|
|
202
|
-
│ │ ├── diaries/ # Achievement diaries
|
|
203
|
-
│ │ ├── quest/ # Quest system
|
|
204
|
-
│ │ │ ├── all/ # Individual quest classes
|
|
205
|
-
│ │ │ └── index.ts # Quest module export
|
|
206
|
-
│ │ ├── slayer/ # Slayer system
|
|
207
|
-
│ │ ├── Item/ # Item models
|
|
208
|
-
│ │ └── npc/ # NPC data
|
|
209
|
-
│ ├── tools/ # Utility tools (ClueScrollHelper, experience calc, etc.)
|
|
210
|
-
│ ├── utils/ # Helper utilities (cache, validation, etc.)
|
|
211
|
-
│ └── errors.ts # Custom error types
|
|
212
|
-
└── examples/ # Usage examples
|
|
213
|
-
|
|
214
|
-
test/ # Jest test suite
|
|
215
|
-
└── unit/
|
|
216
|
-
├── account/
|
|
217
|
-
├── diaries/
|
|
218
|
-
├── quest/
|
|
219
|
-
├── slayer/
|
|
220
|
-
├── model/
|
|
221
|
-
├── tools/
|
|
222
|
-
└── utils/
|
|
223
|
-
|
|
224
|
-
dist/ # Compiled output (generated by build)
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
## Contributing
|
|
228
|
-
|
|
229
|
-
We welcome contributions! We use [Conventional Commits](https://www.conventionalcommits.org/).
|
|
230
|
-
|
|
231
|
-
### Getting Started
|
|
232
|
-
|
|
233
|
-
1. Fork and clone the repository
|
|
234
|
-
2. Create a branch (`feat/amazing-feature`)
|
|
235
|
-
3. Make your changes
|
|
236
|
-
4. Run tests (`npm test && npm run lint`)
|
|
237
|
-
5. Commit with conventional format:
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
feat: add quest requirement validation
|
|
241
|
-
fix: correct slayer task weights
|
|
242
|
-
docs: update API documentation
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
6. Push and open a Pull Request
|
|
246
|
-
|
|
247
|
-
### Guidelines
|
|
248
|
-
|
|
249
|
-
- Add tests for new features
|
|
250
|
-
- Update documentation for changes
|
|
251
|
-
- Follow existing code style
|
|
252
|
-
- Keep changes focused
|
|
253
|
-
|
|
254
|
-
## Support
|
|
255
|
-
|
|
256
|
-
Need help or want to contribute?
|
|
257
|
-
|
|
258
|
-
- [Report Issues](https://github.com/jamescer/osrs-tools/issues)
|
|
259
|
-
- [Request Features](https://github.com/jamescer/osrs-tools/issues)
|
|
260
|
-
- [Join Discussions](https://github.com/jamescer/osrs-tools/discussions)
|
|
261
|
-
|
|
262
|
-
## License
|
|
263
|
-
|
|
264
|
-
[MIT](./LICENSE) © James Cerniglia
|
|
265
|
-
|
|
266
|
-
## Credits
|
|
267
|
-
|
|
268
|
-
- **Author**: [James Cerniglia](mailto:jamesmcerniglia@gmail.com)
|
|
269
|
-
- **Contributors**: [View all contributors](https://github.com/jamescer/osrs-tools/graphs/contributors)
|
|
270
|
-
- **Data Source**: [Old School RuneScape Wiki](https://oldschool.runescape.wiki/)
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
Refer to modern Node Packages. Update the Package.json to ONLY need the modern dependencies, reduce packages as much as possible.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# OSRS Tools
|
|
10
|
+
|
|
11
|
+
[](https://www.npmjs.com/package/osrs-tools)
|
|
12
|
+
[](https://www.npmjs.com/package/osrs-tools)
|
|
13
|
+
[](https://www.typescriptlang.org)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://nodejs.org)
|
|
16
|
+
[](https://codecov.io/gh/jamescer/osrs-tools)
|
|
17
|
+
|
|
18
|
+
> A modern TypeScript library for Old School RuneScape (OSRS) data and utilities. Built for developers creating tools, bots, web applications, and analytics around OSRS content.
|
|
19
|
+
|
|
20
|
+
📦 **Type-safe** 🚀 **Well-tested** 📚 **Documented** 🔄 **Actively maintained**
|
|
21
|
+
|
|
22
|
+
## Live Demo
|
|
23
|
+
|
|
24
|
+
Explore the project interactively on CodeSandbox:
|
|
25
|
+
|
|
26
|
+
[](https://codesandbox.io/p/sandbox/xtgp9k)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Table of Contents
|
|
31
|
+
|
|
32
|
+
- [Installation](#installation)
|
|
33
|
+
- [Examples](#examples)
|
|
34
|
+
- [Development](#development)
|
|
35
|
+
- [Contributing](#contributing)
|
|
36
|
+
- [Support](#support)
|
|
37
|
+
- [License](#license)
|
|
38
|
+
|
|
39
|
+
## Installation
|
|
40
|
+
|
|
41
|
+
### Prerequisites
|
|
42
|
+
|
|
43
|
+
- Node.js 16.x or higher
|
|
44
|
+
- TypeScript 4.9+
|
|
45
|
+
|
|
46
|
+
### Package Installation
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install osrs-tools
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
For account-related features (hiscores, stats):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install osrs-json-hiscores
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Examples
|
|
59
|
+
|
|
60
|
+
### Core Imports (Recommended)
|
|
61
|
+
|
|
62
|
+
The main `osrs-tools` export provides the most frequently used classes:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
import {
|
|
66
|
+
QuestTool,
|
|
67
|
+
OsrsAccount,
|
|
68
|
+
ClueScrollHelper,
|
|
69
|
+
Item
|
|
70
|
+
} from 'osrs-tools';
|
|
71
|
+
|
|
72
|
+
// Use core API directly
|
|
73
|
+
const questTool = new QuestTool();
|
|
74
|
+
const account = OsrsAccount.fromJson({ name: 'Player123' });
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Subpackage Imports (Tree-Shakeable)
|
|
78
|
+
|
|
79
|
+
Import from subpackages for more granular control and better tree-shaking:
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
// Quest module - access all quests and quest utilities
|
|
83
|
+
import { QuestTool, DragonSlayerI } from 'osrs-tools/quest';
|
|
84
|
+
|
|
85
|
+
// Slayer module - slayer masters and utilities
|
|
86
|
+
import { Duradel, SlayerMaster } from 'osrs-tools/slayer';
|
|
87
|
+
|
|
88
|
+
// Account & skills
|
|
89
|
+
import { OsrsAccount, Skill } from 'osrs-tools/account';
|
|
90
|
+
|
|
91
|
+
// Achievement diaries
|
|
92
|
+
import { Ardougne, DiaryName } from 'osrs-tools/diary';
|
|
93
|
+
|
|
94
|
+
// Tools & utilities
|
|
95
|
+
import { ClueScrollHelper, experience } from 'osrs-tools/tools';
|
|
96
|
+
import { cache, validation } from 'osrs-tools/utils';
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Quest System
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
// Access a specific quest
|
|
103
|
+
import { DragonSlayerI } from 'osrs-tools/quest';
|
|
104
|
+
|
|
105
|
+
// Or get by name from QuestTool
|
|
106
|
+
import { QuestTool } from 'osrs-tools';
|
|
107
|
+
const dragonSlayer = QuestTool.getQuestByName('Dragon Slayer');
|
|
108
|
+
console.log(dragonSlayer.requirements);
|
|
109
|
+
|
|
110
|
+
// Check quest completion requirements
|
|
111
|
+
const questTool = new QuestTool();
|
|
112
|
+
questTool.setOsrsAccount(playerAccount);
|
|
113
|
+
const canComplete = questTool.canCompleteQuest(dragonSlayer);
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Slayer System
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
import { Duradel } from 'osrs-tools/slayer';
|
|
120
|
+
|
|
121
|
+
// Get master's task list
|
|
122
|
+
const tasks = Duradel.tasks;
|
|
123
|
+
|
|
124
|
+
// Get random assignment
|
|
125
|
+
const task = Duradel.getRandomTask();
|
|
126
|
+
console.log(task.name); // e.g., "Abyssal demons"
|
|
127
|
+
console.log(task.requirements); // Shows requirements
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Account Management
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
import { OsrsAccount } from 'osrs-tools/account';
|
|
134
|
+
|
|
135
|
+
// Create/load account
|
|
136
|
+
const account = OsrsAccount.fromJson({
|
|
137
|
+
name: 'Player123',
|
|
138
|
+
skills: {
|
|
139
|
+
attack: { level: 60 },
|
|
140
|
+
strength: { level: 55 },
|
|
141
|
+
defence: { level: 50 },
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// Get skill levels
|
|
146
|
+
const attackLevel = account.getSkill('attack')?.level;
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 3D Item Models
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
import { yellowPartyhatModelPath } from 'osrs-tools';
|
|
153
|
+
|
|
154
|
+
console.log(yellowPartyhatModelPath);
|
|
155
|
+
// "osrs-tools/models/YellowPartyhat.obj"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
- **Node.js**: resolve the shipped asset with `require.resolve(yellowPartyhatModelPath)` and read it with `fs.readFileSync(...)`.
|
|
159
|
+
- **Bundlers**: import the raw asset directly from `osrs-tools/models/YellowPartyhat.obj` or use a `?url` suffix if your bundler supports it.
|
|
160
|
+
|
|
161
|
+
### Documentation Links
|
|
162
|
+
|
|
163
|
+
- [Full API Documentation](https://github.com/jamescer/osrs-tools/wiki)
|
|
164
|
+
- [Type Definitions](https://github.com/jamescer/osrs-tools/blob/master/src/model/quest/types.ts)
|
|
165
|
+
- [Code Examples](https://github.com/jamescer/osrs-tools//examples)
|
|
166
|
+
|
|
167
|
+
## Development
|
|
168
|
+
|
|
169
|
+
### Local Setup
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Clone and setup
|
|
173
|
+
git clone https://github.com/jamescer/osrs-tools.git
|
|
174
|
+
cd osrs-tools
|
|
175
|
+
npm install
|
|
176
|
+
|
|
177
|
+
# Build and test
|
|
178
|
+
npm run build
|
|
179
|
+
npm test
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Available Scripts
|
|
183
|
+
|
|
184
|
+
| Command | Description |
|
|
185
|
+
| --------------- | ------------------------------ |
|
|
186
|
+
| `build` | Compile TypeScript to dist/ |
|
|
187
|
+
| `dev` | Watch mode compilation |
|
|
188
|
+
| `test` | Run test suite |
|
|
189
|
+
| `test:watch` | Run tests in watch mode |
|
|
190
|
+
| `test:coverage` | Generate coverage report |
|
|
191
|
+
| `lint` | Lint and fix code |
|
|
192
|
+
| `format` | Format code with Prettier |
|
|
193
|
+
|
|
194
|
+
### Project Structure
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
source/ # TypeScript source code
|
|
198
|
+
├── index.ts # Main entry point
|
|
199
|
+
├── runescape/
|
|
200
|
+
│ ├── model/
|
|
201
|
+
│ │ ├── account/ # Player account & skills
|
|
202
|
+
│ │ ├── diaries/ # Achievement diaries
|
|
203
|
+
│ │ ├── quest/ # Quest system
|
|
204
|
+
│ │ │ ├── all/ # Individual quest classes
|
|
205
|
+
│ │ │ └── index.ts # Quest module export
|
|
206
|
+
│ │ ├── slayer/ # Slayer system
|
|
207
|
+
│ │ ├── Item/ # Item models
|
|
208
|
+
│ │ └── npc/ # NPC data
|
|
209
|
+
│ ├── tools/ # Utility tools (ClueScrollHelper, experience calc, etc.)
|
|
210
|
+
│ ├── utils/ # Helper utilities (cache, validation, etc.)
|
|
211
|
+
│ └── errors.ts # Custom error types
|
|
212
|
+
└── examples/ # Usage examples
|
|
213
|
+
|
|
214
|
+
test/ # Jest test suite
|
|
215
|
+
└── unit/
|
|
216
|
+
├── account/
|
|
217
|
+
├── diaries/
|
|
218
|
+
├── quest/
|
|
219
|
+
├── slayer/
|
|
220
|
+
├── model/
|
|
221
|
+
├── tools/
|
|
222
|
+
└── utils/
|
|
223
|
+
|
|
224
|
+
dist/ # Compiled output (generated by build)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Contributing
|
|
228
|
+
|
|
229
|
+
We welcome contributions! We use [Conventional Commits](https://www.conventionalcommits.org/).
|
|
230
|
+
|
|
231
|
+
### Getting Started
|
|
232
|
+
|
|
233
|
+
1. Fork and clone the repository
|
|
234
|
+
2. Create a branch (`feat/amazing-feature`)
|
|
235
|
+
3. Make your changes
|
|
236
|
+
4. Run tests (`npm test && npm run lint`)
|
|
237
|
+
5. Commit with conventional format:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
feat: add quest requirement validation
|
|
241
|
+
fix: correct slayer task weights
|
|
242
|
+
docs: update API documentation
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
6. Push and open a Pull Request
|
|
246
|
+
|
|
247
|
+
### Guidelines
|
|
248
|
+
|
|
249
|
+
- Add tests for new features
|
|
250
|
+
- Update documentation for changes
|
|
251
|
+
- Follow existing code style
|
|
252
|
+
- Keep changes focused
|
|
253
|
+
|
|
254
|
+
## Support
|
|
255
|
+
|
|
256
|
+
Need help or want to contribute?
|
|
257
|
+
|
|
258
|
+
- [Report Issues](https://github.com/jamescer/osrs-tools/issues)
|
|
259
|
+
- [Request Features](https://github.com/jamescer/osrs-tools/issues)
|
|
260
|
+
- [Join Discussions](https://github.com/jamescer/osrs-tools/discussions)
|
|
261
|
+
|
|
262
|
+
## License
|
|
263
|
+
|
|
264
|
+
[MIT](./LICENSE) © James Cerniglia
|
|
265
|
+
|
|
266
|
+
## Credits
|
|
267
|
+
|
|
268
|
+
- **Author**: [James Cerniglia](mailto:jamesmcerniglia@gmail.com)
|
|
269
|
+
- **Contributors**: [View all contributors](https://github.com/jamescer/osrs-tools/graphs/contributors)
|
|
270
|
+
- **Data Source**: [Old School RuneScape Wiki](https://oldschool.runescape.wiki/)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestTool.d.ts","sourceRoot":"","sources":["../../../../source/runescape/model/quest/QuestTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"QuestTool.d.ts","sourceRoot":"","sources":["../../../../source/runescape/model/quest/QuestTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA+LhC;;;;;GAKG;AACH,cAAM,SAAS;IACb,OAAO,CAAC,WAAW,CAA0B;gBAEjC,OAAO,CAAC,EAAE,WAAW;IAIjC;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAQ1C;;;OAGG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,OAAO;WAmCvE,YAAY,IAAI,KAAK,EAAE;WAIvB,gBAAgB,IAAI,KAAK,EAAE;IAIzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA8MjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAUvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAQjC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA4BlC;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAiC3D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiC;IAE1D;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CA2EnD;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|