@takaro/modules 0.0.0-next.0da151e

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 (352) hide show
  1. package/README.md +3 -0
  2. package/dist/BuiltinModule.d.ts +62 -0
  3. package/dist/BuiltinModule.d.ts.map +1 -0
  4. package/dist/BuiltinModule.js +245 -0
  5. package/dist/BuiltinModule.js.map +1 -0
  6. package/dist/community-modules.json +21 -0
  7. package/dist/dto/base.d.ts +7 -0
  8. package/dist/dto/base.d.ts.map +1 -0
  9. package/dist/dto/base.js +28 -0
  10. package/dist/dto/base.js.map +1 -0
  11. package/dist/dto/discordEvents.d.ts +32 -0
  12. package/dist/dto/discordEvents.d.ts.map +1 -0
  13. package/dist/dto/discordEvents.js +92 -0
  14. package/dist/dto/discordEvents.js.map +1 -0
  15. package/dist/dto/gameEvents.d.ts +83 -0
  16. package/dist/dto/gameEvents.d.ts.map +1 -0
  17. package/dist/dto/gameEvents.js +205 -0
  18. package/dist/dto/gameEvents.js.map +1 -0
  19. package/dist/dto/index.d.ts +54 -0
  20. package/dist/dto/index.d.ts.map +1 -0
  21. package/dist/dto/index.js +18 -0
  22. package/dist/dto/index.js.map +1 -0
  23. package/dist/dto/takaroEvents.d.ts +276 -0
  24. package/dist/dto/takaroEvents.d.ts.map +1 -0
  25. package/dist/dto/takaroEvents.js +794 -0
  26. package/dist/dto/takaroEvents.js.map +1 -0
  27. package/dist/main.d.ts +5 -0
  28. package/dist/main.d.ts.map +1 -0
  29. package/dist/main.js +35 -0
  30. package/dist/main.js.map +1 -0
  31. package/dist/modules/chatBridge/hooks/DiscordToGame.d.ts +2 -0
  32. package/dist/modules/chatBridge/hooks/DiscordToGame.d.ts.map +1 -0
  33. package/dist/modules/chatBridge/hooks/DiscordToGame.js +18 -0
  34. package/dist/modules/chatBridge/hooks/DiscordToGame.js.map +1 -0
  35. package/dist/modules/chatBridge/hooks/GameToDiscord.d.ts +2 -0
  36. package/dist/modules/chatBridge/hooks/GameToDiscord.d.ts.map +1 -0
  37. package/dist/modules/chatBridge/hooks/GameToDiscord.js +14 -0
  38. package/dist/modules/chatBridge/hooks/GameToDiscord.js.map +1 -0
  39. package/dist/modules/chatBridge/hooks/PlayerConnected.d.ts +2 -0
  40. package/dist/modules/chatBridge/hooks/PlayerConnected.d.ts.map +1 -0
  41. package/dist/modules/chatBridge/hooks/PlayerConnected.js +9 -0
  42. package/dist/modules/chatBridge/hooks/PlayerConnected.js.map +1 -0
  43. package/dist/modules/chatBridge/hooks/PlayerDisconnected.d.ts +2 -0
  44. package/dist/modules/chatBridge/hooks/PlayerDisconnected.d.ts.map +1 -0
  45. package/dist/modules/chatBridge/hooks/PlayerDisconnected.js +9 -0
  46. package/dist/modules/chatBridge/hooks/PlayerDisconnected.js.map +1 -0
  47. package/dist/modules/chatBridge/index.d.ts +5 -0
  48. package/dist/modules/chatBridge/index.d.ts.map +1 -0
  49. package/dist/modules/chatBridge/index.js +64 -0
  50. package/dist/modules/chatBridge/index.js.map +1 -0
  51. package/dist/modules/dailyRewards/commands/daily.d.ts +2 -0
  52. package/dist/modules/dailyRewards/commands/daily.d.ts.map +1 -0
  53. package/dist/modules/dailyRewards/commands/daily.js +103 -0
  54. package/dist/modules/dailyRewards/commands/daily.js.map +1 -0
  55. package/dist/modules/dailyRewards/commands/streak.d.ts +2 -0
  56. package/dist/modules/dailyRewards/commands/streak.d.ts.map +1 -0
  57. package/dist/modules/dailyRewards/commands/streak.js +34 -0
  58. package/dist/modules/dailyRewards/commands/streak.js.map +1 -0
  59. package/dist/modules/dailyRewards/commands/topstreak.d.ts +2 -0
  60. package/dist/modules/dailyRewards/commands/topstreak.d.ts.map +1 -0
  61. package/dist/modules/dailyRewards/commands/topstreak.js +44 -0
  62. package/dist/modules/dailyRewards/commands/topstreak.js.map +1 -0
  63. package/dist/modules/dailyRewards/functions/utils.d.ts +6 -0
  64. package/dist/modules/dailyRewards/functions/utils.d.ts.map +1 -0
  65. package/dist/modules/dailyRewards/functions/utils.js +32 -0
  66. package/dist/modules/dailyRewards/functions/utils.js.map +1 -0
  67. package/dist/modules/dailyRewards/hooks/dailyLoginCheck.d.ts +2 -0
  68. package/dist/modules/dailyRewards/hooks/dailyLoginCheck.d.ts.map +1 -0
  69. package/dist/modules/dailyRewards/hooks/dailyLoginCheck.js +19 -0
  70. package/dist/modules/dailyRewards/hooks/dailyLoginCheck.js.map +1 -0
  71. package/dist/modules/dailyRewards/index.d.ts +5 -0
  72. package/dist/modules/dailyRewards/index.d.ts.map +1 -0
  73. package/dist/modules/dailyRewards/index.js +127 -0
  74. package/dist/modules/dailyRewards/index.js.map +1 -0
  75. package/dist/modules/economyUtils/commands/balance.d.ts +2 -0
  76. package/dist/modules/economyUtils/commands/balance.d.ts.map +1 -0
  77. package/dist/modules/economyUtils/commands/balance.js +7 -0
  78. package/dist/modules/economyUtils/commands/balance.js.map +1 -0
  79. package/dist/modules/economyUtils/commands/claim.d.ts +2 -0
  80. package/dist/modules/economyUtils/commands/claim.d.ts.map +1 -0
  81. package/dist/modules/economyUtils/commands/claim.js +35 -0
  82. package/dist/modules/economyUtils/commands/claim.js.map +1 -0
  83. package/dist/modules/economyUtils/commands/confirmTransfer.d.ts +2 -0
  84. package/dist/modules/economyUtils/commands/confirmTransfer.d.ts.map +1 -0
  85. package/dist/modules/economyUtils/commands/confirmTransfer.js +38 -0
  86. package/dist/modules/economyUtils/commands/confirmTransfer.js.map +1 -0
  87. package/dist/modules/economyUtils/commands/grantCurrency.d.ts +2 -0
  88. package/dist/modules/economyUtils/commands/grantCurrency.d.ts.map +1 -0
  89. package/dist/modules/economyUtils/commands/grantCurrency.js +28 -0
  90. package/dist/modules/economyUtils/commands/grantCurrency.js.map +1 -0
  91. package/dist/modules/economyUtils/commands/revokeCurrency.d.ts +2 -0
  92. package/dist/modules/economyUtils/commands/revokeCurrency.d.ts.map +1 -0
  93. package/dist/modules/economyUtils/commands/revokeCurrency.js +28 -0
  94. package/dist/modules/economyUtils/commands/revokeCurrency.js.map +1 -0
  95. package/dist/modules/economyUtils/commands/shop.d.ts +2 -0
  96. package/dist/modules/economyUtils/commands/shop.d.ts.map +1 -0
  97. package/dist/modules/economyUtils/commands/shop.js +69 -0
  98. package/dist/modules/economyUtils/commands/shop.js.map +1 -0
  99. package/dist/modules/economyUtils/commands/topCurrency.d.ts +2 -0
  100. package/dist/modules/economyUtils/commands/topCurrency.d.ts.map +1 -0
  101. package/dist/modules/economyUtils/commands/topCurrency.js +22 -0
  102. package/dist/modules/economyUtils/commands/topCurrency.js.map +1 -0
  103. package/dist/modules/economyUtils/commands/transfer.d.ts +2 -0
  104. package/dist/modules/economyUtils/commands/transfer.d.ts.map +1 -0
  105. package/dist/modules/economyUtils/commands/transfer.js +55 -0
  106. package/dist/modules/economyUtils/commands/transfer.js.map +1 -0
  107. package/dist/modules/economyUtils/cronJobs/zombieKillReward.d.ts +2 -0
  108. package/dist/modules/economyUtils/cronJobs/zombieKillReward.d.ts.map +1 -0
  109. package/dist/modules/economyUtils/cronJobs/zombieKillReward.js +66 -0
  110. package/dist/modules/economyUtils/cronJobs/zombieKillReward.js.map +1 -0
  111. package/dist/modules/economyUtils/index.d.ts +5 -0
  112. package/dist/modules/economyUtils/index.d.ts.map +1 -0
  113. package/dist/modules/economyUtils/index.js +192 -0
  114. package/dist/modules/economyUtils/index.js.map +1 -0
  115. package/dist/modules/geoBlock/hooks/IPDetected.d.ts +2 -0
  116. package/dist/modules/geoBlock/hooks/IPDetected.d.ts.map +1 -0
  117. package/dist/modules/geoBlock/hooks/IPDetected.js +50 -0
  118. package/dist/modules/geoBlock/hooks/IPDetected.js.map +1 -0
  119. package/dist/modules/geoBlock/index.d.ts +9 -0
  120. package/dist/modules/geoBlock/index.d.ts.map +1 -0
  121. package/dist/modules/geoBlock/index.js +329 -0
  122. package/dist/modules/geoBlock/index.js.map +1 -0
  123. package/dist/modules/gimme/commands/gimme.d.ts +2 -0
  124. package/dist/modules/gimme/commands/gimme.d.ts.map +1 -0
  125. package/dist/modules/gimme/commands/gimme.js +25 -0
  126. package/dist/modules/gimme/commands/gimme.js.map +1 -0
  127. package/dist/modules/gimme/index.d.ts +5 -0
  128. package/dist/modules/gimme/index.d.ts.map +1 -0
  129. package/dist/modules/gimme/index.js +75 -0
  130. package/dist/modules/gimme/index.js.map +1 -0
  131. package/dist/modules/highPingKicker/cronJobs/Ping check.d.ts +2 -0
  132. package/dist/modules/highPingKicker/cronJobs/Ping check.d.ts.map +1 -0
  133. package/dist/modules/highPingKicker/cronJobs/Ping check.js +59 -0
  134. package/dist/modules/highPingKicker/cronJobs/Ping check.js.map +1 -0
  135. package/dist/modules/highPingKicker/index.d.ts +5 -0
  136. package/dist/modules/highPingKicker/index.d.ts.map +1 -0
  137. package/dist/modules/highPingKicker/index.js +44 -0
  138. package/dist/modules/highPingKicker/index.js.map +1 -0
  139. package/dist/modules/lottery/commands/buyTicket.d.ts +2 -0
  140. package/dist/modules/lottery/commands/buyTicket.d.ts.map +1 -0
  141. package/dist/modules/lottery/commands/buyTicket.js +51 -0
  142. package/dist/modules/lottery/commands/buyTicket.js.map +1 -0
  143. package/dist/modules/lottery/commands/nextDraw.d.ts +2 -0
  144. package/dist/modules/lottery/commands/nextDraw.d.ts.map +1 -0
  145. package/dist/modules/lottery/commands/nextDraw.js +34 -0
  146. package/dist/modules/lottery/commands/nextDraw.js.map +1 -0
  147. package/dist/modules/lottery/commands/viewTickets.d.ts +2 -0
  148. package/dist/modules/lottery/commands/viewTickets.d.ts.map +1 -0
  149. package/dist/modules/lottery/commands/viewTickets.js +20 -0
  150. package/dist/modules/lottery/commands/viewTickets.js.map +1 -0
  151. package/dist/modules/lottery/cronJobs/drawLottery.d.ts +2 -0
  152. package/dist/modules/lottery/cronJobs/drawLottery.d.ts.map +1 -0
  153. package/dist/modules/lottery/cronJobs/drawLottery.js +96 -0
  154. package/dist/modules/lottery/cronJobs/drawLottery.js.map +1 -0
  155. package/dist/modules/lottery/index.d.ts +5 -0
  156. package/dist/modules/lottery/index.d.ts.map +1 -0
  157. package/dist/modules/lottery/index.js +85 -0
  158. package/dist/modules/lottery/index.js.map +1 -0
  159. package/dist/modules/playerOnboarding/commands/starterkit.d.ts +2 -0
  160. package/dist/modules/playerOnboarding/commands/starterkit.d.ts.map +1 -0
  161. package/dist/modules/playerOnboarding/commands/starterkit.js +47 -0
  162. package/dist/modules/playerOnboarding/commands/starterkit.js.map +1 -0
  163. package/dist/modules/playerOnboarding/hooks/playerConnected.d.ts +2 -0
  164. package/dist/modules/playerOnboarding/hooks/playerConnected.d.ts.map +1 -0
  165. package/dist/modules/playerOnboarding/hooks/playerConnected.js +11 -0
  166. package/dist/modules/playerOnboarding/hooks/playerConnected.js.map +1 -0
  167. package/dist/modules/playerOnboarding/index.d.ts +5 -0
  168. package/dist/modules/playerOnboarding/index.d.ts.map +1 -0
  169. package/dist/modules/playerOnboarding/index.js +83 -0
  170. package/dist/modules/playerOnboarding/index.js.map +1 -0
  171. package/dist/modules/serverMessages/cronJobs/Automated message.d.ts +2 -0
  172. package/dist/modules/serverMessages/cronJobs/Automated message.d.ts.map +1 -0
  173. package/dist/modules/serverMessages/cronJobs/Automated message.js +41 -0
  174. package/dist/modules/serverMessages/cronJobs/Automated message.js.map +1 -0
  175. package/dist/modules/serverMessages/index.d.ts +5 -0
  176. package/dist/modules/serverMessages/index.d.ts.map +1 -0
  177. package/dist/modules/serverMessages/index.js +45 -0
  178. package/dist/modules/serverMessages/index.js.map +1 -0
  179. package/dist/modules/teleports/commands/deletetp.d.ts +2 -0
  180. package/dist/modules/teleports/commands/deletetp.d.ts.map +1 -0
  181. package/dist/modules/teleports/commands/deletetp.js +20 -0
  182. package/dist/modules/teleports/commands/deletetp.js.map +1 -0
  183. package/dist/modules/teleports/commands/deletewaypoint.d.ts +2 -0
  184. package/dist/modules/teleports/commands/deletewaypoint.d.ts.map +1 -0
  185. package/dist/modules/teleports/commands/deletewaypoint.js +20 -0
  186. package/dist/modules/teleports/commands/deletewaypoint.js.map +1 -0
  187. package/dist/modules/teleports/commands/listwaypoints.d.ts +2 -0
  188. package/dist/modules/teleports/commands/listwaypoints.d.ts.map +1 -0
  189. package/dist/modules/teleports/commands/listwaypoints.js +17 -0
  190. package/dist/modules/teleports/commands/listwaypoints.js.map +1 -0
  191. package/dist/modules/teleports/commands/setprivate.d.ts +2 -0
  192. package/dist/modules/teleports/commands/setprivate.d.ts.map +1 -0
  193. package/dist/modules/teleports/commands/setprivate.js +29 -0
  194. package/dist/modules/teleports/commands/setprivate.js.map +1 -0
  195. package/dist/modules/teleports/commands/setpublic.d.ts +2 -0
  196. package/dist/modules/teleports/commands/setpublic.d.ts.map +1 -0
  197. package/dist/modules/teleports/commands/setpublic.js +45 -0
  198. package/dist/modules/teleports/commands/setpublic.js.map +1 -0
  199. package/dist/modules/teleports/commands/settp.d.ts +2 -0
  200. package/dist/modules/teleports/commands/settp.d.ts.map +1 -0
  201. package/dist/modules/teleports/commands/settp.js +40 -0
  202. package/dist/modules/teleports/commands/settp.js.map +1 -0
  203. package/dist/modules/teleports/commands/setwaypoint.d.ts +2 -0
  204. package/dist/modules/teleports/commands/setwaypoint.d.ts.map +1 -0
  205. package/dist/modules/teleports/commands/setwaypoint.js +28 -0
  206. package/dist/modules/teleports/commands/setwaypoint.js.map +1 -0
  207. package/dist/modules/teleports/commands/teleport.d.ts +2 -0
  208. package/dist/modules/teleports/commands/teleport.d.ts.map +1 -0
  209. package/dist/modules/teleports/commands/teleport.js +68 -0
  210. package/dist/modules/teleports/commands/teleport.js.map +1 -0
  211. package/dist/modules/teleports/commands/teleportwaypoint.d.ts +2 -0
  212. package/dist/modules/teleports/commands/teleportwaypoint.d.ts.map +1 -0
  213. package/dist/modules/teleports/commands/teleportwaypoint.js +43 -0
  214. package/dist/modules/teleports/commands/teleportwaypoint.js.map +1 -0
  215. package/dist/modules/teleports/commands/tplist.d.ts +2 -0
  216. package/dist/modules/teleports/commands/tplist.d.ts.map +1 -0
  217. package/dist/modules/teleports/commands/tplist.js +46 -0
  218. package/dist/modules/teleports/commands/tplist.js.map +1 -0
  219. package/dist/modules/teleports/cronJobs/Waypoint reconciler.d.ts +2 -0
  220. package/dist/modules/teleports/cronJobs/Waypoint reconciler.d.ts.map +1 -0
  221. package/dist/modules/teleports/cronJobs/Waypoint reconciler.js +6 -0
  222. package/dist/modules/teleports/cronJobs/Waypoint reconciler.js.map +1 -0
  223. package/dist/modules/teleports/functions/utils.d.ts +14 -0
  224. package/dist/modules/teleports/functions/utils.d.ts.map +1 -0
  225. package/dist/modules/teleports/functions/utils.js +156 -0
  226. package/dist/modules/teleports/functions/utils.js.map +1 -0
  227. package/dist/modules/teleports/index.d.ts +5 -0
  228. package/dist/modules/teleports/index.d.ts.map +1 -0
  229. package/dist/modules/teleports/index.js +208 -0
  230. package/dist/modules/teleports/index.js.map +1 -0
  231. package/dist/modules/timedShutdown/cronJobs/Shutdown.d.ts +2 -0
  232. package/dist/modules/timedShutdown/cronJobs/Shutdown.d.ts.map +1 -0
  233. package/dist/modules/timedShutdown/cronJobs/Shutdown.js +7 -0
  234. package/dist/modules/timedShutdown/cronJobs/Shutdown.js.map +1 -0
  235. package/dist/modules/timedShutdown/cronJobs/warning.d.ts +2 -0
  236. package/dist/modules/timedShutdown/cronJobs/warning.d.ts.map +1 -0
  237. package/dist/modules/timedShutdown/cronJobs/warning.js +10 -0
  238. package/dist/modules/timedShutdown/cronJobs/warning.js.map +1 -0
  239. package/dist/modules/timedShutdown/index.d.ts +5 -0
  240. package/dist/modules/timedShutdown/index.d.ts.map +1 -0
  241. package/dist/modules/timedShutdown/index.js +43 -0
  242. package/dist/modules/timedShutdown/index.js.map +1 -0
  243. package/dist/modules/utils/commands/help.d.ts +2 -0
  244. package/dist/modules/utils/commands/help.d.ts.map +1 -0
  245. package/dist/modules/utils/commands/help.js +84 -0
  246. package/dist/modules/utils/commands/help.js.map +1 -0
  247. package/dist/modules/utils/commands/ping.d.ts +2 -0
  248. package/dist/modules/utils/commands/ping.d.ts.map +1 -0
  249. package/dist/modules/utils/commands/ping.js +6 -0
  250. package/dist/modules/utils/commands/ping.js.map +1 -0
  251. package/dist/modules/utils/index.d.ts +5 -0
  252. package/dist/modules/utils/index.d.ts.map +1 -0
  253. package/dist/modules/utils/index.js +52 -0
  254. package/dist/modules/utils/index.js.map +1 -0
  255. package/dist/modules.json +757 -0
  256. package/package.json +17 -0
  257. package/scripts/buildBuiltinJson.ts +81 -0
  258. package/src/BuiltinModule.ts +159 -0
  259. package/src/__tests__/aliases.integration.test.ts +90 -0
  260. package/src/__tests__/bugRepros.integration.test.ts +485 -0
  261. package/src/__tests__/builtinmodule.unit.test.ts +15 -0
  262. package/src/__tests__/commandArgs.integration.test.ts +291 -0
  263. package/src/__tests__/crossServerPlayer.integration.test.ts +176 -0
  264. package/src/__tests__/economy/claim.integration.test.ts +250 -0
  265. package/src/__tests__/economy/economyUtils.integration.test.ts +495 -0
  266. package/src/__tests__/economy/shop.integration.test.ts +177 -0
  267. package/src/__tests__/economy/zombieKillReward.integration.test.ts +293 -0
  268. package/src/__tests__/geoblock.integration.test.ts +322 -0
  269. package/src/__tests__/gimme.integration.test.ts +106 -0
  270. package/src/__tests__/help.integration.test.ts +314 -0
  271. package/src/__tests__/highPingKicker.integration.test.ts +618 -0
  272. package/src/__tests__/lottery.integration.test.ts +344 -0
  273. package/src/__tests__/modulePermission.integration.test.ts +387 -0
  274. package/src/__tests__/onboarding.integration.test.ts +122 -0
  275. package/src/__tests__/ping.integration.test.ts +36 -0
  276. package/src/__tests__/roleExpiry.integration.test.ts +78 -0
  277. package/src/__tests__/serverMessages.integration.test.ts +116 -0
  278. package/src/__tests__/systemConfigCooldown.integration.test.ts +84 -0
  279. package/src/__tests__/systemConfigCost.integration.test.ts +194 -0
  280. package/src/__tests__/teleports/listtp.integration.test.ts +189 -0
  281. package/src/__tests__/teleports/publicteleports.integration.test.ts +345 -0
  282. package/src/__tests__/teleports/teleport.integration.test.ts +153 -0
  283. package/src/__tests__/teleports/tpManagement.integration.test.ts +175 -0
  284. package/src/__tests__/teleports/waypoints.integration.test.ts +832 -0
  285. package/src/community-modules/README.md +5 -0
  286. package/src/community-modules/modules/vote.json +19 -0
  287. package/src/dto/base.ts +13 -0
  288. package/src/dto/discordEvents.ts +69 -0
  289. package/src/dto/gameEvents.ts +159 -0
  290. package/src/dto/index.ts +25 -0
  291. package/src/dto/takaroEvents.ts +525 -0
  292. package/src/main.ts +47 -0
  293. package/src/modules/.eslintrc +5 -0
  294. package/src/modules/chatBridge/hooks/DiscordToGame.js +18 -0
  295. package/src/modules/chatBridge/hooks/GameToDiscord.js +18 -0
  296. package/src/modules/chatBridge/hooks/PlayerConnected.js +11 -0
  297. package/src/modules/chatBridge/hooks/PlayerDisconnected.js +11 -0
  298. package/src/modules/chatBridge/index.ts +64 -0
  299. package/src/modules/dailyRewards/commands/daily.js +114 -0
  300. package/src/modules/dailyRewards/commands/streak.js +42 -0
  301. package/src/modules/dailyRewards/commands/topstreak.js +54 -0
  302. package/src/modules/dailyRewards/functions/utils.js +36 -0
  303. package/src/modules/dailyRewards/hooks/dailyLoginCheck.js +24 -0
  304. package/src/modules/dailyRewards/index.ts +138 -0
  305. package/src/modules/economyUtils/commands/balance.js +8 -0
  306. package/src/modules/economyUtils/commands/claim.js +42 -0
  307. package/src/modules/economyUtils/commands/confirmTransfer.js +55 -0
  308. package/src/modules/economyUtils/commands/grantCurrency.js +34 -0
  309. package/src/modules/economyUtils/commands/revokeCurrency.js +34 -0
  310. package/src/modules/economyUtils/commands/shop.js +87 -0
  311. package/src/modules/economyUtils/commands/topCurrency.js +29 -0
  312. package/src/modules/economyUtils/commands/transfer.js +73 -0
  313. package/src/modules/economyUtils/cronJobs/zombieKillReward.js +82 -0
  314. package/src/modules/economyUtils/index.ts +197 -0
  315. package/src/modules/geoBlock/hooks/IPDetected.js +53 -0
  316. package/src/modules/geoBlock/index.ts +333 -0
  317. package/src/modules/gimme/commands/gimme.js +30 -0
  318. package/src/modules/gimme/index.ts +76 -0
  319. package/src/modules/highPingKicker/cronJobs/Ping check.js +68 -0
  320. package/src/modules/highPingKicker/index.ts +44 -0
  321. package/src/modules/lottery/commands/buyTicket.js +64 -0
  322. package/src/modules/lottery/commands/nextDraw.js +47 -0
  323. package/src/modules/lottery/commands/viewTickets.js +28 -0
  324. package/src/modules/lottery/cronJobs/drawLottery.js +124 -0
  325. package/src/modules/lottery/index.ts +86 -0
  326. package/src/modules/playerOnboarding/commands/starterkit.js +61 -0
  327. package/src/modules/playerOnboarding/hooks/playerConnected.js +14 -0
  328. package/src/modules/playerOnboarding/index.ts +86 -0
  329. package/src/modules/serverMessages/cronJobs/Automated message.js +47 -0
  330. package/src/modules/serverMessages/index.ts +46 -0
  331. package/src/modules/teleports/commands/deletetp.js +25 -0
  332. package/src/modules/teleports/commands/deletewaypoint.js +24 -0
  333. package/src/modules/teleports/commands/listwaypoints.js +23 -0
  334. package/src/modules/teleports/commands/setprivate.js +39 -0
  335. package/src/modules/teleports/commands/setpublic.js +60 -0
  336. package/src/modules/teleports/commands/settp.js +50 -0
  337. package/src/modules/teleports/commands/setwaypoint.js +31 -0
  338. package/src/modules/teleports/commands/teleport.js +84 -0
  339. package/src/modules/teleports/commands/teleportwaypoint.js +57 -0
  340. package/src/modules/teleports/commands/tplist.js +62 -0
  341. package/src/modules/teleports/cronJobs/Waypoint reconciler.js +7 -0
  342. package/src/modules/teleports/functions/utils.js +189 -0
  343. package/src/modules/teleports/index.ts +217 -0
  344. package/src/modules/timedShutdown/cronJobs/Shutdown.js +8 -0
  345. package/src/modules/timedShutdown/cronJobs/warning.js +13 -0
  346. package/src/modules/timedShutdown/index.ts +45 -0
  347. package/src/modules/utils/commands/help.js +100 -0
  348. package/src/modules/utils/commands/ping.js +7 -0
  349. package/src/modules/utils/index.ts +53 -0
  350. package/tsconfig.build.json +10 -0
  351. package/tsconfig.json +9 -0
  352. package/typedoc.json +3 -0
