@opfr/quests 1.1.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.
Files changed (206) hide show
  1. package/assets/berry.webp +0 -0
  2. package/assets/success_COMMON.webp +0 -0
  3. package/assets/success_EPIC.webp +0 -0
  4. package/assets/success_LEGENDARY.webp +0 -0
  5. package/assets/success_MYTHIC.webp +0 -0
  6. package/assets/success_RARE.webp +0 -0
  7. package/assets/xp.webp +0 -0
  8. package/dist/canvas.d.ts +9 -0
  9. package/dist/canvas.d.ts.map +1 -0
  10. package/dist/canvas.js +102 -0
  11. package/dist/canvas.js.map +1 -0
  12. package/dist/class/crewBaseQuest.d.ts +14 -0
  13. package/dist/class/crewBaseQuest.d.ts.map +1 -0
  14. package/dist/class/crewBaseQuest.js +70 -0
  15. package/dist/class/crewBaseQuest.js.map +1 -0
  16. package/dist/class/userBaseQuest.d.ts +20 -0
  17. package/dist/class/userBaseQuest.d.ts.map +1 -0
  18. package/dist/class/userBaseQuest.js +100 -0
  19. package/dist/class/userBaseQuest.js.map +1 -0
  20. package/dist/constants.d.ts +5 -0
  21. package/dist/constants.d.ts.map +1 -0
  22. package/dist/constants.js +13 -0
  23. package/dist/constants.js.map +1 -0
  24. package/dist/events/callbacks.d.ts +4 -0
  25. package/dist/events/callbacks.d.ts.map +1 -0
  26. package/dist/events/callbacks.js +53 -0
  27. package/dist/events/callbacks.js.map +1 -0
  28. package/dist/events/event.d.ts +7 -0
  29. package/dist/events/event.d.ts.map +1 -0
  30. package/dist/events/event.js +12 -0
  31. package/dist/events/event.js.map +1 -0
  32. package/dist/events/index.d.ts +3 -0
  33. package/dist/events/index.d.ts.map +1 -0
  34. package/dist/events/index.js +10 -0
  35. package/dist/events/index.js.map +1 -0
  36. package/dist/events/types.d.ts +5 -0
  37. package/dist/events/types.d.ts.map +1 -0
  38. package/dist/events/types.js +2 -0
  39. package/dist/events/types.js.map +1 -0
  40. package/dist/index.d.ts +6 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.es.js +5189 -0
  43. package/dist/index.js +5 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/index.umd.js +4 -0
  46. package/dist/quests/alcohols.d.ts +224 -0
  47. package/dist/quests/alcohols.d.ts.map +1 -0
  48. package/dist/quests/alcohols.js +325 -0
  49. package/dist/quests/alcohols.js.map +1 -0
  50. package/dist/quests/background.d.ts +34 -0
  51. package/dist/quests/background.d.ts.map +1 -0
  52. package/dist/quests/background.js +45 -0
  53. package/dist/quests/background.js.map +1 -0
  54. package/dist/quests/berry.d.ts +60 -0
  55. package/dist/quests/berry.d.ts.map +1 -0
  56. package/dist/quests/berry.js +75 -0
  57. package/dist/quests/berry.js.map +1 -0
  58. package/dist/quests/bet.d.ts +84 -0
  59. package/dist/quests/bet.d.ts.map +1 -0
  60. package/dist/quests/bet.js +109 -0
  61. package/dist/quests/bet.js.map +1 -0
  62. package/dist/quests/birthday.d.ts +14 -0
  63. package/dist/quests/birthday.d.ts.map +1 -0
  64. package/dist/quests/birthday.js +17 -0
  65. package/dist/quests/birthday.js.map +1 -0
  66. package/dist/quests/botPing.d.ts +17 -0
  67. package/dist/quests/botPing.d.ts.map +1 -0
  68. package/dist/quests/botPing.js +20 -0
  69. package/dist/quests/botPing.js.map +1 -0
  70. package/dist/quests/characteristics.d.ts +310 -0
  71. package/dist/quests/characteristics.d.ts.map +1 -0
  72. package/dist/quests/characteristics.js +400 -0
  73. package/dist/quests/characteristics.js.map +1 -0
  74. package/dist/quests/craft.d.ts +170 -0
  75. package/dist/quests/craft.d.ts.map +1 -0
  76. package/dist/quests/craft.js +245 -0
  77. package/dist/quests/craft.js.map +1 -0
  78. package/dist/quests/crewCarpenter.d.ts +70 -0
  79. package/dist/quests/crewCarpenter.d.ts.map +1 -0
  80. package/dist/quests/crewCarpenter.js +95 -0
  81. package/dist/quests/crewCarpenter.js.map +1 -0
  82. package/dist/quests/crewDaily.d.ts +27 -0
  83. package/dist/quests/crewDaily.d.ts.map +1 -0
  84. package/dist/quests/crewDaily.js +39 -0
  85. package/dist/quests/crewDaily.js.map +1 -0
  86. package/dist/quests/crewDisintegration.d.ts +16 -0
  87. package/dist/quests/crewDisintegration.d.ts.map +1 -0
  88. package/dist/quests/crewDisintegration.js +19 -0
  89. package/dist/quests/crewDisintegration.js.map +1 -0
  90. package/dist/quests/crewLevel.d.ts +65 -0
  91. package/dist/quests/crewLevel.d.ts.map +1 -0
  92. package/dist/quests/crewLevel.js +80 -0
  93. package/dist/quests/crewLevel.js.map +1 -0
  94. package/dist/quests/crewMoney.d.ts +65 -0
  95. package/dist/quests/crewMoney.d.ts.map +1 -0
  96. package/dist/quests/crewMoney.js +80 -0
  97. package/dist/quests/crewMoney.js.map +1 -0
  98. package/dist/quests/crewSize.d.ts +65 -0
  99. package/dist/quests/crewSize.d.ts.map +1 -0
  100. package/dist/quests/crewSize.js +80 -0
  101. package/dist/quests/crewSize.js.map +1 -0
  102. package/dist/quests/crewVocal.d.ts +65 -0
  103. package/dist/quests/crewVocal.d.ts.map +1 -0
  104. package/dist/quests/crewVocal.js +90 -0
  105. package/dist/quests/crewVocal.js.map +1 -0
  106. package/dist/quests/draw.d.ts +55 -0
  107. package/dist/quests/draw.d.ts.map +1 -0
  108. package/dist/quests/draw.js +80 -0
  109. package/dist/quests/draw.js.map +1 -0
  110. package/dist/quests/edito.d.ts +17 -0
  111. package/dist/quests/edito.d.ts.map +1 -0
  112. package/dist/quests/edito.js +22 -0
  113. package/dist/quests/edito.js.map +1 -0
  114. package/dist/quests/everyone.d.ts +15 -0
  115. package/dist/quests/everyone.d.ts.map +1 -0
  116. package/dist/quests/everyone.js +18 -0
  117. package/dist/quests/everyone.js.map +1 -0
  118. package/dist/quests/games.d.ts +135 -0
  119. package/dist/quests/games.d.ts.map +1 -0
  120. package/dist/quests/games.js +220 -0
  121. package/dist/quests/games.js.map +1 -0
  122. package/dist/quests/index.d.ts +6 -0
  123. package/dist/quests/index.d.ts.map +1 -0
  124. package/dist/quests/index.js +14 -0
  125. package/dist/quests/index.js.map +1 -0
  126. package/dist/quests/items.d.ts +117 -0
  127. package/dist/quests/items.d.ts.map +1 -0
  128. package/dist/quests/items.js +172 -0
  129. package/dist/quests/items.js.map +1 -0
  130. package/dist/quests/joinCrew.d.ts +12 -0
  131. package/dist/quests/joinCrew.d.ts.map +1 -0
  132. package/dist/quests/joinCrew.js +15 -0
  133. package/dist/quests/joinCrew.js.map +1 -0
  134. package/dist/quests/level.d.ts +114 -0
  135. package/dist/quests/level.d.ts.map +1 -0
  136. package/dist/quests/level.js +145 -0
  137. package/dist/quests/level.js.map +1 -0
  138. package/dist/quests/premium.d.ts +16 -0
  139. package/dist/quests/premium.d.ts.map +1 -0
  140. package/dist/quests/premium.js +19 -0
  141. package/dist/quests/premium.js.map +1 -0
  142. package/dist/quests/raid.d.ts +55 -0
  143. package/dist/quests/raid.d.ts.map +1 -0
  144. package/dist/quests/raid.js +80 -0
  145. package/dist/quests/raid.js.map +1 -0
  146. package/dist/quests/randomMessage.d.ts +55 -0
  147. package/dist/quests/randomMessage.d.ts.map +1 -0
  148. package/dist/quests/randomMessage.js +80 -0
  149. package/dist/quests/randomMessage.js.map +1 -0
  150. package/dist/quests/recipe.d.ts +60 -0
  151. package/dist/quests/recipe.d.ts.map +1 -0
  152. package/dist/quests/recipe.js +86 -0
  153. package/dist/quests/recipe.js.map +1 -0
  154. package/dist/quests/report.d.ts +15 -0
  155. package/dist/quests/report.d.ts.map +1 -0
  156. package/dist/quests/report.js +20 -0
  157. package/dist/quests/report.js.map +1 -0
  158. package/dist/quests/sendMessage.d.ts +60 -0
  159. package/dist/quests/sendMessage.d.ts.map +1 -0
  160. package/dist/quests/sendMessage.js +85 -0
  161. package/dist/quests/sendMessage.js.map +1 -0
  162. package/dist/quests/shop.d.ts +61 -0
  163. package/dist/quests/shop.d.ts.map +1 -0
  164. package/dist/quests/shop.js +86 -0
  165. package/dist/quests/shop.js.map +1 -0
  166. package/dist/quests/timeInVoice.d.ts +60 -0
  167. package/dist/quests/timeInVoice.d.ts.map +1 -0
  168. package/dist/quests/timeInVoice.js +85 -0
  169. package/dist/quests/timeInVoice.js.map +1 -0
  170. package/dist/quests/title.d.ts +34 -0
  171. package/dist/quests/title.d.ts.map +1 -0
  172. package/dist/quests/title.js +43 -0
  173. package/dist/quests/title.js.map +1 -0
  174. package/dist/quests/tournament.d.ts +234 -0
  175. package/dist/quests/tournament.d.ts.map +1 -0
  176. package/dist/quests/tournament.js +277 -0
  177. package/dist/quests/tournament.js.map +1 -0
  178. package/dist/quests/userCrew.d.ts +30 -0
  179. package/dist/quests/userCrew.d.ts.map +1 -0
  180. package/dist/quests/userCrew.js +36 -0
  181. package/dist/quests/userCrew.js.map +1 -0
  182. package/dist/quests/userDaily.d.ts +78 -0
  183. package/dist/quests/userDaily.d.ts.map +1 -0
  184. package/dist/quests/userDaily.js +113 -0
  185. package/dist/quests/userDaily.js.map +1 -0
  186. package/dist/quests/userXpToCrew.d.ts +60 -0
  187. package/dist/quests/userXpToCrew.d.ts.map +1 -0
  188. package/dist/quests/userXpToCrew.js +75 -0
  189. package/dist/quests/userXpToCrew.js.map +1 -0
  190. package/dist/quests/work.d.ts +55 -0
  191. package/dist/quests/work.d.ts.map +1 -0
  192. package/dist/quests/work.js +80 -0
  193. package/dist/quests/work.js.map +1 -0
  194. package/dist/quests/writeDifferentChat.d.ts +60 -0
  195. package/dist/quests/writeDifferentChat.d.ts.map +1 -0
  196. package/dist/quests/writeDifferentChat.js +85 -0
  197. package/dist/quests/writeDifferentChat.js.map +1 -0
  198. package/dist/types.d.ts +9 -0
  199. package/dist/types.d.ts.map +1 -0
  200. package/dist/types.js +2 -0
  201. package/dist/types.js.map +1 -0
  202. package/dist/utils.d.ts +11 -0
  203. package/dist/utils.d.ts.map +1 -0
  204. package/dist/utils.js +70 -0
  205. package/dist/utils.js.map +1 -0
  206. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"premium.js","sourceRoot":"","sources":["../../src/quests/premium.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAEL,2BAA2B,EAC3B,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACxC,IAAI,GAAG,UAAU,CAAC;IAClB,EAAE,GAAG,SAAS,CAAC;IACf,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,GAAG,oCAAoC,CAAC;IACnD,KAAK,GAAG,CAAC,CAAC;IACV,EAAE,GAAG,CAAC,CAAC;IAEP,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;IAC1B,OAAO,GAAG,cAAc,CAAC;IAEzB,MAAM,CAAU,YAAY,GAAG,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAE9D,KAAK,CAAC,WAAW,CACxB,EAAE,QAAQ,EAA8B,EACxC,MAAgB;QAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type ObjectId } from '@opfr/services';
2
+ import { UserBaseQuest } from '../class/userBaseQuest';
3
+ import type { QuestValidationDocumentMap } from '../types';
4
+ export declare class Finish10Raids extends UserBaseQuest {
5
+ name: string;
6
+ id: string;
7
+ rankId: import("@opfr/definitions").RankId.COMMON;
8
+ description: string;
9
+ berry: number;
10
+ xp: number;
11
+ static dependencies: "middleware/quest/USER_STATS_ECONOMY"[];
12
+ isValidated({ userStatsEconomy }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
13
+ }
14
+ export declare class Finish25Raids extends UserBaseQuest {
15
+ name: string;
16
+ id: string;
17
+ rankId: import("@opfr/definitions").RankId.RARE;
18
+ description: string;
19
+ berry: number;
20
+ xp: number;
21
+ static dependencies: "middleware/quest/USER_STATS_ECONOMY"[];
22
+ isValidated({ userStatsEconomy }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
23
+ }
24
+ export declare class Finish50Raids extends UserBaseQuest {
25
+ name: string;
26
+ id: string;
27
+ rankId: import("@opfr/definitions").RankId.EPIC;
28
+ description: string;
29
+ berry: number;
30
+ xp: number;
31
+ static dependencies: "middleware/quest/USER_STATS_ECONOMY"[];
32
+ isValidated({ userStatsEconomy }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
33
+ }
34
+ export declare class Finish100Raids extends UserBaseQuest {
35
+ name: string;
36
+ id: string;
37
+ rankId: import("@opfr/definitions").RankId.LEGENDARY;
38
+ description: string;
39
+ berry: number;
40
+ xp: number;
41
+ static dependencies: "middleware/quest/USER_STATS_ECONOMY"[];
42
+ isValidated({ userStatsEconomy }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
43
+ }
44
+ export declare class Finish200Raids extends UserBaseQuest {
45
+ name: string;
46
+ id: string;
47
+ rankId: import("@opfr/definitions").RankId.MYTHIC;
48
+ description: string;
49
+ berry: number;
50
+ xp: number;
51
+ titleId: string;
52
+ static dependencies: "middleware/quest/USER_STATS_ECONOMY"[];
53
+ isValidated({ userStatsEconomy }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
54
+ }
55
+ //# sourceMappingURL=raid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raid.d.ts","sourceRoot":"","sources":["../../src/quests/raid.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,aAAc,SAAQ,aAAa;IAC9C,IAAI,SAAwB;IAC5B,EAAE,SAAqB;IACvB,MAAM,4CAAmB;IACzB,WAAW,SAA4B;IACvC,KAAK,SAAU;IACf,EAAE,SAAS;IAEX,OAAgB,YAAY,0CAE1B;IAEa,WAAW,CACxB,EAAE,gBAAgB,EAAE,EAAE,0BAA0B,EAChD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,IAAI,SAA0B;IAC9B,EAAE,SAAqB;IACvB,MAAM,0CAAiB;IACvB,WAAW,SAA4B;IACvC,KAAK,SAAW;IAChB,EAAE,SAAU;IAEZ,OAAgB,YAAY,0CAE1B;IAEa,WAAW,CACxB,EAAE,gBAAgB,EAAE,EAAE,0BAA0B,EAChD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,IAAI,SAA2B;IAC/B,EAAE,SAAqB;IACvB,MAAM,0CAAiB;IACvB,WAAW,SAA4B;IACvC,KAAK,SAAa;IAClB,EAAE,SAAU;IAEZ,OAAgB,YAAY,0CAE1B;IAEa,WAAW,CACxB,EAAE,gBAAgB,EAAE,EAAE,0BAA0B,EAChD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,cAAe,SAAQ,aAAa;IAC/C,IAAI,SAA0B;IAC9B,EAAE,SAAsB;IACxB,MAAM,+CAAsB;IAC5B,WAAW,SAA6B;IACxC,KAAK,SAAc;IACnB,EAAE,SAAW;IAEb,OAAgB,YAAY,0CAE1B;IAEa,WAAW,CACxB,EAAE,gBAAgB,EAAE,EAAE,0BAA0B,EAChD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,cAAe,SAAQ,aAAa;IAC/C,IAAI,SAAqB;IACzB,EAAE,SAAsB;IACxB,MAAM,4CAAmB;IACzB,WAAW,SAA6B;IACxC,KAAK,SAAc;IACnB,EAAE,SAAW;IAEb,OAAO,SAA2B;IAElC,OAAgB,YAAY,0CAE1B;IAEa,WAAW,CACxB,EAAE,gBAAgB,EAAE,EAAE,0BAA0B,EAChD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB"}
@@ -0,0 +1,80 @@
1
+ import { RANKS } from '@opfr/definitions';
2
+ import { QUEST_MIDDLEWARE_EVENT_NAME, userStatsEconomyService, } from '@opfr/services';
3
+ import { UserBaseQuest } from '../class/userBaseQuest';
4
+ export class Finish10Raids extends UserBaseQuest {
5
+ name = 'Explorateur novice';
6
+ id = 'finish_10_raids';
7
+ rankId = RANKS.COMMON.id;
8
+ description = 'Réussir 10 expéditions';
9
+ berry = 50_000;
10
+ xp = 5_000;
11
+ static dependencies = [
12
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ECONOMY,
13
+ ];
14
+ async isValidated({ userStatsEconomy }, userId) {
15
+ const { raidFinishedCount } = userStatsEconomy ?? (await userStatsEconomyService.get(userId));
16
+ return raidFinishedCount >= 10;
17
+ }
18
+ }
19
+ export class Finish25Raids extends UserBaseQuest {
20
+ name = 'Aventurier intrépide';
21
+ id = 'finish_25_raids';
22
+ rankId = RANKS.RARE.id;
23
+ description = 'Réussir 25 expéditions';
24
+ berry = 200_000;
25
+ xp = 25_000;
26
+ static dependencies = [
27
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ECONOMY,
28
+ ];
29
+ async isValidated({ userStatsEconomy }, userId) {
30
+ const { raidFinishedCount } = userStatsEconomy ?? (await userStatsEconomyService.get(userId));
31
+ return raidFinishedCount >= 25;
32
+ }
33
+ }
34
+ export class Finish50Raids extends UserBaseQuest {
35
+ name = 'Conquérant des terres';
36
+ id = 'finish_50_raids';
37
+ rankId = RANKS.EPIC.id;
38
+ description = 'Réussir 50 expéditions';
39
+ berry = 1_000_000;
40
+ xp = 50_000;
41
+ static dependencies = [
42
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ECONOMY,
43
+ ];
44
+ async isValidated({ userStatsEconomy }, userId) {
45
+ const { raidFinishedCount } = userStatsEconomy ?? (await userStatsEconomyService.get(userId));
46
+ return raidFinishedCount >= 50;
47
+ }
48
+ }
49
+ export class Finish100Raids extends UserBaseQuest {
50
+ name = 'Pionnier des secrets';
51
+ id = 'finish_100_raids';
52
+ rankId = RANKS.LEGENDARY.id;
53
+ description = 'Réussir 100 expéditions';
54
+ berry = 10_000_000;
55
+ xp = 100_000;
56
+ static dependencies = [
57
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ECONOMY,
58
+ ];
59
+ async isValidated({ userStatsEconomy }, userId) {
60
+ const { raidFinishedCount } = userStatsEconomy ?? (await userStatsEconomyService.get(userId));
61
+ return raidFinishedCount >= 100;
62
+ }
63
+ }
64
+ export class Finish200Raids extends UserBaseQuest {
65
+ name = 'Légende vivante';
66
+ id = 'finish_200_raids';
67
+ rankId = RANKS.MYTHIC.id;
68
+ description = 'Réussir 200 expéditions';
69
+ berry = 50_000_000;
70
+ xp = 250_000;
71
+ titleId = 'title_Légende vivante';
72
+ static dependencies = [
73
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ECONOMY,
74
+ ];
75
+ async isValidated({ userStatsEconomy }, userId) {
76
+ const { raidFinishedCount } = userStatsEconomy ?? (await userStatsEconomyService.get(userId));
77
+ return raidFinishedCount >= 200;
78
+ }
79
+ }
80
+ //# sourceMappingURL=raid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raid.js","sourceRoot":"","sources":["../../src/quests/raid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type ObjectId } from '@opfr/services';
2
+ import { UserBaseQuest } from '../class/userBaseQuest';
3
+ import type { QuestValidationDocumentMap } from '../types';
4
+ export declare class RandomMessage20Quest extends UserBaseQuest {
5
+ name: string;
6
+ id: string;
7
+ rankId: import("@opfr/definitions").RankId.COMMON;
8
+ description: string;
9
+ berry: number;
10
+ xp: number;
11
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
12
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
13
+ }
14
+ export declare class RandomMessage50Quest extends UserBaseQuest {
15
+ name: string;
16
+ id: string;
17
+ rankId: import("@opfr/definitions").RankId.RARE;
18
+ description: string;
19
+ berry: number;
20
+ xp: number;
21
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
22
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
23
+ }
24
+ export declare class RandomMessage100Quest extends UserBaseQuest {
25
+ name: string;
26
+ id: string;
27
+ rankId: import("@opfr/definitions").RankId.EPIC;
28
+ description: string;
29
+ berry: number;
30
+ xp: number;
31
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
32
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
33
+ }
34
+ export declare class RandomMessage200Quest extends UserBaseQuest {
35
+ name: string;
36
+ id: string;
37
+ rankId: import("@opfr/definitions").RankId.LEGENDARY;
38
+ description: string;
39
+ berry: number;
40
+ xp: number;
41
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
42
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
43
+ }
44
+ export declare class RandomMessage500Quest extends UserBaseQuest {
45
+ name: string;
46
+ id: string;
47
+ rankId: import("@opfr/definitions").RankId.MYTHIC;
48
+ description: string;
49
+ berry: number;
50
+ xp: number;
51
+ titleId: string;
52
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
53
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
54
+ }
55
+ //# sourceMappingURL=randomMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"randomMessage.d.ts","sourceRoot":"","sources":["../../src/quests/randomMessage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,IAAI,SAAS;IACb,EAAE,SAAuB;IACzB,MAAM,4CAAmB;IACzB,WAAW,SAAsC;IACjD,KAAK,SAAU;IACf,EAAE,SAAS;IAEX,OAAgB,YAAY,6CAE1B;IAEa,WAAW,CACxB,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,IAAI,SAAgB;IACpB,EAAE,SAAuB;IACzB,MAAM,0CAAiB;IACvB,WAAW,SAAsC;IACjD,KAAK,SAAW;IAChB,EAAE,SAAU;IAEZ,OAAgB,YAAY,6CAE1B;IAEa,WAAW,CACxB,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,IAAI,SAAY;IAChB,EAAE,SAAwB;IAC1B,MAAM,0CAAiB;IACvB,WAAW,SAAuC;IAClD,KAAK,SAAa;IAClB,EAAE,SAAU;IAEZ,OAAgB,YAAY,6CAE1B;IAEa,WAAW,CACxB,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,IAAI,SAAgB;IACpB,EAAE,SAAwB;IAC1B,MAAM,+CAAsB;IAC5B,WAAW,SAAuC;IAClD,KAAK,SAAc;IACnB,EAAE,SAAW;IAEb,OAAgB,YAAY,6CAE1B;IAEa,WAAW,CACxB,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,IAAI,SAAa;IACjB,EAAE,SAAwB;IAC1B,MAAM,4CAAmB;IACzB,WAAW,SAAuC;IAClD,KAAK,SAAc;IACnB,EAAE,SAAW;IAEb,OAAO,SAA0B;IAEjC,OAAgB,YAAY,6CAE1B;IAEa,WAAW,CACxB,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB"}
@@ -0,0 +1,80 @@
1
+ import { RANKS } from '@opfr/definitions';
2
+ import { QUEST_MIDDLEWARE_EVENT_NAME, userStatsEngagementService, } from '@opfr/services';
3
+ import { UserBaseQuest } from '../class/userBaseQuest';
4
+ export class RandomMessage20Quest extends UserBaseQuest {
5
+ name = 'Vif';
6
+ id = 'random_message_20';
7
+ rankId = RANKS.COMMON.id;
8
+ description = 'Récupérer 20 Messages aléatoires';
9
+ berry = 50_000;
10
+ xp = 5_000;
11
+ static dependencies = [
12
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ENGAGEMENT,
13
+ ];
14
+ async isValidated({ userStatsEngagement }, userId) {
15
+ const { randomMessageClaimed } = userStatsEngagement ?? (await userStatsEngagementService.get(userId));
16
+ return randomMessageClaimed >= 20;
17
+ }
18
+ }
19
+ export class RandomMessage50Quest extends UserBaseQuest {
20
+ name = 'Lucky Luke';
21
+ id = 'random_message_50';
22
+ rankId = RANKS.RARE.id;
23
+ description = 'Récupérer 50 Messages aléatoires';
24
+ berry = 200_000;
25
+ xp = 25_000;
26
+ static dependencies = [
27
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ENGAGEMENT,
28
+ ];
29
+ async isValidated({ userStatsEngagement }, userId) {
30
+ const { randomMessageClaimed } = userStatsEngagement ?? (await userStatsEngagementService.get(userId));
31
+ return randomMessageClaimed >= 50;
32
+ }
33
+ }
34
+ export class RandomMessage100Quest extends UserBaseQuest {
35
+ name = 'Rapide';
36
+ id = 'random_message_100';
37
+ rankId = RANKS.EPIC.id;
38
+ description = 'Récupérer 100 Messages aléatoires';
39
+ berry = 1_000_000;
40
+ xp = 50_000;
41
+ static dependencies = [
42
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ENGAGEMENT,
43
+ ];
44
+ async isValidated({ userStatsEngagement }, userId) {
45
+ const { randomMessageClaimed } = userStatsEngagement ?? (await userStatsEngagementService.get(userId));
46
+ return randomMessageClaimed >= 100;
47
+ }
48
+ }
49
+ export class RandomMessage200Quest extends UserBaseQuest {
50
+ name = 'Et Furieux';
51
+ id = 'random_message_200';
52
+ rankId = RANKS.LEGENDARY.id;
53
+ description = 'Récupérer 200 Messages aléatoires';
54
+ berry = 10_000_000;
55
+ xp = 100_000;
56
+ static dependencies = [
57
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ENGAGEMENT,
58
+ ];
59
+ async isValidated({ userStatsEngagement }, userId) {
60
+ const { randomMessageClaimed } = userStatsEngagement ?? (await userStatsEngagementService.get(userId));
61
+ return randomMessageClaimed >= 200;
62
+ }
63
+ }
64
+ export class RandomMessage500Quest extends UserBaseQuest {
65
+ name = 'Ka-Chow';
66
+ id = 'random_message_500';
67
+ rankId = RANKS.MYTHIC.id;
68
+ description = 'Récupérer 500 Messages aléatoires';
69
+ berry = 50_000_000;
70
+ xp = 250_000;
71
+ titleId = 'title_Flash Mc Queen';
72
+ static dependencies = [
73
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_ENGAGEMENT,
74
+ ];
75
+ async isValidated({ userStatsEngagement }, userId) {
76
+ const { randomMessageClaimed } = userStatsEngagement ?? (await userStatsEngagementService.get(userId));
77
+ return randomMessageClaimed >= 500;
78
+ }
79
+ }
80
+ //# sourceMappingURL=randomMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"randomMessage.js","sourceRoot":"","sources":["../../src/quests/randomMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { type ObjectId } from '@opfr/services';
2
+ import { UserBaseQuest } from '../class/userBaseQuest';
3
+ import type { QuestValidationDocumentMap } from '../types';
4
+ export declare class Have1Recipe extends UserBaseQuest {
5
+ name: string;
6
+ id: string;
7
+ description: string;
8
+ berry: number;
9
+ xp: number;
10
+ rankId: import("@opfr/definitions").RankId.COMMON;
11
+ badge: import("@opfr/definitions").Badge;
12
+ static dependencies: "middleware/quest/USER_INVENTORY"[];
13
+ isValidated({ userInventory }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
14
+ }
15
+ export declare class Have5Recipe extends UserBaseQuest {
16
+ name: string;
17
+ id: string;
18
+ rankId: import("@opfr/definitions").RankId.RARE;
19
+ description: string;
20
+ berry: number;
21
+ xp: number;
22
+ badge: import("@opfr/definitions").Badge;
23
+ static dependencies: "middleware/quest/USER_INVENTORY"[];
24
+ isValidated({ userInventory }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
25
+ }
26
+ export declare class Have10Recipe extends UserBaseQuest {
27
+ name: string;
28
+ id: string;
29
+ rankId: import("@opfr/definitions").RankId.EPIC;
30
+ description: string;
31
+ berry: number;
32
+ xp: number;
33
+ badge: import("@opfr/definitions").Badge;
34
+ static dependencies: "middleware/quest/USER_INVENTORY"[];
35
+ isValidated({ userInventory }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
36
+ }
37
+ export declare class Have25Recipe extends UserBaseQuest {
38
+ name: string;
39
+ id: string;
40
+ rankId: import("@opfr/definitions").RankId.LEGENDARY;
41
+ description: string;
42
+ berry: number;
43
+ xp: number;
44
+ badge: import("@opfr/definitions").Badge;
45
+ static dependencies: "middleware/quest/USER_INVENTORY"[];
46
+ isValidated({ userInventory }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
47
+ }
48
+ export declare class Have100Recipe extends UserBaseQuest {
49
+ name: string;
50
+ id: string;
51
+ rankId: import("@opfr/definitions").RankId.MYTHIC;
52
+ description: string;
53
+ berry: number;
54
+ xp: number;
55
+ titleId: string;
56
+ badge: import("@opfr/definitions").Badge;
57
+ static dependencies: "middleware/quest/USER_INVENTORY"[];
58
+ isValidated({ userInventory }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
59
+ }
60
+ //# sourceMappingURL=recipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/quests/recipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAA+B,MAAM,gBAAgB,CAAC;AAG5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,WAAY,SAAQ,aAAa;IAC5C,IAAI,SAAkC;IACtC,EAAE,SAAmB;IACrB,WAAW,SAAqB;IAChC,KAAK,SAAU;IACf,EAAE,SAAS;IACX,MAAM,4CAAmB;IAEzB,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,sCAEjC;IAEI,WAAW,CACf,EAAE,aAAa,EAAE,EAAE,0BAA0B,EAC7C,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,WAAY,SAAQ,aAAa;IAC5C,IAAI,SAA0C;IAC9C,EAAE,SAAmB;IACrB,MAAM,0CAAiB;IACvB,WAAW,SAAsB;IACjC,KAAK,SAAW;IAChB,EAAE,SAAU;IAEZ,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,sCAEjC;IAEI,WAAW,CACf,EAAE,aAAa,EAAE,EAAE,0BAA0B,EAC7C,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,YAAa,SAAQ,aAAa;IAC7C,IAAI,SAA0C;IAC9C,EAAE,SAAoB;IACtB,MAAM,0CAAiB;IACvB,WAAW,SAAuB;IAClC,KAAK,SAAa;IAClB,EAAE,SAAU;IAEZ,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,sCAEjC;IAEI,WAAW,CACf,EAAE,aAAa,EAAE,EAAE,0BAA0B,EAC7C,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,YAAa,SAAQ,aAAa;IAC7C,IAAI,SAAkB;IACtB,EAAE,SAAoB;IACtB,MAAM,+CAAsB;IAC5B,WAAW,SAAuB;IAClC,KAAK,SAAa;IAClB,EAAE,SAAW;IAEb,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,sCAEjC;IAEI,WAAW,CACf,EAAE,aAAa,EAAE,EAAE,0BAA0B,EAC7C,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,IAAI,SAAiB;IACrB,EAAE,SAAqB;IACvB,MAAM,4CAAmB;IACzB,WAAW,SAAwB;IACnC,KAAK,SAAc;IACnB,EAAE,SAAW;IAEb,OAAO,SAAuB;IAC9B,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,sCAEjC;IAEI,WAAW,CACf,EAAE,aAAa,EAAE,EAAE,0BAA0B,EAC7C,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB"}
@@ -0,0 +1,86 @@
1
+ import { BadgeList, RANKS } from '@opfr/definitions';
2
+ import { QUEST_MIDDLEWARE_EVENT_NAME } from '@opfr/services';
3
+ import { userInventoryService } from '@opfr/services';
4
+ import { UserBaseQuest } from '../class/userBaseQuest';
5
+ export class Have1Recipe extends UserBaseQuest {
6
+ name = 'Ne fais rien exploser hein ?';
7
+ id = 'have_1_recipe';
8
+ description = 'Avoir 1 recette';
9
+ berry = 50_000;
10
+ xp = 5_000;
11
+ rankId = RANKS.COMMON.id;
12
+ badge = BadgeList.recipe;
13
+ static dependencies = [
14
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_INVENTORY,
15
+ ];
16
+ async isValidated({ userInventory }, userId) {
17
+ const { recipes } = userInventory ?? (await userInventoryService.get(userId));
18
+ return recipes.length >= 1;
19
+ }
20
+ }
21
+ export class Have5Recipe extends UserBaseQuest {
22
+ name = "C'est bien tu sais faire des pâtes !";
23
+ id = 'have_5_recipe';
24
+ rankId = RANKS.RARE.id;
25
+ description = 'Avoir 5 recettes';
26
+ berry = 200_000;
27
+ xp = 25_000;
28
+ badge = BadgeList.recipe;
29
+ static dependencies = [
30
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_INVENTORY,
31
+ ];
32
+ async isValidated({ userInventory }, userId) {
33
+ const { recipes } = userInventory ?? (await userInventoryService.get(userId));
34
+ return recipes.length >= 5;
35
+ }
36
+ }
37
+ export class Have10Recipe extends UserBaseQuest {
38
+ name = "Ta grand-mère t'as donné son livre ?";
39
+ id = 'have_10_recipe';
40
+ rankId = RANKS.EPIC.id;
41
+ description = 'Avoir 10 recettes';
42
+ berry = 1_000_000;
43
+ xp = 50_000;
44
+ badge = BadgeList.recipe;
45
+ static dependencies = [
46
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_INVENTORY,
47
+ ];
48
+ async isValidated({ userInventory }, userId) {
49
+ const { recipes } = userInventory ?? (await userInventoryService.get(userId));
50
+ return recipes.length >= 10;
51
+ }
52
+ }
53
+ export class Have25Recipe extends UserBaseQuest {
54
+ name = 'Let him cook';
55
+ id = 'have_25_recipe';
56
+ rankId = RANKS.LEGENDARY.id;
57
+ description = 'Avoir 25 recettes';
58
+ berry = 10_00_000;
59
+ xp = 100_000;
60
+ badge = BadgeList.recipe;
61
+ static dependencies = [
62
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_INVENTORY,
63
+ ];
64
+ async isValidated({ userInventory }, userId) {
65
+ const { recipes } = userInventory ?? (await userInventoryService.get(userId));
66
+ return recipes.length >= 25;
67
+ }
68
+ }
69
+ export class Have100Recipe extends UserBaseQuest {
70
+ name = 'Paul Bocuse';
71
+ id = 'have_100_recipe';
72
+ rankId = RANKS.MYTHIC.id;
73
+ description = 'Avoir 100 recettes';
74
+ berry = 50_000_000;
75
+ xp = 250_000;
76
+ titleId = 'title_Paul Bocuse';
77
+ badge = BadgeList.recipe;
78
+ static dependencies = [
79
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_INVENTORY,
80
+ ];
81
+ async isValidated({ userInventory }, userId) {
82
+ const { recipes } = userInventory ?? (await userInventoryService.get(userId));
83
+ return recipes.length >= 100;
84
+ }
85
+ }
86
+ //# sourceMappingURL=recipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/quests/recipe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type ObjectId } from '@opfr/services';
2
+ import { UserBaseQuest } from '../class/userBaseQuest';
3
+ import type { QuestValidationDocumentMap } from '../types';
4
+ export declare class Report extends UserBaseQuest {
5
+ name: string;
6
+ id: string;
7
+ rankId: import("@opfr/definitions").RankId.COMMON;
8
+ description: string;
9
+ berry: number;
10
+ xp: number;
11
+ secret: boolean;
12
+ static dependencies: "middleware/quest/USER_STATS_FLAGS"[];
13
+ isValidated({ userStatsFlags }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
14
+ }
15
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/quests/report.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,MAAO,SAAQ,aAAa;IACvC,IAAI,SAAa;IACjB,EAAE,SAAa;IACf,MAAM,4CAAmB;IACzB,WAAW,SAAkC;IAC7C,KAAK,SAAU;IACf,EAAE,SAAS;IACX,MAAM,UAAQ;IAEd,OAAuB,YAAY,wCAEjC;IAEI,WAAW,CACf,EAAE,cAAc,EAAE,EAAE,0BAA0B,EAC9C,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB"}
@@ -0,0 +1,20 @@
1
+ import { RANKS } from '@opfr/definitions';
2
+ import { QUEST_MIDDLEWARE_EVENT_NAME, userStatsFlagsService, } from '@opfr/services';
3
+ import { UserBaseQuest } from '../class/userBaseQuest';
4
+ export class Report extends UserBaseQuest {
5
+ name = 'Collabo';
6
+ id = 'collabo';
7
+ rankId = RANKS.COMMON.id;
8
+ description = 'Report une personne au staff';
9
+ berry = 10_000;
10
+ xp = 5_000;
11
+ secret = true;
12
+ static dependencies = [
13
+ QUEST_MIDDLEWARE_EVENT_NAME.USER_STATS_FLAGS,
14
+ ];
15
+ async isValidated({ userStatsFlags }, userId) {
16
+ const { reportedSomeone } = userStatsFlags ?? (await userStatsFlagsService.get(userId));
17
+ return reportedSomeone;
18
+ }
19
+ }
20
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/quests/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAEL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,MAAM,OAAO,MAAO,SAAQ,aAAa;IACvC,IAAI,GAAG,SAAS,CAAC;IACjB,EAAE,GAAG,SAAS,CAAC;IACf,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,GAAG,8BAA8B,CAAC;IAC7C,KAAK,GAAG,MAAM,CAAC;IACf,EAAE,GAAG,KAAK,CAAC;IACX,MAAM,GAAG,IAAI,CAAC;IAEP,MAAM,CAAU,YAAY,GAAG;QACpC,2BAA2B,CAAC,gBAAgB;KAC7C,CAAC;IAEF,KAAK,CAAC,WAAW,CACf,EAAE,cAAc,EAA8B,EAC9C,MAAgB;QAEhB,MAAM,EAAE,eAAe,EAAE,GACvB,cAAc,IAAI,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9D,OAAO,eAAe,CAAC;IACzB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { type ObjectId } from '@opfr/services';
2
+ import { UserBaseQuest } from '../class/userBaseQuest';
3
+ import type { QuestValidationDocumentMap } from '../types';
4
+ export declare class send100Messages extends UserBaseQuest {
5
+ name: string;
6
+ id: string;
7
+ rankId: import("@opfr/definitions").RankId.COMMON;
8
+ description: string;
9
+ berry: number;
10
+ xp: number;
11
+ badge: import("@opfr/definitions").Badge;
12
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
13
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
14
+ }
15
+ export declare class send1000Messages extends UserBaseQuest {
16
+ name: string;
17
+ id: string;
18
+ rankId: import("@opfr/definitions").RankId.RARE;
19
+ description: string;
20
+ berry: number;
21
+ xp: number;
22
+ badge: import("@opfr/definitions").Badge;
23
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
24
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
25
+ }
26
+ export declare class send25000Messages extends UserBaseQuest {
27
+ name: string;
28
+ id: string;
29
+ rankId: import("@opfr/definitions").RankId.EPIC;
30
+ description: string;
31
+ berry: number;
32
+ xp: number;
33
+ badge: import("@opfr/definitions").Badge;
34
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
35
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
36
+ }
37
+ export declare class send100000Messages extends UserBaseQuest {
38
+ name: string;
39
+ id: string;
40
+ rankId: import("@opfr/definitions").RankId.LEGENDARY;
41
+ description: string;
42
+ berry: number;
43
+ xp: number;
44
+ badge: import("@opfr/definitions").Badge;
45
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
46
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
47
+ }
48
+ export declare class send200000Messages extends UserBaseQuest {
49
+ name: string;
50
+ id: string;
51
+ rankId: import("@opfr/definitions").RankId.MYTHIC;
52
+ description: string;
53
+ berry: number;
54
+ xp: number;
55
+ badge: import("@opfr/definitions").Badge;
56
+ titleId: string;
57
+ static dependencies: "middleware/quest/USER_STATS_ENGAGEMENT"[];
58
+ isValidated({ userStatsEngagement }: QuestValidationDocumentMap, userId: ObjectId): Promise<boolean>;
59
+ }
60
+ //# sourceMappingURL=sendMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendMessage.d.ts","sourceRoot":"","sources":["../../src/quests/sendMessage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,eAAgB,SAAQ,aAAa;IAChD,IAAI,SAAwB;IAC5B,EAAE,SAAkB;IACpB,MAAM,4CAAmB;IACzB,WAAW,SAA0B;IACrC,KAAK,SAAU;IACf,EAAE,SAAS;IAEX,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,6CAEjC;IAEI,WAAW,CACf,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,IAAI,SAAyB;IAC7B,EAAE,SAAmB;IACrB,MAAM,0CAAiB;IACvB,WAAW,SAA4B;IACvC,KAAK,SAAW;IAChB,EAAE,SAAU;IAEZ,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,6CAEjC;IAEI,WAAW,CACf,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,IAAI,SAAsB;IAC1B,EAAE,SAAoB;IACtB,MAAM,0CAAiB;IACvB,WAAW,SAA6B;IACxC,KAAK,SAAa;IAClB,EAAE,SAAU;IAEZ,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,6CAEjC;IAEI,WAAW,CACf,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,IAAI,SAAoC;IACxC,EAAE,SAAqB;IACvB,MAAM,+CAAsB;IAC5B,WAAW,SAA8B;IACzC,KAAK,SAAc;IACnB,EAAE,SAAW;IAEb,KAAK,oCAAoB;IAEzB,OAAuB,YAAY,6CAEjC;IAEI,WAAW,CACf,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,IAAI,SAAwC;IAC5C,EAAE,SAAqB;IACvB,MAAM,4CAAmB;IACzB,WAAW,SAA8B;IACzC,KAAK,SAAe;IACpB,EAAE,SAAW;IAEb,KAAK,oCAAoB;IAEzB,OAAO,SAAoB;IAE3B,OAAuB,YAAY,6CAEjC;IAEI,WAAW,CACf,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,EACnD,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,OAAO,CAAC;CAKpB"}