@takaro/modules 0.0.1

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 (227) hide show
  1. package/README.md +3 -0
  2. package/dist/BuiltinModule.d.ts +49 -0
  3. package/dist/BuiltinModule.js +194 -0
  4. package/dist/BuiltinModule.js.map +1 -0
  5. package/dist/dto/base.d.ts +6 -0
  6. package/dist/dto/base.js +28 -0
  7. package/dist/dto/base.js.map +1 -0
  8. package/dist/dto/discordEvents.d.ts +31 -0
  9. package/dist/dto/discordEvents.js +92 -0
  10. package/dist/dto/discordEvents.js.map +1 -0
  11. package/dist/dto/gameEvents.d.ts +84 -0
  12. package/dist/dto/gameEvents.js +190 -0
  13. package/dist/dto/gameEvents.js.map +1 -0
  14. package/dist/dto/index.d.ts +37 -0
  15. package/dist/dto/index.js +18 -0
  16. package/dist/dto/index.js.map +1 -0
  17. package/dist/dto/takaroEvents.d.ts +150 -0
  18. package/dist/dto/takaroEvents.js +422 -0
  19. package/dist/dto/takaroEvents.js.map +1 -0
  20. package/dist/main.d.ts +4 -0
  21. package/dist/main.js +31 -0
  22. package/dist/main.js.map +1 -0
  23. package/dist/modules/chatBridge/hooks/DiscordToGame.d.ts +1 -0
  24. package/dist/modules/chatBridge/hooks/DiscordToGame.js +18 -0
  25. package/dist/modules/chatBridge/hooks/DiscordToGame.js.map +1 -0
  26. package/dist/modules/chatBridge/hooks/GameToDiscord.d.ts +1 -0
  27. package/dist/modules/chatBridge/hooks/GameToDiscord.js +14 -0
  28. package/dist/modules/chatBridge/hooks/GameToDiscord.js.map +1 -0
  29. package/dist/modules/chatBridge/hooks/PlayerConnected.d.ts +1 -0
  30. package/dist/modules/chatBridge/hooks/PlayerConnected.js +9 -0
  31. package/dist/modules/chatBridge/hooks/PlayerConnected.js.map +1 -0
  32. package/dist/modules/chatBridge/hooks/PlayerDisconnected.d.ts +1 -0
  33. package/dist/modules/chatBridge/hooks/PlayerDisconnected.js +9 -0
  34. package/dist/modules/chatBridge/hooks/PlayerDisconnected.js.map +1 -0
  35. package/dist/modules/chatBridge/index.d.ts +4 -0
  36. package/dist/modules/chatBridge/index.js +54 -0
  37. package/dist/modules/chatBridge/index.js.map +1 -0
  38. package/dist/modules/economyUtils/commands/balance.d.ts +1 -0
  39. package/dist/modules/economyUtils/commands/balance.js +7 -0
  40. package/dist/modules/economyUtils/commands/balance.js.map +1 -0
  41. package/dist/modules/economyUtils/commands/confirmTransfer.d.ts +1 -0
  42. package/dist/modules/economyUtils/commands/confirmTransfer.js +38 -0
  43. package/dist/modules/economyUtils/commands/confirmTransfer.js.map +1 -0
  44. package/dist/modules/economyUtils/commands/grantCurrency.d.ts +1 -0
  45. package/dist/modules/economyUtils/commands/grantCurrency.js +31 -0
  46. package/dist/modules/economyUtils/commands/grantCurrency.js.map +1 -0
  47. package/dist/modules/economyUtils/commands/revokeCurrency.d.ts +1 -0
  48. package/dist/modules/economyUtils/commands/revokeCurrency.js +31 -0
  49. package/dist/modules/economyUtils/commands/revokeCurrency.js.map +1 -0
  50. package/dist/modules/economyUtils/commands/topCurrency.d.ts +1 -0
  51. package/dist/modules/economyUtils/commands/topCurrency.js +22 -0
  52. package/dist/modules/economyUtils/commands/topCurrency.js.map +1 -0
  53. package/dist/modules/economyUtils/commands/transfer.d.ts +1 -0
  54. package/dist/modules/economyUtils/commands/transfer.js +55 -0
  55. package/dist/modules/economyUtils/commands/transfer.js.map +1 -0
  56. package/dist/modules/economyUtils/index.d.ts +4 -0
  57. package/dist/modules/economyUtils/index.js +117 -0
  58. package/dist/modules/economyUtils/index.js.map +1 -0
  59. package/dist/modules/geoBlock/hooks/IPDetected.d.ts +1 -0
  60. package/dist/modules/geoBlock/hooks/IPDetected.js +50 -0
  61. package/dist/modules/geoBlock/hooks/IPDetected.js.map +1 -0
  62. package/dist/modules/geoBlock/index.d.ts +8 -0
  63. package/dist/modules/geoBlock/index.js +321 -0
  64. package/dist/modules/geoBlock/index.js.map +1 -0
  65. package/dist/modules/gimme/commands/gimme.d.ts +1 -0
  66. package/dist/modules/gimme/commands/gimme.js +23 -0
  67. package/dist/modules/gimme/commands/gimme.js.map +1 -0
  68. package/dist/modules/gimme/index.d.ts +4 -0
  69. package/dist/modules/gimme/index.js +43 -0
  70. package/dist/modules/gimme/index.js.map +1 -0
  71. package/dist/modules/highPingKicker/cronJobs/Ping check.d.ts +1 -0
  72. package/dist/modules/highPingKicker/cronJobs/Ping check.js +54 -0
  73. package/dist/modules/highPingKicker/cronJobs/Ping check.js.map +1 -0
  74. package/dist/modules/highPingKicker/index.d.ts +4 -0
  75. package/dist/modules/highPingKicker/index.js +34 -0
  76. package/dist/modules/highPingKicker/index.js.map +1 -0
  77. package/dist/modules/lottery/commands/buyTicket.d.ts +1 -0
  78. package/dist/modules/lottery/commands/buyTicket.js +54 -0
  79. package/dist/modules/lottery/commands/buyTicket.js.map +1 -0
  80. package/dist/modules/lottery/commands/nextDraw.d.ts +1 -0
  81. package/dist/modules/lottery/commands/nextDraw.js +34 -0
  82. package/dist/modules/lottery/commands/nextDraw.js.map +1 -0
  83. package/dist/modules/lottery/commands/viewTickets.d.ts +1 -0
  84. package/dist/modules/lottery/commands/viewTickets.js +23 -0
  85. package/dist/modules/lottery/commands/viewTickets.js.map +1 -0
  86. package/dist/modules/lottery/cronJobs/drawLottery.d.ts +1 -0
  87. package/dist/modules/lottery/cronJobs/drawLottery.js +96 -0
  88. package/dist/modules/lottery/cronJobs/drawLottery.js.map +1 -0
  89. package/dist/modules/lottery/index.d.ts +4 -0
  90. package/dist/modules/lottery/index.js +73 -0
  91. package/dist/modules/lottery/index.js.map +1 -0
  92. package/dist/modules/playerOnboarding/commands/starterkit.d.ts +1 -0
  93. package/dist/modules/playerOnboarding/commands/starterkit.js +34 -0
  94. package/dist/modules/playerOnboarding/commands/starterkit.js.map +1 -0
  95. package/dist/modules/playerOnboarding/hooks/playerConnected.d.ts +1 -0
  96. package/dist/modules/playerOnboarding/hooks/playerConnected.js +11 -0
  97. package/dist/modules/playerOnboarding/hooks/playerConnected.js.map +1 -0
  98. package/dist/modules/playerOnboarding/index.d.ts +4 -0
  99. package/dist/modules/playerOnboarding/index.js +51 -0
  100. package/dist/modules/playerOnboarding/index.js.map +1 -0
  101. package/dist/modules/serverMessages/cronJobs/Automated message.d.ts +1 -0
  102. package/dist/modules/serverMessages/cronJobs/Automated message.js +9 -0
  103. package/dist/modules/serverMessages/cronJobs/Automated message.js.map +1 -0
  104. package/dist/modules/serverMessages/index.d.ts +4 -0
  105. package/dist/modules/serverMessages/index.js +35 -0
  106. package/dist/modules/serverMessages/index.js.map +1 -0
  107. package/dist/modules/teleports/commands/deletetp.d.ts +1 -0
  108. package/dist/modules/teleports/commands/deletetp.js +20 -0
  109. package/dist/modules/teleports/commands/deletetp.js.map +1 -0
  110. package/dist/modules/teleports/commands/deletewaypoint.d.ts +1 -0
  111. package/dist/modules/teleports/commands/deletewaypoint.js +54 -0
  112. package/dist/modules/teleports/commands/deletewaypoint.js.map +1 -0
  113. package/dist/modules/teleports/commands/listwaypoints.d.ts +1 -0
  114. package/dist/modules/teleports/commands/listwaypoints.js +36 -0
  115. package/dist/modules/teleports/commands/listwaypoints.js.map +1 -0
  116. package/dist/modules/teleports/commands/setprivate.d.ts +1 -0
  117. package/dist/modules/teleports/commands/setprivate.js +31 -0
  118. package/dist/modules/teleports/commands/setprivate.js.map +1 -0
  119. package/dist/modules/teleports/commands/setpublic.d.ts +1 -0
  120. package/dist/modules/teleports/commands/setpublic.js +55 -0
  121. package/dist/modules/teleports/commands/setpublic.js.map +1 -0
  122. package/dist/modules/teleports/commands/settp.d.ts +1 -0
  123. package/dist/modules/teleports/commands/settp.js +42 -0
  124. package/dist/modules/teleports/commands/settp.js.map +1 -0
  125. package/dist/modules/teleports/commands/setwaypoint.d.ts +1 -0
  126. package/dist/modules/teleports/commands/setwaypoint.js +88 -0
  127. package/dist/modules/teleports/commands/setwaypoint.js.map +1 -0
  128. package/dist/modules/teleports/commands/teleport.d.ts +1 -0
  129. package/dist/modules/teleports/commands/teleport.js +74 -0
  130. package/dist/modules/teleports/commands/teleport.js.map +1 -0
  131. package/dist/modules/teleports/commands/teleportwaypoint.d.ts +1 -0
  132. package/dist/modules/teleports/commands/teleportwaypoint.js +50 -0
  133. package/dist/modules/teleports/commands/teleportwaypoint.js.map +1 -0
  134. package/dist/modules/teleports/commands/tplist.d.ts +1 -0
  135. package/dist/modules/teleports/commands/tplist.js +45 -0
  136. package/dist/modules/teleports/commands/tplist.js.map +1 -0
  137. package/dist/modules/teleports/functions/utils.d.ts +2 -0
  138. package/dist/modules/teleports/functions/utils.js +18 -0
  139. package/dist/modules/teleports/functions/utils.js.map +1 -0
  140. package/dist/modules/teleports/index.d.ts +4 -0
  141. package/dist/modules/teleports/index.js +184 -0
  142. package/dist/modules/teleports/index.js.map +1 -0
  143. package/dist/modules/utils/commands/help.d.ts +1 -0
  144. package/dist/modules/utils/commands/help.js +29 -0
  145. package/dist/modules/utils/commands/help.js.map +1 -0
  146. package/dist/modules/utils/commands/ping.d.ts +1 -0
  147. package/dist/modules/utils/commands/ping.js +6 -0
  148. package/dist/modules/utils/commands/ping.js.map +1 -0
  149. package/dist/modules/utils/index.d.ts +4 -0
  150. package/dist/modules/utils/index.js +35 -0
  151. package/dist/modules/utils/index.js.map +1 -0
  152. package/dist/modules.json +478 -0
  153. package/package.json +26 -0
  154. package/scripts/buildBuiltinJson.ts +14 -0
  155. package/src/BuiltinModule.ts +125 -0
  156. package/src/__tests__/aliases.integration.test.ts +54 -0
  157. package/src/__tests__/builtinmodule.unit.test.ts +13 -0
  158. package/src/__tests__/commandArgs.integration.test.ts +285 -0
  159. package/src/__tests__/economyUtils.integration.test.ts +488 -0
  160. package/src/__tests__/geoblock.integration.test.ts +380 -0
  161. package/src/__tests__/gimme.integration.test.ts +97 -0
  162. package/src/__tests__/help.integration.test.ts +133 -0
  163. package/src/__tests__/lottery.integration.test.ts +332 -0
  164. package/src/__tests__/modulePermission.integration.test.ts +192 -0
  165. package/src/__tests__/onboarding.integration.test.ts +123 -0
  166. package/src/__tests__/ping.integration.test.ts +36 -0
  167. package/src/__tests__/roleExpiry.integration.test.ts +74 -0
  168. package/src/__tests__/serverMessages.integration.test.ts +104 -0
  169. package/src/__tests__/systemConfigCost.integration.test.ts +196 -0
  170. package/src/__tests__/teleports/listtp.integration.test.ts +115 -0
  171. package/src/__tests__/teleports/publicteleports.integration.test.ts +350 -0
  172. package/src/__tests__/teleports/teleport.integration.test.ts +109 -0
  173. package/src/__tests__/teleports/tpManagement.integration.test.ts +175 -0
  174. package/src/__tests__/teleports/waypoints.integration.test.ts +613 -0
  175. package/src/dto/base.ts +13 -0
  176. package/src/dto/discordEvents.ts +69 -0
  177. package/src/dto/gameEvents.ts +154 -0
  178. package/src/dto/index.ts +25 -0
  179. package/src/dto/takaroEvents.ts +290 -0
  180. package/src/main.ts +36 -0
  181. package/src/modules/.eslintrc +5 -0
  182. package/src/modules/chatBridge/hooks/DiscordToGame.js +18 -0
  183. package/src/modules/chatBridge/hooks/GameToDiscord.js +18 -0
  184. package/src/modules/chatBridge/hooks/PlayerConnected.js +11 -0
  185. package/src/modules/chatBridge/hooks/PlayerDisconnected.js +11 -0
  186. package/src/modules/chatBridge/index.ts +59 -0
  187. package/src/modules/economyUtils/commands/balance.js +8 -0
  188. package/src/modules/economyUtils/commands/confirmTransfer.js +55 -0
  189. package/src/modules/economyUtils/commands/grantCurrency.js +38 -0
  190. package/src/modules/economyUtils/commands/revokeCurrency.js +38 -0
  191. package/src/modules/economyUtils/commands/topCurrency.js +29 -0
  192. package/src/modules/economyUtils/commands/transfer.js +73 -0
  193. package/src/modules/economyUtils/index.ts +125 -0
  194. package/src/modules/geoBlock/hooks/IPDetected.js +52 -0
  195. package/src/modules/geoBlock/index.ts +331 -0
  196. package/src/modules/gimme/commands/gimme.js +28 -0
  197. package/src/modules/gimme/index.ts +49 -0
  198. package/src/modules/highPingKicker/cronJobs/Ping check.js +66 -0
  199. package/src/modules/highPingKicker/index.ts +39 -0
  200. package/src/modules/lottery/commands/buyTicket.js +68 -0
  201. package/src/modules/lottery/commands/nextDraw.js +45 -0
  202. package/src/modules/lottery/commands/viewTickets.js +32 -0
  203. package/src/modules/lottery/cronJobs/drawLottery.js +124 -0
  204. package/src/modules/lottery/index.ts +80 -0
  205. package/src/modules/playerOnboarding/commands/starterkit.js +47 -0
  206. package/src/modules/playerOnboarding/hooks/playerConnected.js +14 -0
  207. package/src/modules/playerOnboarding/index.ts +58 -0
  208. package/src/modules/serverMessages/cronJobs/Automated message.js +12 -0
  209. package/src/modules/serverMessages/index.ts +40 -0
  210. package/src/modules/teleports/commands/deletetp.js +25 -0
  211. package/src/modules/teleports/commands/deletewaypoint.js +77 -0
  212. package/src/modules/teleports/commands/listwaypoints.js +55 -0
  213. package/src/modules/teleports/commands/setprivate.js +39 -0
  214. package/src/modules/teleports/commands/setpublic.js +71 -0
  215. package/src/modules/teleports/commands/settp.js +54 -0
  216. package/src/modules/teleports/commands/setwaypoint.js +112 -0
  217. package/src/modules/teleports/commands/teleport.js +93 -0
  218. package/src/modules/teleports/commands/teleportwaypoint.js +72 -0
  219. package/src/modules/teleports/commands/tplist.js +61 -0
  220. package/src/modules/teleports/functions/utils.js +20 -0
  221. package/src/modules/teleports/index.ts +193 -0
  222. package/src/modules/utils/commands/help.js +38 -0
  223. package/src/modules/utils/commands/ping.js +7 -0
  224. package/src/modules/utils/index.ts +40 -0
  225. package/tsconfig.build.json +10 -0
  226. package/tsconfig.json +9 -0
  227. package/typedoc.json +3 -0