@@ -0,0 +1,106 @@
1
+ import { IntegrationTest, expect, IModuleTestsSetupData, modulesTestSetup, EventsAwaiter } from '@takaro/test';
2
+ import { GameEvents, HookEvents } from '../dto/index.js';
3
+ import { faker } from '@faker-js/faker';
4
+ import { describe } from 'node:test';
5
+
6
+ const group = 'gimme suite';
7
+
8
+ const tests = [
9
+ new IntegrationTest<IModuleTestsSetupData>({
10
+ group,
11
+ snapshot: false,
12
+ setup: modulesTestSetup,
13
+ name: 'Can give an item to a player',
14
+ test: async function () {
15
+ const items = (await this.client.item.itemControllerSearch()).data.data;
16
+ await this.client.module.moduleInstallationsControllerInstallModule({
17
+ gameServerId: this.setupData.gameserver.id,
18
+ versionId: this.setupData.gimmeModule.latestVersion.id,
19
+ userConfig: JSON.stringify({
20
+ items: items.map((item) => ({
21
+ item: item.id,
22
+ amount: faker.number.int({ min: 1, max: 5 }),
23
+ quality: faker.number.int({ min: 1, max: 6 }).toString(),
24
+ })),
25
+ commands: [],
26
+ }),
27
+ });
28
+
29
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE);
30
+ const executionEvents = (await new EventsAwaiter().connect(this.client)).waitForEvents(
31
+ HookEvents.COMMAND_EXECUTED,
32
+ );
33
+
34
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
35
+ msg: '/gimme',
36
+ playerId: this.setupData.players[0].id,
37
+ });
38
+
39
+ const resultLogs = (await executionEvents)[0].data.meta.result.logs;
40
+ expect(resultLogs.some((log: any) => log.msg.match(/giveItem 200 OK/))).to.be.true;
41
+
42
+ expect((await events).length).to.be.eq(1);
43
+ expect((await events)[0].data.meta.msg).to.match(/You received \dx \w/);
44
+ },
45
+ }),
46
+ /* new IntegrationTest<IModuleTestsSetupData>({
47
+ group,
48
+ snapshot: false,
49
+ setup: modulesTestSetup,
50
+ name: 'Can execute command',
51
+ test: async function () {
52
+ await this.client.module.moduleInstallationsControllerInstallModule(
53
+ this.setupData.gameserver.id,
54
+ this.setupData.gimmeModule.id,
55
+ {
56
+ userConfig: JSON.stringify({
57
+ items: [],
58
+ commands: ['say hello from test'],
59
+ }),
60
+ },
61
+ );
62
+
63
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE);
64
+
65
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
66
+ msg: '/gimme',
67
+ playerId: this.setupData.players[0].id,
68
+ });
69
+
70
+ expect((await events).length).to.be.eq(1);
71
+ expect((await events)[0].data.meta.msg).to.eq('hello from test');
72
+ },
73
+ }), */
74
+ new IntegrationTest<IModuleTestsSetupData>({
75
+ group,
76
+ snapshot: false,
77
+ setup: modulesTestSetup,
78
+ name: 'When no items or commands configured, displays an error',
79
+ test: async function () {
80
+ await this.client.module.moduleInstallationsControllerInstallModule({
81
+ gameServerId: this.setupData.gameserver.id,
82
+ versionId: this.setupData.gimmeModule.latestVersion.id,
83
+ userConfig: JSON.stringify({
84
+ items: [],
85
+ commands: [],
86
+ }),
87
+ });
88
+
89
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE);
90
+
91
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
92
+ msg: '/gimme',
93
+ playerId: this.setupData.players[0].id,
94
+ });
95
+
96
+ expect((await events).length).to.be.eq(1);
97
+ expect((await events)[0].data.meta.msg).to.match(/No items or commands configured/);
98
+ },
99
+ }),
100
+ ];
101
+
102
+ describe(group, function () {
103
+ tests.forEach((test) => {
104
+ test.run();
105
+ });
106
+ });
@@ -0,0 +1,314 @@
1
+ import { IntegrationTest, expect, IModuleTestsSetupData, modulesTestSetup, EventsAwaiter } from '@takaro/test';
2
+ import { GameEvents } from '../dto/index.js';
3
+ import { describe } from 'node:test';
4
+
5
+ const group = 'help command suite';
6
+
7
+ const tests = [
8
+ new IntegrationTest<IModuleTestsSetupData>({
9
+ group,
10
+ snapshot: false,
11
+ setup: modulesTestSetup,
12
+ name: 'Shows all available commands when no argument provided',
13
+ test: async function () {
14
+ await this.client.module.moduleInstallationsControllerInstallModule({
15
+ gameServerId: this.setupData.gameserver.id,
16
+ versionId: this.setupData.utilsModule.latestVersion.id,
17
+ });
18
+
19
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 3);
20
+
21
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
22
+ msg: '/help',
23
+ playerId: this.setupData.players[0].id,
24
+ });
25
+
26
+ const messages = await events;
27
+ expect(messages.length).to.be.greaterThan(0);
28
+ expect(messages[0].data.meta.msg).to.include('Available commands:');
29
+ // Should show help and ping commands from utils module
30
+ expect(messages.some((m) => m.data.meta.msg.includes('help:'))).to.be.true;
31
+ expect(messages.some((m) => m.data.meta.msg.includes('ping:'))).to.be.true;
32
+ },
33
+ }),
34
+ new IntegrationTest<IModuleTestsSetupData>({
35
+ group,
36
+ snapshot: false,
37
+ setup: modulesTestSetup,
38
+ name: 'Shows specific command help when command name provided',
39
+ test: async function () {
40
+ await this.client.module.moduleInstallationsControllerInstallModule({
41
+ gameServerId: this.setupData.gameserver.id,
42
+ versionId: this.setupData.utilsModule.latestVersion.id,
43
+ });
44
+
45
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE);
46
+
47
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
48
+ msg: '/help ping',
49
+ playerId: this.setupData.players[0].id,
50
+ });
51
+
52
+ const messages = await events;
53
+ expect(messages.length).to.be.eq(1);
54
+ expect(messages[0].data.meta.msg).to.include('ping:');
55
+ expect(messages[0].data.meta.msg).to.include('pong');
56
+ },
57
+ }),
58
+ new IntegrationTest<IModuleTestsSetupData>({
59
+ group,
60
+ snapshot: false,
61
+ setup: modulesTestSetup,
62
+ name: 'Search returns commands with matching names',
63
+ test: async function () {
64
+ await this.client.module.moduleInstallationsControllerInstallModule({
65
+ gameServerId: this.setupData.gameserver.id,
66
+ versionId: this.setupData.utilsModule.latestVersion.id,
67
+ });
68
+
69
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 2);
70
+
71
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
72
+ msg: '/help search ping',
73
+ playerId: this.setupData.players[0].id,
74
+ });
75
+
76
+ const messages = await events;
77
+ expect(messages.length).to.be.greaterThan(0);
78
+ expect(messages[0].data.meta.msg).to.include('Commands matching "ping":');
79
+ expect(messages.some((m) => m.data.meta.msg.includes('ping:'))).to.be.true;
80
+ },
81
+ }),
82
+ new IntegrationTest<IModuleTestsSetupData>({
83
+ group,
84
+ snapshot: false,
85
+ setup: modulesTestSetup,
86
+ name: 'Search returns commands with matching help text',
87
+ test: async function () {
88
+ await this.client.module.moduleInstallationsControllerInstallModule({
89
+ gameServerId: this.setupData.gameserver.id,
90
+ versionId: this.setupData.utilsModule.latestVersion.id,
91
+ });
92
+
93
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 2);
94
+
95
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
96
+ msg: '/help search pong',
97
+ playerId: this.setupData.players[0].id,
98
+ });
99
+
100
+ const messages = await events;
101
+ expect(messages.length).to.be.greaterThan(0);
102
+ expect(messages[0].data.meta.msg).to.include('Commands matching "pong":');
103
+ expect(messages.some((m) => m.data.meta.msg.includes('ping:'))).to.be.true;
104
+ },
105
+ }),
106
+ new IntegrationTest<IModuleTestsSetupData>({
107
+ group,
108
+ snapshot: false,
109
+ setup: modulesTestSetup,
110
+ name: 'Search is case-insensitive',
111
+ test: async function () {
112
+ await this.client.module.moduleInstallationsControllerInstallModule({
113
+ gameServerId: this.setupData.gameserver.id,
114
+ versionId: this.setupData.utilsModule.latestVersion.id,
115
+ });
116
+
117
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 2);
118
+
119
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
120
+ msg: '/help search PING',
121
+ playerId: this.setupData.players[0].id,
122
+ });
123
+
124
+ const messages = await events;
125
+ expect(messages.length).to.be.greaterThan(0);
126
+ expect(messages[0].data.meta.msg).to.include('Commands matching "PING":');
127
+ expect(messages.some((m) => m.data.meta.msg.includes('ping:'))).to.be.true;
128
+ },
129
+ }),
130
+ new IntegrationTest<IModuleTestsSetupData>({
131
+ group,
132
+ snapshot: false,
133
+ setup: modulesTestSetup,
134
+ name: 'Search supports partial matches',
135
+ test: async function () {
136
+ await this.client.module.moduleInstallationsControllerInstallModule({
137
+ gameServerId: this.setupData.gameserver.id,
138
+ versionId: this.setupData.utilsModule.latestVersion.id,
139
+ });
140
+
141
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 2);
142
+
143
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
144
+ msg: '/help search hel',
145
+ playerId: this.setupData.players[0].id,
146
+ });
147
+
148
+ const messages = await events;
149
+ expect(messages.length).to.be.greaterThan(0);
150
+ expect(messages[0].data.meta.msg).to.include('Commands matching "hel":');
151
+ expect(messages.some((m) => m.data.meta.msg.includes('help:'))).to.be.true;
152
+ },
153
+ }),
154
+ new IntegrationTest<IModuleTestsSetupData>({
155
+ group,
156
+ snapshot: false,
157
+ setup: modulesTestSetup,
158
+ name: 'Search returns appropriate message when no matches found',
159
+ test: async function () {
160
+ await this.client.module.moduleInstallationsControllerInstallModule({
161
+ gameServerId: this.setupData.gameserver.id,
162
+ versionId: this.setupData.utilsModule.latestVersion.id,
163
+ });
164
+
165
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE);
166
+
167
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
168
+ msg: '/help search nonexistentcommand',
169
+ playerId: this.setupData.players[0].id,
170
+ });
171
+
172
+ const messages = await events;
173
+ expect(messages.length).to.be.eq(1);
174
+ expect(messages[0].data.meta.msg).to.include('No commands found matching "nonexistentcommand"');
175
+ },
176
+ }),
177
+ new IntegrationTest<IModuleTestsSetupData>({
178
+ group,
179
+ snapshot: false,
180
+ setup: modulesTestSetup,
181
+ name: 'Search works across multiple modules',
182
+ test: async function () {
183
+ // Install utils module
184
+ await this.client.module.moduleInstallationsControllerInstallModule({
185
+ gameServerId: this.setupData.gameserver.id,
186
+ versionId: this.setupData.utilsModule.latestVersion.id,
187
+ });
188
+
189
+ // Install another module (gimme) to have more commands
190
+ await this.client.module.moduleInstallationsControllerInstallModule({
191
+ gameServerId: this.setupData.gameserver.id,
192
+ versionId: this.setupData.gimmeModule.latestVersion.id,
193
+ userConfig: JSON.stringify({
194
+ items: [],
195
+ commands: ['say test'],
196
+ }),
197
+ });
198
+
199
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 2);
200
+
201
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
202
+ msg: '/help search command',
203
+ playerId: this.setupData.players[0].id,
204
+ });
205
+
206
+ const messages = await events;
207
+ expect(messages.length).to.be.greaterThan(0);
208
+ expect(messages[0].data.meta.msg).to.include('Commands matching "command":');
209
+ // Should find help command which has "command" in its help text
210
+ expect(messages.some((m) => m.data.meta.msg.includes('help:'))).to.be.true;
211
+ },
212
+ }),
213
+ new IntegrationTest<IModuleTestsSetupData>({
214
+ group,
215
+ snapshot: false,
216
+ setup: modulesTestSetup,
217
+ name: 'Does not show commands from disabled modules',
218
+ test: async function () {
219
+ // First install utils module normally so help command is available
220
+ await this.client.module.moduleInstallationsControllerInstallModule({
221
+ gameServerId: this.setupData.gameserver.id,
222
+ versionId: this.setupData.utilsModule.latestVersion.id,
223
+ });
224
+
225
+ // Install teleports module but disabled
226
+ const teleportsInstallation = await this.client.module.moduleInstallationsControllerInstallModule({
227
+ gameServerId: this.setupData.gameserver.id,
228
+ versionId: this.setupData.teleportsModule.latestVersion.id,
229
+ });
230
+
231
+ // Get the current system config and disable the teleports module
232
+ const systemConfig = teleportsInstallation.data.data.systemConfig as any;
233
+ systemConfig.enabled = false;
234
+
235
+ // Uninstall and reinstall teleports module with disabled config
236
+ await this.client.module.moduleInstallationsControllerUninstallModule(
237
+ teleportsInstallation.data.data.moduleId,
238
+ this.setupData.gameserver.id,
239
+ );
240
+
241
+ await this.client.module.moduleInstallationsControllerInstallModule({
242
+ gameServerId: this.setupData.gameserver.id,
243
+ versionId: this.setupData.teleportsModule.latestVersion.id,
244
+ systemConfig: JSON.stringify(systemConfig),
245
+ });
246
+
247
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 3);
248
+
249
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
250
+ msg: '/help',
251
+ playerId: this.setupData.players[0].id,
252
+ });
253
+
254
+ const messages = await events;
255
+ expect(messages.length).to.be.greaterThan(0);
256
+ expect(messages[0].data.meta.msg).to.include('Available commands:');
257
+ // Should show commands from utils module but NOT from disabled teleports module
258
+ expect(messages.some((m) => m.data.meta.msg.includes('help:'))).to.be.true;
259
+ expect(messages.some((m) => m.data.meta.msg.includes('ping:'))).to.be.true;
260
+ // Should NOT show teleports commands
261
+ expect(messages.some((m) => m.data.meta.msg.includes('settp:'))).to.be.false;
262
+ expect(messages.some((m) => m.data.meta.msg.includes('teleport:'))).to.be.false;
263
+ },
264
+ }),
265
+ new IntegrationTest<IModuleTestsSetupData>({
266
+ group,
267
+ snapshot: false,
268
+ setup: modulesTestSetup,
269
+ name: 'Does not show individually disabled commands',
270
+ test: async function () {
271
+ // Install utils module
272
+ const moduleInstallation = await this.client.module.moduleInstallationsControllerInstallModule({
273
+ gameServerId: this.setupData.gameserver.id,
274
+ versionId: this.setupData.utilsModule.latestVersion.id,
275
+ });
276
+
277
+ // Disable only the ping command
278
+ const systemConfig = moduleInstallation.data.data.systemConfig as any;
279
+ systemConfig.commands.ping.enabled = false;
280
+
281
+ // Uninstall and reinstall with new config
282
+ await this.client.module.moduleInstallationsControllerUninstallModule(
283
+ moduleInstallation.data.data.moduleId,
284
+ this.setupData.gameserver.id,
285
+ );
286
+
287
+ await this.client.module.moduleInstallationsControllerInstallModule({
288
+ gameServerId: this.setupData.gameserver.id,
289
+ versionId: this.setupData.utilsModule.latestVersion.id,
290
+ systemConfig: JSON.stringify(systemConfig),
291
+ });
292
+
293
+ const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(GameEvents.CHAT_MESSAGE, 2);
294
+
295
+ await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, {
296
+ msg: '/help',
297
+ playerId: this.setupData.players[0].id,
298
+ });
299
+
300
+ const messages = await events;
301
+ expect(messages.length).to.be.greaterThan(0);
302
+ expect(messages[0].data.meta.msg).to.include('Available commands:');
303
+ // Should show help command but NOT ping command
304
+ expect(messages.some((m) => m.data.meta.msg.includes('help:'))).to.be.true;
305
+ expect(messages.some((m) => m.data.meta.msg.includes('ping:'))).to.be.false;
306
+ },
307
+ }),
308
+ ];
309
+
310
+ describe(group, function () {
311
+ tests.forEach((test) => {
312
+ test.run();
313
+ });
314
+ });