@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,525 @@
1
+ import {
2
+ IsArray,
3
+ IsBoolean,
4
+ IsEnum,
5
+ IsIP,
6
+ IsISO31661Alpha2,
7
+ IsJSON,
8
+ IsNumber,
9
+ IsObject,
10
+ IsOptional,
11
+ IsString,
12
+ IsUUID,
13
+ ValidateNested,
14
+ } from 'class-validator';
15
+ import { BaseEvent } from './base.js';
16
+ import { ValueOf } from 'type-fest';
17
+ import { Type } from 'class-transformer';
18
+ import { TakaroDTO } from '@takaro/util';
19
+
20
+ export const TakaroEvents = {
21
+ ROLE_ASSIGNED: 'role-assigned',
22
+ ROLE_REMOVED: 'role-removed',
23
+ ROLE_CREATED: 'role-created',
24
+ ROLE_UPDATED: 'role-updated',
25
+ ROLE_DELETED: 'role-deleted',
26
+ COMMAND_EXECUTED: 'command-executed',
27
+ COMMAND_EXECUTION_DENIED: 'command-execution-denied',
28
+ HOOK_EXECUTED: 'hook-executed',
29
+ CRONJOB_EXECUTED: 'cronjob-executed',
30
+ CURRENCY_ADDED: 'currency-added',
31
+ CURRENCY_DEDUCTED: 'currency-deducted',
32
+ CURRENCY_RESET_ALL: 'currency-reset-all',
33
+ SETTINGS_SET: 'settings-set',
34
+ PLAYER_NEW_IP_DETECTED: 'player-new-ip-detected',
35
+ PLAYER_NEW_NAME_DETECTED: 'player-new-name-detected',
36
+ SERVER_STATUS_CHANGED: 'server-status-changed',
37
+ MODULE_CREATED: 'module-created',
38
+ MODULE_UPDATED: 'module-updated',
39
+ MODULE_DELETED: 'module-deleted',
40
+ MODULE_INSTALLED: 'module-installed',
41
+ MODULE_UNINSTALLED: 'module-uninstalled',
42
+ PLAYER_CREATED: 'player-created',
43
+ SHOP_LISTING_CREATED: 'shop-listing-created',
44
+ SHOP_LISTING_UPDATED: 'shop-listing-updated',
45
+ SHOP_LISTING_DELETED: 'shop-listing-deleted',
46
+ SHOP_ORDER_CREATED: 'shop-order-created',
47
+ SHOP_ORDER_STATUS_CHANGED: 'shop-order-status-changed',
48
+ SHOP_ORDER_DELIVERY_FAILED: 'shop-order-delivery-failed',
49
+ PLAYER_LINKED: 'player-linked',
50
+ GAMESERVER_CREATED: 'gameserver-created',
51
+ GAMESERVER_UPDATED: 'gameserver-updated',
52
+ GAMESERVER_DELETED: 'gameserver-deleted',
53
+ PLAYER_BANNED: 'player-banned',
54
+ PLAYER_UNBANNED: 'player-unbanned',
55
+ PLAYER_DELETED: 'player-deleted',
56
+ } as const;
57
+
58
+ export class BaseTakaroEvent<T> extends BaseEvent<T> {
59
+ @IsEnum(TakaroEvents)
60
+ declare type: ValueOf<typeof TakaroEvents>;
61
+
62
+ @IsString()
63
+ msg: string;
64
+ }
65
+
66
+ export class TakaroEventPlayerNewIpDetected extends BaseEvent<TakaroEventPlayerNewIpDetected> {
67
+ @IsString()
68
+ type = TakaroEvents.PLAYER_NEW_IP_DETECTED;
69
+
70
+ @IsISO31661Alpha2()
71
+ country: string;
72
+
73
+ @IsString()
74
+ city: string;
75
+
76
+ @IsString()
77
+ longitude: string;
78
+
79
+ @IsString()
80
+ latitude: string;
81
+
82
+ @IsIP()
83
+ ip: string;
84
+ }
85
+
86
+ export class TakaroEventPlayerNewNameDetected extends BaseEvent<TakaroEventPlayerNewNameDetected> {
87
+ @IsString()
88
+ type = TakaroEvents.PLAYER_NEW_NAME_DETECTED;
89
+
90
+ @IsString()
91
+ @IsOptional()
92
+ oldName: string | null;
93
+
94
+ @IsString()
95
+ newName: string;
96
+ }
97
+
98
+ export class TakaroEventCurrencyDeducted extends BaseEvent<TakaroEventCurrencyDeducted> {
99
+ @IsString()
100
+ type = TakaroEvents.CURRENCY_DEDUCTED;
101
+
102
+ @IsNumber()
103
+ amount: number;
104
+ }
105
+
106
+ export class TakaroEventCurrencyAdded extends BaseEvent<TakaroEventCurrencyAdded> {
107
+ @IsString()
108
+ type = TakaroEvents.CURRENCY_ADDED;
109
+
110
+ @IsNumber()
111
+ amount: number;
112
+ }
113
+
114
+ export class TakaroEventCurrencyResetAll extends BaseEvent<TakaroEventCurrencyResetAll> {
115
+ @IsString()
116
+ type = TakaroEvents.CURRENCY_RESET_ALL;
117
+
118
+ @IsNumber()
119
+ affectedPlayerCount: number;
120
+ }
121
+
122
+ export class TakaroEventFunctionResult extends TakaroDTO<TakaroEventFunctionResult> {
123
+ @ValidateNested({ each: true })
124
+ @Type(() => TakaroEventFunctionLog)
125
+ logs: TakaroEventFunctionLog[];
126
+
127
+ @IsBoolean()
128
+ success: boolean;
129
+
130
+ @IsString()
131
+ @IsOptional()
132
+ reason: string;
133
+
134
+ @IsNumber()
135
+ @IsOptional()
136
+ tryAgainIn: number;
137
+ }
138
+
139
+ export class TakaroEventFunctionLog extends TakaroDTO<TakaroEventFunctionLog> {
140
+ @IsString()
141
+ msg: string;
142
+
143
+ @IsOptional()
144
+ details: Record<string, unknown> | string | undefined;
145
+ }
146
+
147
+ export class TakaroEventCommandDetails extends TakaroDTO<TakaroEventCommandDetails> {
148
+ @IsString()
149
+ id: string;
150
+ @IsString()
151
+ name: string;
152
+ @IsObject()
153
+ arguments: Record<string, unknown>;
154
+ }
155
+
156
+ export class TakaroEventHookDetails extends TakaroDTO<TakaroEventHookDetails> {
157
+ @IsString()
158
+ id: string;
159
+ @IsString()
160
+ name: string;
161
+ }
162
+
163
+ export class TakaroEventCronjobDetails extends TakaroDTO<TakaroEventCronjobDetails> {
164
+ @IsString()
165
+ id: string;
166
+ @IsString()
167
+ name: string;
168
+ }
169
+
170
+ export class TakaroEventCommandExecuted extends BaseEvent<TakaroEventCommandExecuted> {
171
+ @IsString()
172
+ type = TakaroEvents.COMMAND_EXECUTED;
173
+
174
+ @ValidateNested()
175
+ @Type(() => TakaroEventFunctionResult)
176
+ result: TakaroEventFunctionResult;
177
+
178
+ @IsOptional()
179
+ @ValidateNested()
180
+ @Type(() => TakaroEventCommandDetails)
181
+ command: TakaroEventCommandDetails;
182
+ }
183
+
184
+ export class TakaroEventCommandExecutionDenied extends BaseEvent<TakaroEventCommandExecutionDenied> {
185
+ @IsString()
186
+ type = TakaroEvents.COMMAND_EXECUTION_DENIED;
187
+
188
+ @ValidateNested()
189
+ @Type(() => TakaroEventCommandDetails)
190
+ command: TakaroEventCommandDetails;
191
+
192
+ @IsArray()
193
+ @IsString({ each: true })
194
+ missingPermissions: string[];
195
+ }
196
+
197
+ export class TakaroEventHookExecuted extends BaseEvent<TakaroEventHookExecuted> {
198
+ @IsString()
199
+ type = TakaroEvents.HOOK_EXECUTED;
200
+
201
+ @ValidateNested()
202
+ @Type(() => TakaroEventFunctionResult)
203
+ result: TakaroEventFunctionResult;
204
+
205
+ @IsOptional()
206
+ @ValidateNested()
207
+ @Type(() => TakaroEventHookDetails)
208
+ hook: TakaroEventHookDetails;
209
+ }
210
+
211
+ export class TakaroEventCronjobExecuted extends BaseEvent<TakaroEventCronjobExecuted> {
212
+ @IsString()
213
+ type = TakaroEvents.CRONJOB_EXECUTED;
214
+
215
+ @ValidateNested()
216
+ @Type(() => TakaroEventFunctionResult)
217
+ result: TakaroEventFunctionResult;
218
+
219
+ @IsOptional()
220
+ @ValidateNested()
221
+ @Type(() => TakaroEventCronjobDetails)
222
+ cronjob: TakaroEventCronjobDetails;
223
+ }
224
+
225
+ export class TakaroEventRoleMeta extends TakaroDTO<TakaroEventRoleMeta> {
226
+ @IsString()
227
+ id: string;
228
+ @IsString()
229
+ name: string;
230
+ }
231
+
232
+ export class TakaroEventRoleAssigned extends BaseEvent<TakaroEventRoleAssigned> {
233
+ @IsString()
234
+ type = TakaroEvents.ROLE_ASSIGNED;
235
+
236
+ @ValidateNested()
237
+ @Type(() => TakaroEventRoleMeta)
238
+ role: TakaroEventRoleMeta;
239
+ }
240
+
241
+ export class TakaroEventRoleRemoved extends BaseEvent<TakaroEventRoleRemoved> {
242
+ @IsString()
243
+ type = TakaroEvents.ROLE_REMOVED;
244
+
245
+ @ValidateNested()
246
+ @Type(() => TakaroEventRoleMeta)
247
+ role: TakaroEventRoleMeta;
248
+ }
249
+
250
+ export class TakaroEventRoleCreated extends BaseEvent<TakaroEventRoleCreated> {
251
+ @IsString()
252
+ type = TakaroEvents.ROLE_CREATED;
253
+
254
+ @ValidateNested()
255
+ @Type(() => TakaroEventRoleMeta)
256
+ role: TakaroEventRoleMeta;
257
+ }
258
+
259
+ export class TakaroEventRoleUpdated extends BaseEvent<TakaroEventRoleUpdated> {
260
+ @IsString()
261
+ type = TakaroEvents.ROLE_UPDATED;
262
+
263
+ @ValidateNested()
264
+ @Type(() => TakaroEventRoleMeta)
265
+ role: TakaroEventRoleMeta;
266
+ }
267
+
268
+ export class TakaroEventRoleDeleted extends BaseEvent<TakaroEventRoleDeleted> {
269
+ @IsString()
270
+ type = TakaroEvents.ROLE_DELETED;
271
+
272
+ @ValidateNested()
273
+ @Type(() => TakaroEventRoleMeta)
274
+ role: TakaroEventRoleMeta;
275
+ }
276
+
277
+ export class TakaroEventSettingsSet extends BaseEvent<TakaroEventSettingsSet> {
278
+ @IsString()
279
+ type = TakaroEvents.SETTINGS_SET;
280
+
281
+ @IsString()
282
+ key: string;
283
+
284
+ @IsString()
285
+ @IsOptional()
286
+ value: string | null;
287
+ }
288
+
289
+ export class TakaroEventServerStatusChanged extends BaseEvent<TakaroEventServerStatusChanged> {
290
+ @IsString()
291
+ type = TakaroEvents.SERVER_STATUS_CHANGED;
292
+
293
+ @IsString()
294
+ status: string;
295
+
296
+ @IsOptional()
297
+ details?: Record<string, unknown> | string | null;
298
+ }
299
+
300
+ export class TakaroEventModuleCreated extends BaseEvent<TakaroEventModuleCreated> {
301
+ @IsString()
302
+ type = TakaroEvents.MODULE_CREATED;
303
+ }
304
+
305
+ export class TakaroEventModuleUpdated extends BaseEvent<TakaroEventModuleUpdated> {
306
+ @IsString()
307
+ type = TakaroEvents.MODULE_UPDATED;
308
+
309
+ @IsString()
310
+ @IsOptional()
311
+ changeType?: 'created' | 'updated' | 'deleted';
312
+
313
+ @IsString()
314
+ @IsOptional()
315
+ componentType?: 'command' | 'hook' | 'cronjob' | 'permission' | 'function' | 'module';
316
+
317
+ @IsString()
318
+ @IsOptional()
319
+ componentName?: string;
320
+
321
+ @IsString()
322
+ @IsOptional()
323
+ componentId?: string;
324
+
325
+ @IsOptional()
326
+ previousValue?: Record<string, unknown>;
327
+
328
+ @IsOptional()
329
+ newValue?: Record<string, unknown>;
330
+ }
331
+
332
+ export class TakaroEventModuleDeleted extends BaseEvent<TakaroEventModuleDeleted> {
333
+ @IsString()
334
+ type = TakaroEvents.MODULE_DELETED;
335
+ }
336
+
337
+ export class TakaroEventModuleInstalled extends BaseEvent<TakaroEventModuleInstalled> {
338
+ @IsString()
339
+ type = TakaroEvents.MODULE_INSTALLED;
340
+
341
+ @IsJSON()
342
+ userConfig: string;
343
+
344
+ @IsJSON()
345
+ systemConfig: string;
346
+ }
347
+
348
+ export class TakaroEventModuleUninstalled extends BaseEvent<TakaroEventModuleUninstalled> {
349
+ @IsString()
350
+ type = TakaroEvents.MODULE_UNINSTALLED;
351
+ }
352
+ export class TakaroEventPlayerCreated extends BaseEvent<TakaroEventPlayerCreated> {
353
+ @IsString()
354
+ type = TakaroEvents.PLAYER_CREATED;
355
+ }
356
+
357
+ export class TakaroEventShopListingCreated extends BaseEvent<TakaroEventShopListingCreated> {
358
+ @IsString()
359
+ type = TakaroEvents.SHOP_LISTING_CREATED;
360
+ @IsUUID()
361
+ id: string;
362
+ }
363
+
364
+ export class TakaroEventShopListingUpdated extends BaseEvent<TakaroEventShopListingUpdated> {
365
+ @IsString()
366
+ type = TakaroEvents.SHOP_LISTING_UPDATED;
367
+ @IsUUID()
368
+ id: string;
369
+ }
370
+
371
+ export class TakaroEventShopListingDeleted extends BaseEvent<TakaroEventShopListingDeleted> {
372
+ @IsString()
373
+ type = TakaroEvents.SHOP_LISTING_DELETED;
374
+ @IsUUID()
375
+ id: string;
376
+ }
377
+
378
+ export class TakaroEventShopOrderCreated extends BaseEvent<TakaroEventShopOrderCreated> {
379
+ @IsString()
380
+ type = TakaroEvents.SHOP_ORDER_CREATED;
381
+ @IsUUID()
382
+ id: string;
383
+ @IsString()
384
+ listingName: string;
385
+ @IsNumber()
386
+ price: number;
387
+ @IsNumber()
388
+ amount: number;
389
+ @IsNumber()
390
+ totalPrice: number;
391
+ @ValidateNested({ each: true })
392
+ @Type(() => TakaroEventShopItem)
393
+ @IsOptional()
394
+ items?: TakaroEventShopItem[];
395
+ }
396
+
397
+ export class TakaroEventShopItem extends TakaroDTO<TakaroEventShopItem> {
398
+ @IsString()
399
+ name: string;
400
+ @IsString()
401
+ code: string;
402
+ @IsNumber()
403
+ amount: number;
404
+ @IsString()
405
+ @IsOptional()
406
+ quality?: string;
407
+ }
408
+
409
+ export class TakaroEventShopOrderStatusChanged extends BaseEvent<TakaroEventShopOrderStatusChanged> {
410
+ @IsString()
411
+ type = TakaroEvents.SHOP_ORDER_STATUS_CHANGED;
412
+ @IsUUID()
413
+ id: string;
414
+ @IsString()
415
+ status: string;
416
+ }
417
+
418
+ export class TakaroEventShopOrderDeliveryFailed extends BaseEvent<TakaroEventShopOrderDeliveryFailed> {
419
+ @IsString()
420
+ type = TakaroEvents.SHOP_ORDER_DELIVERY_FAILED;
421
+ @IsUUID()
422
+ id: string;
423
+ @IsString()
424
+ error: string;
425
+ @ValidateNested({ each: true })
426
+ @Type(() => TakaroEventShopItem)
427
+ items: TakaroEventShopItem[];
428
+ }
429
+
430
+ export class TakaroEventPlayerLinked extends BaseEvent<TakaroEventPlayerLinked> {
431
+ @IsString()
432
+ type = TakaroEvents.PLAYER_LINKED;
433
+ }
434
+
435
+ export class TakaroEventGameserverCreated extends BaseEvent<TakaroEventGameserverCreated> {
436
+ @IsString()
437
+ type = TakaroEvents.GAMESERVER_CREATED;
438
+ }
439
+
440
+ export class TakaroEventGameserverUpdated extends BaseEvent<TakaroEventGameserverUpdated> {
441
+ @IsString()
442
+ type = TakaroEvents.GAMESERVER_UPDATED;
443
+ }
444
+
445
+ export class TakaroEventGameserverDeleted extends BaseEvent<TakaroEventGameserverDeleted> {
446
+ @IsString()
447
+ type = TakaroEvents.GAMESERVER_DELETED;
448
+ }
449
+
450
+ export class TakaroEventPlayerBanned extends BaseEvent<TakaroEventPlayerBanned> {
451
+ @IsString()
452
+ type = TakaroEvents.PLAYER_BANNED;
453
+
454
+ @IsString()
455
+ @IsOptional()
456
+ reason?: string;
457
+
458
+ @IsString()
459
+ @IsOptional()
460
+ until?: string;
461
+
462
+ @IsBoolean()
463
+ isGlobal: boolean;
464
+
465
+ @IsBoolean()
466
+ takaroManaged: boolean;
467
+ }
468
+
469
+ export class TakaroEventPlayerUnbanned extends BaseEvent<TakaroEventPlayerUnbanned> {
470
+ @IsString()
471
+ type = TakaroEvents.PLAYER_UNBANNED;
472
+
473
+ @IsBoolean()
474
+ isGlobal: boolean;
475
+
476
+ @IsBoolean()
477
+ takaroManaged: boolean;
478
+ }
479
+
480
+ export class TakaroEventPlayerDeleted extends BaseEvent<TakaroEventPlayerDeleted> {
481
+ @IsString()
482
+ type = TakaroEvents.PLAYER_DELETED;
483
+
484
+ @IsString()
485
+ @IsOptional()
486
+ playerName?: string;
487
+ }
488
+
489
+ export const TakaroEventsMapping = {
490
+ [TakaroEvents.ROLE_ASSIGNED]: TakaroEventRoleAssigned,
491
+ [TakaroEvents.PLAYER_NEW_IP_DETECTED]: TakaroEventPlayerNewIpDetected,
492
+ [TakaroEvents.PLAYER_NEW_NAME_DETECTED]: TakaroEventPlayerNewNameDetected,
493
+ [TakaroEvents.CURRENCY_DEDUCTED]: TakaroEventCurrencyDeducted,
494
+ [TakaroEvents.CURRENCY_ADDED]: TakaroEventCurrencyAdded,
495
+ [TakaroEvents.CURRENCY_RESET_ALL]: TakaroEventCurrencyResetAll,
496
+ [TakaroEvents.COMMAND_EXECUTED]: TakaroEventCommandExecuted,
497
+ [TakaroEvents.COMMAND_EXECUTION_DENIED]: TakaroEventCommandExecutionDenied,
498
+ [TakaroEvents.ROLE_REMOVED]: TakaroEventRoleRemoved,
499
+ [TakaroEvents.ROLE_CREATED]: TakaroEventRoleCreated,
500
+ [TakaroEvents.ROLE_UPDATED]: TakaroEventRoleUpdated,
501
+ [TakaroEvents.ROLE_DELETED]: TakaroEventRoleDeleted,
502
+ [TakaroEvents.SETTINGS_SET]: TakaroEventSettingsSet,
503
+ [TakaroEvents.HOOK_EXECUTED]: TakaroEventHookExecuted,
504
+ [TakaroEvents.CRONJOB_EXECUTED]: TakaroEventCronjobExecuted,
505
+ [TakaroEvents.SERVER_STATUS_CHANGED]: TakaroEventServerStatusChanged,
506
+ [TakaroEvents.MODULE_CREATED]: TakaroEventModuleCreated,
507
+ [TakaroEvents.MODULE_UPDATED]: TakaroEventModuleUpdated,
508
+ [TakaroEvents.MODULE_DELETED]: TakaroEventModuleDeleted,
509
+ [TakaroEvents.MODULE_INSTALLED]: TakaroEventModuleInstalled,
510
+ [TakaroEvents.MODULE_UNINSTALLED]: TakaroEventModuleUninstalled,
511
+ [TakaroEvents.PLAYER_CREATED]: TakaroEventPlayerCreated,
512
+ [TakaroEvents.SHOP_LISTING_CREATED]: TakaroEventShopListingCreated,
513
+ [TakaroEvents.SHOP_LISTING_UPDATED]: TakaroEventShopListingUpdated,
514
+ [TakaroEvents.SHOP_LISTING_DELETED]: TakaroEventShopListingDeleted,
515
+ [TakaroEvents.SHOP_ORDER_CREATED]: TakaroEventShopOrderCreated,
516
+ [TakaroEvents.SHOP_ORDER_STATUS_CHANGED]: TakaroEventShopOrderStatusChanged,
517
+ [TakaroEvents.SHOP_ORDER_DELIVERY_FAILED]: TakaroEventShopOrderDeliveryFailed,
518
+ [TakaroEvents.PLAYER_LINKED]: TakaroEventPlayerLinked,
519
+ [TakaroEvents.GAMESERVER_CREATED]: TakaroEventGameserverCreated,
520
+ [TakaroEvents.GAMESERVER_UPDATED]: TakaroEventGameserverUpdated,
521
+ [TakaroEvents.GAMESERVER_DELETED]: TakaroEventGameserverDeleted,
522
+ [TakaroEvents.PLAYER_BANNED]: TakaroEventPlayerBanned,
523
+ [TakaroEvents.PLAYER_UNBANNED]: TakaroEventPlayerUnbanned,
524
+ [TakaroEvents.PLAYER_DELETED]: TakaroEventPlayerDeleted,
525
+ } as const;
package/src/main.ts ADDED
@@ -0,0 +1,47 @@
1
+ import { ModuleTransferDTO } from './BuiltinModule.js';
2
+ import { ChatBridge } from './modules/chatBridge/index.js';
3
+ import { DailyRewards } from './modules/dailyRewards/index.js';
4
+ import { EconomyUtils } from './modules/economyUtils/index.js';
5
+ import { GeoBlock } from './modules/geoBlock/index.js';
6
+ import { Gimme } from './modules/gimme/index.js';
7
+ import { HighPingKicker } from './modules/highPingKicker/index.js';
8
+ import { Lottery } from './modules/lottery/index.js';
9
+ import { PlayerOnboarding } from './modules/playerOnboarding/index.js';
10
+ import { ServerMessages } from './modules/serverMessages/index.js';
11
+ import { Teleports } from './modules/teleports/index.js';
12
+ import { TimedShutdown } from './modules/timedShutdown/index.js';
13
+ import { Utils } from './modules/utils/index.js';
14
+
15
+ export {
16
+ ModuleTransferDTO,
17
+ ModuleTransferVersionDTO,
18
+ ICommand,
19
+ ICommandArgument,
20
+ ICronJob,
21
+ IHook,
22
+ IFunction,
23
+ } from './BuiltinModule.js';
24
+ export * from './dto/index.js';
25
+
26
+ let cached: Array<ModuleTransferDTO<unknown>> | null = null;
27
+
28
+ export function getModules(): Array<ModuleTransferDTO<unknown>> {
29
+ if (!cached) {
30
+ cached = [
31
+ new Utils(),
32
+ new Teleports(),
33
+ new PlayerOnboarding(),
34
+ new ServerMessages(),
35
+ new ChatBridge(),
36
+ new Gimme(),
37
+ new HighPingKicker(),
38
+ new EconomyUtils(),
39
+ new Lottery(),
40
+ new GeoBlock(),
41
+ new TimedShutdown(),
42
+ new DailyRewards(),
43
+ ];
44
+ }
45
+
46
+ return cached;
47
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "rules": {
3
+ "no-console": ["off"]
4
+ }
5
+ }
@@ -0,0 +1,18 @@
1
+ import { takaro, data } from '@takaro/helpers';
2
+
3
+ async function main() {
4
+ try {
5
+ if (data.eventData.author.isBot) return;
6
+
7
+ await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {
8
+ message: `[D] ${data.eventData.author.displayName}: ${data.eventData.msg}`,
9
+ });
10
+ } catch (error) {
11
+ console.error(error);
12
+ await takaro.discordControllerSendMessage(data.discordChannelId, {
13
+ message: 'Failed to forward your message to the game. Please try again later.',
14
+ });
15
+ }
16
+ }
17
+
18
+ await main();
@@ -0,0 +1,18 @@
1
+ import { takaro, data } from '@takaro/helpers';
2
+
3
+ async function main() {
4
+ const onlyGlobal = data.module.userConfig.onlyGlobalChat;
5
+
6
+ if (onlyGlobal && data.eventData.channel !== 'global') return;
7
+
8
+ const discordChannel = data.module.systemConfig.hooks['DiscordToGame'].discordChannelId;
9
+
10
+ const sender = data.player ? data.player.name : 'Non-player';
11
+ const message = `**${sender}**: ${data.eventData.msg}`;
12
+
13
+ await takaro.discord.discordControllerSendMessage(discordChannel, {
14
+ message: message,
15
+ });
16
+ }
17
+
18
+ await main();
@@ -0,0 +1,11 @@
1
+ import { takaro, data } from '@takaro/helpers';
2
+
3
+ async function main() {
4
+ const discordChannel = data.module.systemConfig.hooks['DiscordToGame'].discordChannelId;
5
+
6
+ await takaro.discord.discordControllerSendMessage(discordChannel, {
7
+ message: `[⚡ Connected]: ${data.player.name}`,
8
+ });
9
+ }
10
+
11
+ await main();
@@ -0,0 +1,11 @@
1
+ import { takaro, data } from '@takaro/helpers';
2
+
3
+ async function main() {
4
+ const discordChannel = data.module.systemConfig.hooks['DiscordToGame'].discordChannelId;
5
+
6
+ await takaro.discord.discordControllerSendMessage(discordChannel, {
7
+ message: `[👋 Disconnected]: ${data.player.name}`,
8
+ });
9
+ }
10
+
11
+ await main();
@@ -0,0 +1,64 @@
1
+ import { ModuleTransferDTO, IHook, ModuleTransferVersionDTO } from '../../BuiltinModule.js';
2
+ import { HookEvents } from '../../dto/index.js';
3
+
4
+ export class ChatBridge extends ModuleTransferDTO<ChatBridge> {
5
+ constructor() {
6
+ super();
7
+ this.name = 'chatBridge';
8
+ this.author = 'Takaro';
9
+ this.supportedGames = ['all'];
10
+ this.versions = [
11
+ new ModuleTransferVersionDTO({
12
+ tag: '0.0.1',
13
+ description: 'Connect chat to other services like Discord.',
14
+ configSchema: JSON.stringify({
15
+ $schema: 'http://json-schema.org/draft-07/schema#',
16
+ type: 'object',
17
+ properties: {
18
+ sendPlayerConnected: {
19
+ title: 'Send player connected',
20
+ type: 'boolean',
21
+ description: 'Send a message when a player connects.',
22
+ default: true,
23
+ },
24
+ sendPlayerDisconnected: {
25
+ title: 'Send player disconnected',
26
+ type: 'boolean',
27
+ description: 'Send a message when a player disconnects.',
28
+ default: true,
29
+ },
30
+ onlyGlobalChat: {
31
+ title: 'Only global chat',
32
+ type: 'boolean',
33
+ default: true,
34
+ description: 'Only relay messages from global chat. (no team chat or private messages)',
35
+ },
36
+ },
37
+ additionalProperties: false,
38
+ }),
39
+ hooks: [
40
+ new IHook({
41
+ eventType: HookEvents.DISCORD_MESSAGE,
42
+ name: 'DiscordToGame',
43
+ function: this.loadFn('hooks', 'DiscordToGame'),
44
+ }),
45
+ new IHook({
46
+ eventType: HookEvents.CHAT_MESSAGE,
47
+ name: 'GameToDiscord',
48
+ function: this.loadFn('hooks', 'GameToDiscord'),
49
+ }),
50
+ new IHook({
51
+ eventType: HookEvents.PLAYER_CONNECTED,
52
+ name: 'PlayerConnected',
53
+ function: this.loadFn('hooks', 'PlayerConnected'),
54
+ }),
55
+ new IHook({
56
+ eventType: HookEvents.PLAYER_DISCONNECTED,
57
+ name: 'PlayerDisconnected',
58
+ function: this.loadFn('hooks', 'PlayerDisconnected'),
59
+ }),
60
+ ],
61
+ }),
62
+ ];
63
+ }
64
+ }