@@ -0,0 +1,321 @@
1
+ import { BuiltinModule, IHook, IPermission } from '../../BuiltinModule.js';
2
+ import { HookEvents } from '../../dto/index.js';
3
+ import { Duration } from 'luxon';
4
+ // temporary solution
5
+ export const countryCodes = [
6
+ { code: 'AF', name: 'Afghanistan' },
7
+ { code: 'AX', name: 'Aland Islands' },
8
+ { code: 'AL', name: 'Albania' },
9
+ { code: 'DZ', name: 'Algeria' },
10
+ { code: 'AS', name: 'American Samoa' },
11
+ { code: 'AD', name: 'Andorra' },
12
+ { code: 'AO', name: 'Angola' },
13
+ { code: 'AI', name: 'Anguilla' },
14
+ { code: 'AQ', name: 'Antarctica' },
15
+ { code: 'AG', name: 'Antigua And Barbuda' },
16
+ { code: 'AR', name: 'Argentina' },
17
+ { code: 'AM', name: 'Armenia' },
18
+ { code: 'AW', name: 'Aruba' },
19
+ { code: 'AU', name: 'Australia' },
20
+ { code: 'AT', name: 'Austria' },
21
+ { code: 'AZ', name: 'Azerbaijan' },
22
+ { code: 'BS', name: 'Bahamas' },
23
+ { code: 'BH', name: 'Bahrain' },
24
+ { code: 'BD', name: 'Bangladesh' },
25
+ { code: 'BB', name: 'Barbados' },
26
+ { code: 'BY', name: 'Belarus' },
27
+ { code: 'BE', name: 'Belgium' },
28
+ { code: 'BZ', name: 'Belize' },
29
+ { code: 'BJ', name: 'Benin' },
30
+ { code: 'BM', name: 'Bermuda' },
31
+ { code: 'BT', name: 'Bhutan' },
32
+ { code: 'BO', name: 'Bolivia' },
33
+ { code: 'BA', name: 'Bosnia And Herzegovina' },
34
+ { code: 'BW', name: 'Botswana' },
35
+ { code: 'BV', name: 'Bouvet Island' },
36
+ { code: 'BR', name: 'Brazil' },
37
+ { code: 'IO', name: 'British Indian Ocean Territory' },
38
+ { code: 'BN', name: 'Brunei Darussalam' },
39
+ { code: 'BG', name: 'Bulgaria' },
40
+ { code: 'BF', name: 'Burkina Faso' },
41
+ { code: 'BI', name: 'Burundi' },
42
+ { code: 'KH', name: 'Cambodia' },
43
+ { code: 'CM', name: 'Cameroon' },
44
+ { code: 'CA', name: 'Canada' },
45
+ { code: 'CV', name: 'Cape Verde' },
46
+ { code: 'KY', name: 'Cayman Islands' },
47
+ { code: 'CF', name: 'Central African Republic' },
48
+ { code: 'TD', name: 'Chad' },
49
+ { code: 'CL', name: 'Chile' },
50
+ { code: 'CN', name: 'China' },
51
+ { code: 'CX', name: 'Christmas Island' },
52
+ { code: 'CC', name: 'Cocos (Keeling) Islands' },
53
+ { code: 'CO', name: 'Colombia' },
54
+ { code: 'KM', name: 'Comoros' },
55
+ { code: 'CG', name: 'Congo' },
56
+ { code: 'CD', name: 'Congo, Democratic Republic' },
57
+ { code: 'CK', name: 'Cook Islands' },
58
+ { code: 'CR', name: 'Costa Rica' },
59
+ // eslint-disable-next-line quotes
60
+ { code: 'CI', name: "Cote D'Ivoire" },
61
+ { code: 'HR', name: 'Croatia' },
62
+ { code: 'CU', name: 'Cuba' },
63
+ { code: 'CY', name: 'Cyprus' },
64
+ { code: 'CZ', name: 'Czech Republic' },
65
+ { code: 'DK', name: 'Denmark' },
66
+ { code: 'DJ', name: 'Djibouti' },
67
+ { code: 'DM', name: 'Dominica' },
68
+ { code: 'DO', name: 'Dominican Republic' },
69
+ { code: 'EC', name: 'Ecuador' },
70
+ { code: 'EG', name: 'Egypt' },
71
+ { code: 'SV', name: 'El Salvador' },
72
+ { code: 'GQ', name: 'Equatorial Guinea' },
73
+ { code: 'ER', name: 'Eritrea' },
74
+ { code: 'EE', name: 'Estonia' },
75
+ { code: 'ET', name: 'Ethiopia' },
76
+ { code: 'FK', name: 'Falkland Islands (Malvinas)' },
77
+ { code: 'FO', name: 'Faroe Islands' },
78
+ { code: 'FJ', name: 'Fiji' },
79
+ { code: 'FI', name: 'Finland' },
80
+ { code: 'FR', name: 'France' },
81
+ { code: 'GF', name: 'French Guiana' },
82
+ { code: 'PF', name: 'French Polynesia' },
83
+ { code: 'TF', name: 'French Southern Territories' },
84
+ { code: 'GA', name: 'Gabon' },
85
+ { code: 'GM', name: 'Gambia' },
86
+ { code: 'GE', name: 'Georgia' },
87
+ { code: 'DE', name: 'Germany' },
88
+ { code: 'GH', name: 'Ghana' },
89
+ { code: 'GI', name: 'Gibraltar' },
90
+ { code: 'GR', name: 'Greece' },
91
+ { code: 'GL', name: 'Greenland' },
92
+ { code: 'GD', name: 'Grenada' },
93
+ { code: 'GP', name: 'Guadeloupe' },
94
+ { code: 'GU', name: 'Guam' },
95
+ { code: 'GT', name: 'Guatemala' },
96
+ { code: 'GG', name: 'Guernsey' },
97
+ { code: 'GN', name: 'Guinea' },
98
+ { code: 'GW', name: 'Guinea-Bissau' },
99
+ { code: 'GY', name: 'Guyana' },
100
+ { code: 'HT', name: 'Haiti' },
101
+ // { code: 'HM', name: 'Heard Island & Mcdonald Islands' },
102
+ { code: 'VA', name: 'Holy See (Vatican City State)' },
103
+ { code: 'HN', name: 'Honduras' },
104
+ { code: 'HK', name: 'Hong Kong' },
105
+ { code: 'HU', name: 'Hungary' },
106
+ { code: 'IS', name: 'Iceland' },
107
+ { code: 'IN', name: 'India' },
108
+ { code: 'ID', name: 'Indonesia' },
109
+ { code: 'IR', name: 'Iran, Islamic Republic Of' },
110
+ { code: 'IQ', name: 'Iraq' },
111
+ { code: 'IE', name: 'Ireland' },
112
+ { code: 'IM', name: 'Isle Of Man' },
113
+ { code: 'IL', name: 'Israel' },
114
+ { code: 'IT', name: 'Italy' },
115
+ { code: 'JM', name: 'Jamaica' },
116
+ { code: 'JP', name: 'Japan' },
117
+ { code: 'JE', name: 'Jersey' },
118
+ { code: 'JO', name: 'Jordan' },
119
+ { code: 'KZ', name: 'Kazakhstan' },
120
+ { code: 'KE', name: 'Kenya' },
121
+ { code: 'KI', name: 'Kiribati' },
122
+ { code: 'KR', name: 'Korea' },
123
+ { code: 'KW', name: 'Kuwait' },
124
+ { code: 'KG', name: 'Kyrgyzstan' },
125
+ // eslint-disable-next-line quotes
126
+ { code: 'LA', name: "Lao People's Democratic Republic" },
127
+ { code: 'LV', name: 'Latvia' },
128
+ { code: 'LB', name: 'Lebanon' },
129
+ { code: 'LS', name: 'Lesotho' },
130
+ { code: 'LR', name: 'Liberia' },
131
+ { code: 'LY', name: 'Libyan Arab Jamahiriya' },
132
+ { code: 'LI', name: 'Liechtenstein' },
133
+ { code: 'LT', name: 'Lithuania' },
134
+ { code: 'LU', name: 'Luxembourg' },
135
+ { code: 'MO', name: 'Macao' },
136
+ { code: 'MK', name: 'Macedonia' },
137
+ { code: 'MG', name: 'Madagascar' },
138
+ { code: 'MW', name: 'Malawi' },
139
+ { code: 'MY', name: 'Malaysia' },
140
+ { code: 'MV', name: 'Maldives' },
141
+ { code: 'ML', name: 'Mali' },
142
+ { code: 'MT', name: 'Malta' },
143
+ { code: 'MH', name: 'Marshall Islands' },
144
+ { code: 'MQ', name: 'Martinique' },
145
+ { code: 'MR', name: 'Mauritania' },
146
+ { code: 'MU', name: 'Mauritius' },
147
+ { code: 'YT', name: 'Mayotte' },
148
+ { code: 'MX', name: 'Mexico' },
149
+ { code: 'FM', name: 'Micronesia, Federated States Of' },
150
+ { code: 'MD', name: 'Moldova' },
151
+ { code: 'MC', name: 'Monaco' },
152
+ { code: 'MN', name: 'Mongolia' },
153
+ { code: 'ME', name: 'Montenegro' },
154
+ { code: 'MS', name: 'Montserrat' },
155
+ { code: 'MA', name: 'Morocco' },
156
+ { code: 'MZ', name: 'Mozambique' },
157
+ { code: 'MM', name: 'Myanmar' },
158
+ { code: 'NA', name: 'Namibia' },
159
+ { code: 'NR', name: 'Nauru' },
160
+ { code: 'NP', name: 'Nepal' },
161
+ { code: 'NL', name: 'Netherlands' },
162
+ { code: 'NC', name: 'New Caledonia' },
163
+ { code: 'NZ', name: 'New Zealand' },
164
+ { code: 'NI', name: 'Nicaragua' },
165
+ { code: 'NE', name: 'Niger' },
166
+ { code: 'NG', name: 'Nigeria' },
167
+ { code: 'NU', name: 'Niue' },
168
+ { code: 'NF', name: 'Norfolk Island' },
169
+ { code: 'MP', name: 'Northern Mariana Islands' },
170
+ { code: 'NO', name: 'Norway' },
171
+ { code: 'OM', name: 'Oman' },
172
+ { code: 'PK', name: 'Pakistan' },
173
+ { code: 'PW', name: 'Palau' },
174
+ { code: 'PS', name: 'Palestinian Territory, Occupied' },
175
+ { code: 'PA', name: 'Panama' },
176
+ { code: 'PG', name: 'Papua New Guinea' },
177
+ { code: 'PY', name: 'Paraguay' },
178
+ { code: 'PE', name: 'Peru' },
179
+ { code: 'PH', name: 'Philippines' },
180
+ { code: 'PN', name: 'Pitcairn' },
181
+ { code: 'PL', name: 'Poland' },
182
+ { code: 'PT', name: 'Portugal' },
183
+ { code: 'PR', name: 'Puerto Rico' },
184
+ { code: 'QA', name: 'Qatar' },
185
+ { code: 'RE', name: 'Reunion' },
186
+ { code: 'RO', name: 'Romania' },
187
+ { code: 'RU', name: 'Russian Federation' },
188
+ { code: 'RW', name: 'Rwanda' },
189
+ { code: 'BL', name: 'Saint Barthelemy' },
190
+ { code: 'SH', name: 'Saint Helena' },
191
+ { code: 'KN', name: 'Saint Kitts And Nevis' },
192
+ { code: 'LC', name: 'Saint Lucia' },
193
+ { code: 'MF', name: 'Saint Martin' },
194
+ { code: 'PM', name: 'Saint Pierre And Miquelon' },
195
+ { code: 'VC', name: 'Saint Vincent And Grenadines' },
196
+ { code: 'WS', name: 'Samoa' },
197
+ { code: 'SM', name: 'San Marino' },
198
+ { code: 'ST', name: 'Sao Tome And Principe' },
199
+ { code: 'SA', name: 'Saudi Arabia' },
200
+ { code: 'SN', name: 'Senegal' },
201
+ { code: 'RS', name: 'Serbia' },
202
+ { code: 'SC', name: 'Seychelles' },
203
+ { code: 'SL', name: 'Sierra Leone' },
204
+ { code: 'SG', name: 'Singapore' },
205
+ { code: 'SK', name: 'Slovakia' },
206
+ { code: 'SI', name: 'Slovenia' },
207
+ { code: 'SB', name: 'Solomon Islands' },
208
+ { code: 'SO', name: 'Somalia' },
209
+ { code: 'ZA', name: 'South Africa' },
210
+ // { code: 'GS', name: 'South Georgia And Sandwich Isl.' },
211
+ { code: 'ES', name: 'Spain' },
212
+ { code: 'LK', name: 'Sri Lanka' },
213
+ { code: 'SD', name: 'Sudan' },
214
+ { code: 'SR', name: 'Suriname' },
215
+ // { code: 'SJ', name: 'Svalbard And Jan Mayen' },
216
+ { code: 'SZ', name: 'Swaziland' },
217
+ { code: 'SE', name: 'Sweden' },
218
+ { code: 'CH', name: 'Switzerland' },
219
+ { code: 'SY', name: 'Syrian Arab Republic' },
220
+ { code: 'TW', name: 'Taiwan' },
221
+ { code: 'TJ', name: 'Tajikistan' },
222
+ { code: 'TZ', name: 'Tanzania' },
223
+ { code: 'TH', name: 'Thailand' },
224
+ { code: 'TL', name: 'Timor-Leste' },
225
+ { code: 'TG', name: 'Togo' },
226
+ { code: 'TK', name: 'Tokelau' },
227
+ { code: 'TO', name: 'Tonga' },
228
+ { code: 'TT', name: 'Trinidad And Tobago' },
229
+ { code: 'TN', name: 'Tunisia' },
230
+ { code: 'TR', name: 'Turkey' },
231
+ { code: 'TM', name: 'Turkmenistan' },
232
+ // { code: 'TC', name: 'Turks And Caicos Islands' },
233
+ { code: 'TV', name: 'Tuvalu' },
234
+ { code: 'UG', name: 'Uganda' },
235
+ { code: 'UA', name: 'Ukraine' },
236
+ { code: 'AE', name: 'United Arab Emirates' },
237
+ { code: 'GB', name: 'United Kingdom' },
238
+ { code: 'US', name: 'United States' },
239
+ // { code: 'UM', name: 'United States Outlying Islands' },
240
+ { code: 'UY', name: 'Uruguay' },
241
+ { code: 'UZ', name: 'Uzbekistan' },
242
+ { code: 'VU', name: 'Vanuatu' },
243
+ { code: 'VE', name: 'Venezuela' },
244
+ { code: 'VN', name: 'Vietnam' },
245
+ // { code: 'VG', name: 'Virgin Islands, British' },
246
+ // { code: 'VI', name: 'Virgin Islands, U.S.' },
247
+ // { code: 'WF', name: 'Wallis And Futuna' },
248
+ { code: 'EH', name: 'Western Sahara' },
249
+ { code: 'YE', name: 'Yemen' },
250
+ { code: 'ZM', name: 'Zambia' },
251
+ { code: 'ZW', name: 'Zimbabwe' },
252
+ ];
253
+ export class GeoBlock extends BuiltinModule {
254
+ constructor() {
255
+ super('geoBlock', 'Block players from certain countries from joining the server.', JSON.stringify({
256
+ $schema: 'http://json-schema.org/draft-07/schema#',
257
+ type: 'object',
258
+ properties: {
259
+ mode: {
260
+ title: 'Mode',
261
+ type: 'string',
262
+ description: 'If set to allow, only players from the specified countries will be allowed to join. If set to deny, players from the specified countries will be banned from the server.',
263
+ enum: ['allow', 'deny'],
264
+ default: 'deny',
265
+ },
266
+ countries: {
267
+ title: 'Countries',
268
+ description: 'List of country',
269
+ type: 'array',
270
+ uniqueItems: true,
271
+ 'x-component': 'country',
272
+ items: {
273
+ type: 'string',
274
+ anyOf: countryCodes.map(({ code, name }) => ({ const: code, title: name })),
275
+ },
276
+ },
277
+ ban: {
278
+ title: 'Ban',
279
+ description: 'Ban players from the server when they are detected. When false, players will be kicked instead.',
280
+ type: 'boolean',
281
+ default: true,
282
+ },
283
+ banDuration: {
284
+ title: 'Ban duration',
285
+ description: 'Duration of the ban.',
286
+ 'x-component': 'duration',
287
+ type: 'number',
288
+ minimum: 0,
289
+ default: Duration.fromObject({ days: 1 }).as('milliseconds'),
290
+ },
291
+ message: {
292
+ title: 'Message',
293
+ type: 'string',
294
+ description: 'Message to send to the player when they are kicked or banned.',
295
+ default: 'Your IP address is banned.',
296
+ },
297
+ },
298
+ required: ['countries'],
299
+ additionalProperties: false,
300
+ }), JSON.stringify({
301
+ banDuration: { 'ui:widget': 'duration' },
302
+ }));
303
+ this.permissions = [
304
+ new IPermission({
305
+ permission: 'GEOBLOCK_IMMUNITY',
306
+ friendlyName: 'GeoBlock immunity',
307
+ description: 'Players with this permission will not be kicked or banned by GeoBlock.',
308
+ canHaveCount: false,
309
+ }),
310
+ ];
311
+ this.commands = [];
312
+ this.hooks = [
313
+ new IHook({
314
+ eventType: HookEvents.PLAYER_NEW_IP_DETECTED,
315
+ name: 'IPDetected',
316
+ function: this.loadFn('hooks', 'IPDetected'),
317
+ }),
318
+ ];
319
+ }
320
+ }
321
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/geoBlock/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import { takaro, data, TakaroUserError } from '@takaro/helpers';
2
+ async function main() {
3
+ const items = data.module.userConfig.items;
4
+ const commands = data.module.userConfig.commands;
5
+ if (items.length + commands.length === 0) {
6
+ throw new TakaroUserError('No items or commands configured, please ask your server administrator to configure this module.');
7
+ }
8
+ // pick a random item between 0 and the length of both the items and commands arrays
9
+ const randomIndex = Math.floor(Math.random() * (items.length + commands.length));
10
+ const randomOption = items.concat(commands)[randomIndex];
11
+ if (randomIndex < items.length) {
12
+ await takaro.gameserver.gameServerControllerGiveItem(data.gameServerId, data.player.id, {
13
+ name: randomOption,
14
+ amount: 1,
15
+ });
16
+ await data.player.pm(`You received ${randomOption}!`);
17
+ }
18
+ else {
19
+ await takaro.gameserver.gameServerControllerExecuteCommand(data.gameServerId, { command: randomOption });
20
+ }
21
+ }
22
+ await main();
23
+ //# sourceMappingURL=gimme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gimme.js","sourceRoot":"","sources":["../../../../src/modules/gimme/commands/gimme.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhE,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;IAEjD,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,eAAe,CACvB,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,oFAAoF;IACpF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;IAEzD,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACtF,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,YAAY,GAAG,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BuiltinModule } from '../../BuiltinModule.js';
2
+ export declare class Gimme extends BuiltinModule<Gimme> {
3
+ constructor();
4
+ }
@@ -0,0 +1,43 @@
1
+ import { BuiltinModule, ICommand } from '../../BuiltinModule.js';
2
+ export class Gimme extends BuiltinModule {
3
+ constructor() {
4
+ super('gimme', 'Randomly selects an item from a list of items.', JSON.stringify({
5
+ $schema: 'http://json-schema.org/draft-07/schema#',
6
+ type: 'object',
7
+ properties: {
8
+ items: {
9
+ 'x-component': 'item',
10
+ type: 'array',
11
+ title: 'Items',
12
+ description: 'List of items that a player can receive.',
13
+ uniqueItems: true,
14
+ items: {
15
+ type: 'string',
16
+ },
17
+ },
18
+ commands: {
19
+ title: 'Commands',
20
+ type: 'array',
21
+ default: ['say hello from gimme'],
22
+ items: {
23
+ type: 'string',
24
+ },
25
+ },
26
+ },
27
+ required: ['items'],
28
+ additionalProperties: false,
29
+ }), JSON.stringify({
30
+ items: { 'ui:widget': 'item' },
31
+ }));
32
+ this.commands = [
33
+ new ICommand({
34
+ function: this.loadFn('commands', 'gimme'),
35
+ name: 'gimme',
36
+ trigger: 'gimme',
37
+ helpText: 'Randomly selects item from a list of items and entities.',
38
+ arguments: [],
39
+ }),
40
+ ];
41
+ }
42
+ }
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/gimme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,KAAM,SAAQ,aAAoB;IAC7C;QACE,KAAK,CACH,OAAO,EACP,gDAAgD,EAChD,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,aAAa,EAAE,MAAM;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,0CAA0C;oBACvD,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,oBAAoB,EAAE,KAAK;SAC5B,CAAC,EACF,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;SAC/B,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;gBAC1C,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,0DAA0D;gBACpE,SAAS,EAAE,EAAE;aACd,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,54 @@
1
+ import { takaro, data } from '@takaro/helpers';
2
+ const VARIABLE_KEY = 'highPingKicker:warnings';
3
+ async function main() {
4
+ const currentPlayers = await takaro.gameserver.gameServerControllerGetPlayers(data.gameServerId);
5
+ await Promise.all(currentPlayers.data.data.map(async (player) => {
6
+ if (player.ping > data.module.userConfig.pingThreshold) {
7
+ const takaroPlayerRes = await takaro.player.playerControllerSearch({
8
+ filters: {
9
+ steamId: player.steamId,
10
+ },
11
+ });
12
+ const takaroPlayer = takaroPlayerRes.data.data[0];
13
+ const currentWarningsRes = await takaro.variable.variableControllerFind({
14
+ filters: {
15
+ playerId: takaroPlayer.id,
16
+ key: VARIABLE_KEY,
17
+ },
18
+ });
19
+ const currentWarningsRecords = currentWarningsRes.data.data;
20
+ let currentWarnings = 1;
21
+ if (!currentWarningsRecords.length) {
22
+ await takaro.variable.variableControllerCreate({
23
+ playerId: takaroPlayer.id,
24
+ key: VARIABLE_KEY,
25
+ value: '1',
26
+ });
27
+ }
28
+ else {
29
+ currentWarnings = parseInt(currentWarningsRecords[0].value, 10);
30
+ }
31
+ if (currentWarningsRecords.length === 1) {
32
+ await takaro.variable.variableControllerUpdate(currentWarningsRecords[0].id, {
33
+ value: (currentWarnings + 1).toString(),
34
+ });
35
+ await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {
36
+ message: `Your ping (${player.ping}) is too high. Warning ${currentWarnings}/${data.module.userConfig.warningsBeforeKick}`,
37
+ opts: {
38
+ recipient: {
39
+ gameId: player.gameId,
40
+ },
41
+ },
42
+ });
43
+ }
44
+ if (currentWarnings >= data.module.userConfig.warningsBeforeKick) {
45
+ await takaro.gameserver.gameServerControllerKickPlayer(data.gameServerId, takaroPlayer.id, {
46
+ reason: `Your ping (${player.ping}) is too high, please try again later.`,
47
+ });
48
+ await takaro.variable.variableControllerDelete(currentWarningsRecords[0].id);
49
+ }
50
+ }
51
+ }));
52
+ }
53
+ await main();
54
+ //# sourceMappingURL=Ping%20check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ping check.js","sourceRoot":"","sources":["../../../../src/modules/highPingKicker/cronJobs/Ping check.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAE/C,KAAK,UAAU,IAAI;IACjB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEjG,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5C,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBACjE,OAAO,EAAE;oBACP,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB;aACF,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAElD,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBACtE,OAAO,EAAE;oBACP,QAAQ,EAAE,YAAY,CAAC,EAAE;oBACzB,GAAG,EAAE,YAAY;iBAClB;aACF,CAAC,CAAC;YAEH,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAE5D,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;oBAC7C,QAAQ,EAAE,YAAY,CAAC,EAAE;oBACzB,GAAG,EAAE,YAAY;oBACjB,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,sBAAsB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3E,KAAK,EAAE,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACxC,CAAC,CAAC;gBAEH,MAAM,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,IAAI,CAAC,YAAY,EAAE;oBACzE,OAAO,EAAE,cAAc,MAAM,CAAC,IAAI,0BAA0B,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE;oBAC1H,IAAI,EAAE;wBACJ,SAAS,EAAE;4BACT,MAAM,EAAE,MAAM,CAAC,MAAM;yBACtB;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;gBACjE,MAAM,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE;oBACzF,MAAM,EAAE,cAAc,MAAM,CAAC,IAAI,wCAAwC;iBAC1E,CAAC,CAAC;gBAEH,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BuiltinModule } from '../../BuiltinModule.js';
2
+ export declare class HighPingKicker extends BuiltinModule<HighPingKicker> {
3
+ constructor();
4
+ }
@@ -0,0 +1,34 @@
1
+ import { BuiltinModule, ICronJob } from '../../BuiltinModule.js';
2
+ export class HighPingKicker extends BuiltinModule {
3
+ constructor() {
4
+ super('highPingKicker', 'Automatically kick players with high ping, with warnings and configurable thresholds.', JSON.stringify({
5
+ $schema: 'http://json-schema.org/draft-07/schema#',
6
+ type: 'object',
7
+ properties: {
8
+ pingThreshold: {
9
+ type: 'number',
10
+ title: 'Ping threshold',
11
+ description: 'A ping value that is deemed too high and prompts a warning.',
12
+ default: 200,
13
+ minimum: 0,
14
+ },
15
+ warningsBeforeKick: {
16
+ type: 'number',
17
+ title: 'Kick warnings',
18
+ description: 'Number of warnings before a player is kicked.',
19
+ default: 3,
20
+ minimum: 0,
21
+ },
22
+ },
23
+ required: [],
24
+ }));
25
+ this.cronJobs = [
26
+ new ICronJob({
27
+ name: 'Ping check',
28
+ temporalValue: '*/5 * * * *',
29
+ function: this.loadFn('cronJobs', 'Ping check'),
30
+ }),
31
+ ];
32
+ }
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/highPingKicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,cAAe,SAAQ,aAA6B;IAC/D;QACE,KAAK,CACH,gBAAgB,EAChB,uFAAuF,EACvF,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,gBAAgB;oBACvB,WAAW,EAAE,6DAA6D;oBAC1E,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,CAAC;iBACX;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,eAAe;oBACtB,WAAW,EAAE,+CAA+C;oBAC5D,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;iBACX;aACF;YACD,QAAQ,EAAE,EAAE;SACb,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,QAAQ,CAAC;gBACX,IAAI,EAAE,YAAY;gBAClB,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;aAChD,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ import { takaro, data, checkPermission, TakaroUserError } from '@takaro/helpers';
2
+ async function main() {
3
+ const { pog, gameServerId, arguments: args, module: mod } = data;
4
+ const varKey = 'lottery_tickets_bought';
5
+ if (!checkPermission(pog, 'LOTTERY_BUY')) {
6
+ throw new TakaroUserError('You do not have permission to buy lottery tickets.');
7
+ }
8
+ if (args.amount < 1) {
9
+ throw new TakaroUserError('You must buy at least 1 ticket.');
10
+ }
11
+ const tickets = (await takaro.variable.variableControllerSearch({
12
+ filters: {
13
+ gameServerId: [gameServerId],
14
+ key: [varKey],
15
+ moduleId: [mod.moduleId],
16
+ playerId: [pog.playerId],
17
+ },
18
+ })).data.data;
19
+ // Player already has some tickets bought
20
+ if (tickets.length > 0) {
21
+ const ticketsBought = tickets[0];
22
+ const ticketsBoughtAmount = parseInt(JSON.parse(ticketsBought.value).amount, 10);
23
+ await takaro.variable.variableControllerUpdate(ticketsBought.id, {
24
+ key: varKey,
25
+ playerId: pog.playerId,
26
+ moduleId: mod.moduleId,
27
+ gameServerId,
28
+ value: JSON.stringify({ amount: ticketsBoughtAmount + args.amount }),
29
+ });
30
+ }
31
+ // Player has no tickets bought
32
+ else {
33
+ await takaro.variable.variableControllerCreate({
34
+ key: varKey,
35
+ value: JSON.stringify({
36
+ amount: args.amount,
37
+ }),
38
+ gameServerId,
39
+ moduleId: mod.moduleId,
40
+ playerId: pog.playerId,
41
+ });
42
+ }
43
+ const ticketPrice = args.amount * mod.systemConfig.commands.buyTicket.cost;
44
+ // The price of the first ticket is deducted by the command execution itself.
45
+ if (args.amount > 1) {
46
+ await takaro.playerOnGameserver.playerOnGameServerControllerDeductCurrency(gameServerId, pog.playerId, {
47
+ currency: ticketPrice - 1,
48
+ });
49
+ }
50
+ const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', gameServerId)).data.data.value;
51
+ await pog.pm(`You have successfully bought ${args.amount} tickets for ${ticketPrice} ${currencyName}. Good luck!`);
52
+ }
53
+ await main();
54
+ //# sourceMappingURL=buyTicket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyTicket.js","sourceRoot":"","sources":["../../../../src/modules/lottery/commands/buyTicket.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEjE,MAAM,MAAM,GAAG,wBAAwB,CAAC;IAExC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,eAAe,CAAC,oDAAoD,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,CACd,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC7C,OAAO,EAAE;YACP,YAAY,EAAE,CAAC,YAAY,CAAC;YAC5B,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;YACxB,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;SACzB;KACF,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,yCAAyC;IACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEjF,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE,EAAE;YAC/D,GAAG,EAAE,MAAM;YACX,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IACD,+BAA+B;SAC1B,CAAC;QACJ,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC7C,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACF,YAAY;YACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;IAE3E,6EAA6E;IAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,kBAAkB,CAAC,0CAA0C,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE;YACrG,QAAQ,EAAE,WAAW,GAAG,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAEpH,MAAM,GAAG,CAAC,EAAE,CAAC,gCAAgC,IAAI,CAAC,MAAM,gBAAgB,WAAW,IAAI,YAAY,cAAc,CAAC,CAAC;AACrH,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};