You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

660 lines
9.6 KiB

  1. let events = require('../misc/events');
  2. const routerConfig = {
  3. signatures: {
  4. global: {
  5. clientConfig: {
  6. getClientConfig: {
  7. callback: true,
  8. data: []
  9. }
  10. },
  11. leaderboard: {
  12. requestList: {
  13. callback: true,
  14. data: [
  15. {
  16. key: 'offset',
  17. dataType: 'integer'
  18. },
  19. {
  20. key: 'prophecies',
  21. dataType: 'arrayOfStrings'
  22. }
  23. ]
  24. }
  25. },
  26. cons: {
  27. unzone: {
  28. callback: true,
  29. data: []
  30. }
  31. }
  32. },
  33. threadGlobal: {
  34. instancer: {
  35. clientAck: {
  36. callback: false,
  37. data: []
  38. }
  39. },
  40. rezoneManager: {
  41. clientAck: {
  42. callback: false,
  43. data: []
  44. }
  45. }
  46. },
  47. cpnMethods: {
  48. auth: {
  49. login: {
  50. callback: true,
  51. data: [
  52. {
  53. key: 'username',
  54. dataType: 'string'
  55. },
  56. {
  57. key: 'password',
  58. dataType: 'string'
  59. }
  60. ]
  61. },
  62. register: {
  63. callback: true,
  64. data: [
  65. {
  66. key: 'username',
  67. dataType: 'string'
  68. },
  69. {
  70. key: 'password',
  71. dataType: 'string'
  72. }
  73. ]
  74. },
  75. deleteCharacter: {
  76. callback: true,
  77. data: [
  78. {
  79. key: 'name',
  80. dataType: 'string'
  81. }
  82. ]
  83. },
  84. getSkinList: {
  85. callback: true,
  86. data: []
  87. },
  88. createCharacter: {
  89. callback: true,
  90. data: [
  91. {
  92. key: 'name',
  93. dataType: 'string'
  94. },
  95. {
  96. key: 'class',
  97. dataType: 'string'
  98. },
  99. {
  100. key: 'skinId',
  101. dataType: 'string'
  102. },
  103. {
  104. key: 'prophecies',
  105. dataType: 'arrayOfStrings'
  106. }
  107. ]
  108. },
  109. getCharacterList: {
  110. callback: true,
  111. data: []
  112. },
  113. getCharacter: {
  114. callback: true,
  115. data: [
  116. {
  117. key: 'name',
  118. dataType: 'string'
  119. }
  120. ]
  121. },
  122. play: {
  123. callback: true,
  124. data: [
  125. {
  126. key: 'name',
  127. dataType: 'string'
  128. }
  129. ]
  130. }
  131. },
  132. player: {
  133. move: {
  134. callback: false,
  135. data: [
  136. {
  137. key: 'x',
  138. dataType: 'integer'
  139. },
  140. {
  141. key: 'y',
  142. dataType: 'integer'
  143. },
  144. {
  145. key: 'priority',
  146. dataType: 'boolean',
  147. optional: true
  148. }
  149. ]
  150. },
  151. castSpell: {
  152. callback: false,
  153. data: [
  154. {
  155. key: 'priority',
  156. dataType: 'boolean'
  157. },
  158. {
  159. key: 'target',
  160. dataType: 'integerNullOrObject',
  161. spec: [
  162. {
  163. key: 'x',
  164. dataType: 'integer'
  165. },
  166. {
  167. key: 'y',
  168. dataType: 'integer'
  169. }
  170. ]
  171. },
  172. {
  173. key: 'spell',
  174. dataType: 'integer'
  175. },
  176. {
  177. key: 'self',
  178. dataType: 'boolean',
  179. optional: true
  180. }
  181. ]
  182. },
  183. performAction: {
  184. callback: 'deferred',
  185. data: [
  186. {
  187. key: 'cpn',
  188. dataType: 'string'
  189. },
  190. {
  191. key: 'method',
  192. dataType: 'string'
  193. },
  194. {
  195. key: 'data',
  196. dataType: 'object'
  197. }
  198. ]
  199. }
  200. },
  201. social: {
  202. chat: {
  203. callback: false,
  204. data: [
  205. {
  206. key: 'message',
  207. dataType: 'string'
  208. },
  209. {
  210. key: 'type',
  211. dataType: 'string',
  212. optional: true
  213. },
  214. {
  215. key: 'subType',
  216. dataType: 'stringOrNull',
  217. optional: true
  218. },
  219. {
  220. key: 'item',
  221. dataType: 'object',
  222. optional: true
  223. }
  224. ]
  225. },
  226. getInvite: {
  227. callback: false,
  228. data: [
  229. {
  230. key: 'targetId',
  231. dataType: 'integer'
  232. }
  233. ]
  234. },
  235. acceptInvite: {
  236. callback: false,
  237. data: [
  238. {
  239. key: 'targetId',
  240. dataType: 'integer'
  241. }
  242. ]
  243. },
  244. declineInvite: {
  245. callback: false,
  246. data: [
  247. {
  248. key: 'targetId',
  249. dataType: 'integer'
  250. }
  251. ]
  252. },
  253. removeFromParty: {
  254. callback: false,
  255. data: [
  256. {
  257. key: 'id',
  258. dataType: 'integer'
  259. }
  260. ]
  261. },
  262. leaveParty: {
  263. callback: false,
  264. data: []
  265. }
  266. }
  267. },
  268. threadCpnMethods: {
  269. dialogue: {
  270. talk: {
  271. callback: false,
  272. data: [
  273. {
  274. key: 'target',
  275. dataType: 'integerOrString'
  276. },
  277. {
  278. key: 'state',
  279. dataType: 'numberOrString'
  280. }
  281. ]
  282. }
  283. },
  284. gatherer: {
  285. gather: {
  286. callback: false,
  287. data: [
  288. {
  289. key: 'targetId',
  290. dataType: 'integer'
  291. }
  292. ]
  293. }
  294. },
  295. quests: {
  296. complete: {
  297. callback: false,
  298. data: [
  299. {
  300. key: 'questId',
  301. dataType: 'integer'
  302. }
  303. ]
  304. }
  305. },
  306. player: {
  307. clearQueue: {
  308. callback: false,
  309. data: []
  310. }
  311. },
  312. inventory: {
  313. combineStacks: {
  314. callback: false,
  315. data: [
  316. {
  317. key: 'fromId',
  318. dataType: 'integer'
  319. },
  320. {
  321. key: 'toId',
  322. dataType: 'integer'
  323. }
  324. ]
  325. },
  326. splitStack: {
  327. callback: false,
  328. data: [
  329. {
  330. key: 'itemId',
  331. dataType: 'integer'
  332. },
  333. {
  334. key: 'stackSize',
  335. dataType: 'integer'
  336. }
  337. ]
  338. },
  339. useItem: {
  340. callback: false,
  341. data: [
  342. {
  343. key: 'itemId',
  344. dataType: 'integer'
  345. }
  346. ]
  347. },
  348. moveItem: {
  349. callback: false,
  350. data: [
  351. {
  352. key: 'moveMsgs',
  353. dataType: 'arrayOfObjects',
  354. spec: [
  355. {
  356. key: 'itemId',
  357. dataType: 'integer'
  358. },
  359. {
  360. key: 'targetPos',
  361. dataType: 'integer'
  362. }
  363. ]
  364. }
  365. ]
  366. },
  367. learnAbility: {
  368. callback: false,
  369. data: [
  370. {
  371. key: 'itemId',
  372. dataType: 'integer'
  373. },
  374. {
  375. key: 'slot',
  376. dataType: 'integer',
  377. optional: true
  378. }
  379. ]
  380. },
  381. unlearnAbility: {
  382. callback: false,
  383. data: [
  384. {
  385. key: 'itemId',
  386. dataType: 'integer'
  387. }
  388. ]
  389. },
  390. dropItem: {
  391. callback: false,
  392. data: [
  393. {
  394. key: 'itemId',
  395. dataType: 'integer'
  396. }
  397. ]
  398. },
  399. destroyItem: {
  400. callback: false,
  401. data: [
  402. {
  403. key: 'itemId',
  404. dataType: 'integer'
  405. }
  406. ]
  407. },
  408. salvageItem: {
  409. callback: false,
  410. data: [
  411. {
  412. key: 'itemId',
  413. dataType: 'integer'
  414. }
  415. ]
  416. },
  417. stashItem: {
  418. callback: false,
  419. data: [
  420. {
  421. key: 'itemId',
  422. dataType: 'integer'
  423. }
  424. ]
  425. },
  426. sortInventory: {
  427. callback: false,
  428. data: []
  429. }
  430. },
  431. equipment: {
  432. equip: {
  433. callback: false,
  434. data: [
  435. {
  436. key: 'itemId',
  437. dataType: 'integer'
  438. },
  439. {
  440. key: 'slot',
  441. dataType: 'string',
  442. optional: true
  443. }
  444. ]
  445. },
  446. unequip: {
  447. callback: false,
  448. data: [
  449. {
  450. key: 'itemId',
  451. dataType: 'integer'
  452. },
  453. {
  454. key: 'slot',
  455. dataType: 'string',
  456. optional: true
  457. }
  458. ]
  459. },
  460. setQuickSlot: {
  461. data: [
  462. {
  463. key: 'itemId',
  464. dataType: 'integer'
  465. },
  466. {
  467. key: 'slot',
  468. dataType: 'integer'
  469. }
  470. ]
  471. },
  472. useQuickSlot: {
  473. data: [
  474. {
  475. key: 'slot',
  476. dataType: 'integer'
  477. }
  478. ]
  479. },
  480. inspect: {
  481. callback: false,
  482. data: [
  483. {
  484. key: 'playerId',
  485. dataType: 'integer'
  486. }
  487. ]
  488. }
  489. },
  490. stash: {
  491. withdraw: {
  492. callback: false,
  493. data: [
  494. {
  495. key: 'itemId',
  496. dataType: 'integer'
  497. }
  498. ]
  499. },
  500. open: {
  501. callback: false,
  502. data: [
  503. {
  504. key: 'targetId',
  505. dataType: 'integer'
  506. }
  507. ]
  508. }
  509. },
  510. trade: {
  511. buySell: {
  512. callback: false,
  513. data: [
  514. {
  515. key: 'itemId',
  516. dataType: 'integer'
  517. },
  518. {
  519. key: 'action',
  520. dataType: 'string'
  521. }
  522. ]
  523. }
  524. },
  525. door: {
  526. lock: {
  527. callback: false,
  528. data: [
  529. {
  530. key: 'targetId',
  531. dataType: 'integer'
  532. }
  533. ]
  534. },
  535. unlock: {
  536. callback: false,
  537. data: [
  538. {
  539. key: 'targetId',
  540. dataType: 'integer'
  541. }
  542. ]
  543. }
  544. },
  545. wardrobe: {
  546. open: {
  547. callback: false,
  548. data: [
  549. {
  550. key: 'targetId',
  551. dataType: 'integer'
  552. }
  553. ]
  554. },
  555. apply: {
  556. callback: false,
  557. data: [
  558. {
  559. key: 'targetId',
  560. dataType: 'integer'
  561. },
  562. {
  563. key: 'skinId',
  564. dataType: 'string'
  565. }
  566. ]
  567. }
  568. },
  569. stats: {
  570. respawn: {
  571. callback: false,
  572. data: []
  573. }
  574. },
  575. passives: {
  576. tickNode: {
  577. callback: false,
  578. data: [
  579. {
  580. key: 'nodeId',
  581. dataType: 'integer'
  582. }
  583. ]
  584. },
  585. untickNode: {
  586. callback: false,
  587. data: [
  588. {
  589. key: 'nodeId',
  590. dataType: 'integer',
  591. optional: true
  592. }
  593. ]
  594. }
  595. },
  596. workbench: {
  597. open: {
  598. callback: false,
  599. data: [
  600. {
  601. key: 'targetId',
  602. dataType: 'integer'
  603. }
  604. ]
  605. },
  606. craft: {
  607. callback: false,
  608. data: [
  609. {
  610. key: 'targetId',
  611. dataType: 'integer'
  612. },
  613. {
  614. key: 'name',
  615. dataType: 'string'
  616. },
  617. {
  618. key: 'pickedItemIds',
  619. dataType: 'arrayOfIntegers'
  620. }
  621. ]
  622. },
  623. getRecipe: {
  624. data: [
  625. {
  626. key: 'targetId',
  627. dataType: 'integer'
  628. },
  629. {
  630. key: 'name',
  631. dataType: 'string'
  632. },
  633. {
  634. key: 'pickedItemIds',
  635. dataType: 'arrayOfIntegers',
  636. optional: true
  637. }
  638. ]
  639. }
  640. }
  641. }
  642. }
  643. };
  644. module.exports = {
  645. routerConfig,
  646. init: function () {
  647. routerConfig.allowed = {};
  648. routerConfig.allowTargetId = {};
  649. routerConfig.secondaryAllowed = {};
  650. routerConfig.secondaryAllowTargetId = {};
  651. routerConfig.globalAllowed = {};
  652. events.emit('onBeforeGetRouterSignatureConfig', routerConfig);
  653. }
  654. };