@takaro/modules 0.0.10 → 0.0.13
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.
- package/dist/dto/takaroEvents.d.ts +0 -3
- package/dist/dto/takaroEvents.js +1 -13
- package/dist/dto/takaroEvents.js.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/dist/modules/economyUtils/commands/shop.d.ts +1 -0
- package/dist/modules/economyUtils/commands/shop.js +69 -0
- package/dist/modules/economyUtils/commands/shop.js.map +1 -0
- package/dist/modules/economyUtils/commands/transfer.js +1 -1
- package/dist/modules/economyUtils/commands/transfer.js.map +1 -1
- package/dist/modules/economyUtils/index.js +29 -0
- package/dist/modules/economyUtils/index.js.map +1 -1
- package/dist/modules/serverMessages/cronJobs/Automated message.js +35 -3
- package/dist/modules/serverMessages/cronJobs/Automated message.js.map +1 -1
- package/dist/modules/timedShutdown/cronJobs/Shutdown.d.ts +1 -0
- package/dist/modules/timedShutdown/cronJobs/Shutdown.js +7 -0
- package/dist/modules/timedShutdown/cronJobs/Shutdown.js.map +1 -0
- package/dist/modules/timedShutdown/cronJobs/warning.d.ts +1 -0
- package/dist/modules/timedShutdown/cronJobs/warning.js +10 -0
- package/dist/modules/timedShutdown/cronJobs/warning.js.map +1 -0
- package/dist/modules/timedShutdown/index.d.ts +4 -0
- package/dist/modules/timedShutdown/index.js +33 -0
- package/dist/modules/timedShutdown/index.js.map +1 -0
- package/dist/modules.json +53 -2
- package/package.json +1 -1
- package/scripts/buildBuiltinJson.ts +0 -1
- package/src/__tests__/aliases.integration.test.ts +40 -0
- package/src/__tests__/bugRepros.integration.test.ts +163 -1
- package/src/__tests__/{economyUtils.shop.integration.test.ts → economy/claim.integration.test.ts} +10 -120
- package/src/__tests__/{economyUtils.integration.test.ts → economy/economyUtils.integration.test.ts} +2 -2
- package/src/__tests__/economy/shop.integration.test.ts +153 -0
- package/src/__tests__/serverMessages.integration.test.ts +32 -18
- package/src/dto/takaroEvents.ts +0 -10
- package/src/main.ts +2 -0
- package/src/modules/economyUtils/commands/shop.js +87 -0
- package/src/modules/economyUtils/commands/transfer.js +1 -1
- package/src/modules/economyUtils/index.ts +29 -0
- package/src/modules/serverMessages/cronJobs/Automated message.js +39 -4
- package/src/modules/timedShutdown/cronJobs/Shutdown.js +8 -0
- package/src/modules/timedShutdown/cronJobs/warning.js +13 -0
- package/src/modules/timedShutdown/index.ts +38 -0
|
@@ -73,19 +73,16 @@ export declare class TakaroEventCronjobDetails extends TakaroDTO<TakaroEventCron
|
|
|
73
73
|
}
|
|
74
74
|
export declare class TakaroEventCommandExecuted extends BaseEvent<TakaroEventCommandExecuted> {
|
|
75
75
|
type: "command-executed";
|
|
76
|
-
data: Record<string, unknown>;
|
|
77
76
|
result: TakaroEventFunctionResult;
|
|
78
77
|
command: TakaroEventCommandDetails;
|
|
79
78
|
}
|
|
80
79
|
export declare class TakaroEventHookExecuted extends BaseEvent<TakaroEventHookExecuted> {
|
|
81
80
|
type: "hook-executed";
|
|
82
|
-
data: Record<string, unknown>;
|
|
83
81
|
result: TakaroEventFunctionResult;
|
|
84
82
|
hook: TakaroEventHookDetails;
|
|
85
83
|
}
|
|
86
84
|
export declare class TakaroEventCronjobExecuted extends BaseEvent<TakaroEventCronjobExecuted> {
|
|
87
85
|
type: "cronjob-executed";
|
|
88
|
-
data: Record<string, unknown>;
|
|
89
86
|
result: TakaroEventFunctionResult;
|
|
90
87
|
cronjob: TakaroEventCronjobDetails;
|
|
91
88
|
}
|
package/dist/dto/takaroEvents.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { IsBoolean,
|
|
10
|
+
import { IsBoolean, IsEnum, IsIP, IsISO31661Alpha2, IsJSON, IsNumber, IsObject, IsOptional, IsString, IsUUID, ValidateNested, } from 'class-validator';
|
|
11
11
|
import { BaseEvent } from './base.js';
|
|
12
12
|
import { Type } from 'class-transformer';
|
|
13
13
|
import { TakaroDTO } from '@takaro/util';
|
|
@@ -181,10 +181,6 @@ __decorate([
|
|
|
181
181
|
IsString(),
|
|
182
182
|
__metadata("design:type", Object)
|
|
183
183
|
], TakaroEventCommandExecuted.prototype, "type", void 0);
|
|
184
|
-
__decorate([
|
|
185
|
-
IsDefined(),
|
|
186
|
-
__metadata("design:type", Object)
|
|
187
|
-
], TakaroEventCommandExecuted.prototype, "data", void 0);
|
|
188
184
|
__decorate([
|
|
189
185
|
ValidateNested(),
|
|
190
186
|
Type(() => TakaroEventFunctionResult),
|
|
@@ -206,10 +202,6 @@ __decorate([
|
|
|
206
202
|
IsString(),
|
|
207
203
|
__metadata("design:type", Object)
|
|
208
204
|
], TakaroEventHookExecuted.prototype, "type", void 0);
|
|
209
|
-
__decorate([
|
|
210
|
-
IsDefined(),
|
|
211
|
-
__metadata("design:type", Object)
|
|
212
|
-
], TakaroEventHookExecuted.prototype, "data", void 0);
|
|
213
205
|
__decorate([
|
|
214
206
|
ValidateNested(),
|
|
215
207
|
Type(() => TakaroEventFunctionResult),
|
|
@@ -231,10 +223,6 @@ __decorate([
|
|
|
231
223
|
IsString(),
|
|
232
224
|
__metadata("design:type", Object)
|
|
233
225
|
], TakaroEventCronjobExecuted.prototype, "type", void 0);
|
|
234
|
-
__decorate([
|
|
235
|
-
IsDefined(),
|
|
236
|
-
__metadata("design:type", Object)
|
|
237
|
-
], TakaroEventCronjobExecuted.prototype, "data", void 0);
|
|
238
226
|
__decorate([
|
|
239
227
|
ValidateNested(),
|
|
240
228
|
Type(() => TakaroEventFunctionResult),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"takaroEvents.js","sourceRoot":"","sources":["../../src/dto/takaroEvents.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"takaroEvents.js","sourceRoot":"","sources":["../../src/dto/takaroEvents.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -7,6 +7,7 @@ import { Lottery } from './modules/lottery/index.js';
|
|
|
7
7
|
import { PlayerOnboarding } from './modules/playerOnboarding/index.js';
|
|
8
8
|
import { ServerMessages } from './modules/serverMessages/index.js';
|
|
9
9
|
import { Teleports } from './modules/teleports/index.js';
|
|
10
|
+
import { TimedShutdown } from './modules/timedShutdown/index.js';
|
|
10
11
|
import { Utils } from './modules/utils/index.js';
|
|
11
12
|
export { BuiltinModule, ICommand, ICommandArgument, ICronJob, IHook, IFunction } from './BuiltinModule.js';
|
|
12
13
|
export * from './dto/index.js';
|
|
@@ -24,6 +25,7 @@ export function getModules() {
|
|
|
24
25
|
new EconomyUtils(),
|
|
25
26
|
new Lottery(),
|
|
26
27
|
new GeoBlock(),
|
|
28
|
+
new TimedShutdown(),
|
|
27
29
|
];
|
|
28
30
|
}
|
|
29
31
|
return cached;
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3G,cAAc,gBAAgB,CAAC;AAE/B,IAAI,MAAM,GAAyC,IAAI,CAAC;AAExD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG;YACP,IAAI,KAAK,EAAE;YACX,IAAI,SAAS,EAAE;YACf,IAAI,gBAAgB,EAAE;YACtB,IAAI,cAAc,EAAE;YACpB,IAAI,UAAU,EAAE;YAChB,IAAI,KAAK,EAAE;YACX,IAAI,cAAc,EAAE;YACpB,IAAI,YAAY,EAAE;YAClB,IAAI,OAAO,EAAE;YACb,IAAI,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3G,cAAc,gBAAgB,CAAC;AAE/B,IAAI,MAAM,GAAyC,IAAI,CAAC;AAExD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG;YACP,IAAI,KAAK,EAAE;YACX,IAAI,SAAS,EAAE;YACf,IAAI,gBAAgB,EAAE;YACtB,IAAI,cAAc,EAAE;YACpB,IAAI,UAAU,EAAE;YAChB,IAAI,KAAK,EAAE;YACX,IAAI,cAAc,EAAE;YACpB,IAAI,YAAY,EAAE;YAClB,IAAI,OAAO,EAAE;YACb,IAAI,QAAQ,EAAE;YACd,IAAI,aAAa,EAAE;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { takaro, data, TakaroUserError } from '@takaro/helpers';
|
|
2
|
+
async function main() {
|
|
3
|
+
const { arguments: args, player, gameServerId, user } = data;
|
|
4
|
+
const { page, item, action } = args;
|
|
5
|
+
const prefix = (await takaro.settings.settingsControllerGetOne('commandPrefix', gameServerId)).data.data.value;
|
|
6
|
+
// If command is called without any arguments
|
|
7
|
+
const messageWithoutPrefix = data.chatMessage.msg.slice(prefix.length).trim();
|
|
8
|
+
if (!messageWithoutPrefix.includes(' ')) {
|
|
9
|
+
await player.pm('This command allows you to browse the shop and view available items.');
|
|
10
|
+
await player.pm(`Usage: ${prefix}shop [page] [item] [action]`);
|
|
11
|
+
await player.pm(`${prefix}shop 2 - View the second page of shop items`);
|
|
12
|
+
await player.pm(`${prefix}shop 1 3 - View details about the third item on the first page`);
|
|
13
|
+
await player.pm(`${prefix}shop 1 3 buy - Purchase the third item on the first page`);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const shopItems = await takaro.shopListing.shopListingControllerSearch({
|
|
17
|
+
limit: 5,
|
|
18
|
+
page: page - 1,
|
|
19
|
+
sortBy: 'name',
|
|
20
|
+
sortDirection: 'asc',
|
|
21
|
+
filters: {
|
|
22
|
+
gameServerId: [gameServerId],
|
|
23
|
+
draft: false,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
if (shopItems.data.data.length === 0) {
|
|
27
|
+
await player.pm('No items found.');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', data.gameServerId)).data.data;
|
|
31
|
+
if (!item) {
|
|
32
|
+
// List the shop items
|
|
33
|
+
for (const listing of shopItems.data.data) {
|
|
34
|
+
const items = listing.items.slice(0, 3).map((item) => {
|
|
35
|
+
return `${item.amount}x ${item.item.name}`;
|
|
36
|
+
});
|
|
37
|
+
await player.pm(`- ${listing.name} - ${listing.price} ${currencyName.value}. ${items.join(', ')}`);
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const selectedItem = shopItems.data.data[item - 1];
|
|
42
|
+
if (!selectedItem)
|
|
43
|
+
throw new TakaroUserError(`Item not found. Please select an item from the list, valid options are 1-${shopItems.data.data.length}.`);
|
|
44
|
+
if (action === 'none') {
|
|
45
|
+
// Display more info about the item
|
|
46
|
+
await player.pm(`Listing ${selectedItem.name} - ${selectedItem.price} ${currencyName.value}`);
|
|
47
|
+
await Promise.all(selectedItem.items.map((item) => {
|
|
48
|
+
const quality = item.quality ? `Quality: ${item.quality}` : '';
|
|
49
|
+
const description = (item.item.description ? `Description: ${item.item.description}` : '').replaceAll('\\n', ' ');
|
|
50
|
+
return player.pm(`- ${item.amount}x ${item.item.name}. ${quality} ${description}`);
|
|
51
|
+
}));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (action === 'buy') {
|
|
55
|
+
if (!user)
|
|
56
|
+
throw new TakaroUserError('You must link your account to Takaro to use this command.');
|
|
57
|
+
const orderRes = await takaro.shopOrder.shopOrderControllerCreate({
|
|
58
|
+
amount: 1,
|
|
59
|
+
listingId: selectedItem.id,
|
|
60
|
+
userId: user.id,
|
|
61
|
+
});
|
|
62
|
+
await player.pm(`You have purchased ${selectedItem.name} for ${selectedItem.price} ${currencyName.value}.`);
|
|
63
|
+
await takaro.shopOrder.shopOrderControllerClaim(orderRes.data.data.id);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
throw new TakaroUserError('Invalid action. Valid actions are "buy".');
|
|
67
|
+
}
|
|
68
|
+
await main();
|
|
69
|
+
//# sourceMappingURL=shop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shop.js","sourceRoot":"","sources":["../../../../src/modules/economyUtils/commands/shop.js"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ async function main() {
|
|
|
34
34
|
currency: args.amount,
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
|
-
catch
|
|
37
|
+
catch {
|
|
38
38
|
throw new TakaroUserError(`Failed to transfer ${args.amount} ${currencyName} to ${receiverName}. Are you sure you have enough balance?`);
|
|
39
39
|
}
|
|
40
40
|
const messageToReceiver = takaro.gameserver.gameServerControllerSendMessage(gameServerId, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../src/modules/economyUtils/commands/transfer.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhE,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAEzE,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,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAE/G,wHAAwH;IACxH,gJAAgJ;IAChJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAChG,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAEpG,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACtF,sDAAsD;QACtD,mFAAmF;QACnF,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC7C,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE;oBACR,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B;aACF,CAAC;YACF,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY;SACb,CAAC,CAAC;QAEH,+IAA+I;QAC/I,MAAM,MAAM,CAAC,EAAE,CACb,yBAAyB,IAAI,CAAC,MAAM,IAAI,YAAY,OAAO,YAAY,+BAA+B,MAAM,kBAAkB,CAC/H,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,kDAAkD,CAChF,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,EAAE,EACT,QAAQ,CAAC,EAAE,EACX;YACE,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB,CACF,CAAC;IACJ,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../src/modules/economyUtils/commands/transfer.js"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,35 @@ export class EconomyUtils extends BuiltinModule {
|
|
|
126
126
|
},
|
|
127
127
|
],
|
|
128
128
|
}),
|
|
129
|
+
new ICommand({
|
|
130
|
+
function: this.loadFn('commands', 'shop'),
|
|
131
|
+
name: 'shop',
|
|
132
|
+
trigger: 'shop',
|
|
133
|
+
helpText: 'Browse the shop and view available items.',
|
|
134
|
+
arguments: [
|
|
135
|
+
{
|
|
136
|
+
name: 'page',
|
|
137
|
+
type: 'number',
|
|
138
|
+
helpText: 'Display more items from the shop by specifying a page number.',
|
|
139
|
+
position: 0,
|
|
140
|
+
defaultValue: '1',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: 'item',
|
|
144
|
+
type: 'number',
|
|
145
|
+
helpText: 'Select a specific item to view more details.',
|
|
146
|
+
position: 1,
|
|
147
|
+
defaultValue: '0',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'action',
|
|
151
|
+
type: 'string',
|
|
152
|
+
helpText: 'Perform an action on the selected item. Currently only "buy" is supported.',
|
|
153
|
+
position: 2,
|
|
154
|
+
defaultValue: 'none',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
}),
|
|
129
158
|
];
|
|
130
159
|
}
|
|
131
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/economyUtils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE9E,MAAM,OAAO,YAAa,SAAQ,aAA2B;IAC3D;QACE,KAAK,CACH,cAAc,EACd,8DAA8D,EAC9D,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,KAAK,EAAE,gBAAgB;oBACvB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kIAAkI;oBACpI,OAAO,EAAE,CAAC;iBACX;aACF;YACD,QAAQ,EAAE,EAAE;YACZ,oBAAoB,EAAE,KAAK;SAC5B,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,WAAW,CAAC;gBACd,UAAU,EAAE,+BAA+B;gBAC3C,YAAY,EAAE,iBAAiB;gBAC/B,WAAW,EACT,mGAAmG;gBACrG,YAAY,EAAE,KAAK;aACpB,CAAC;SACH,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;gBAC5C,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,qBAAqB;gBAC/B,SAAS,EAAE,EAAE;aACd,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;gBAChD,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,kDAAkD;gBAC5D,SAAS,EAAE,EAAE;aACd,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC;gBAClD,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,4FAA4F;gBACtG,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,kCAAkC;wBAC5C,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,IAAI;qBACnB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,sBAAsB;wBAChC,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,IAAI;qBACnB;iBACF;aACF,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBACnD,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,4FAA4F;gBACtG,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,qCAAqC;wBAC/C,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,IAAI;qBACnB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,sBAAsB;wBAChC,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,IAAI;qBACnB;iBACF;aACF,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBACpD,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,8BAA8B;gBACxC,SAAS,EAAE,EAAE;aACd,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC;gBAC7C,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,mCAAmC;gBAC7C,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,kCAAkC;wBAC5C,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,IAAI;qBACnB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,kCAAkC;wBAC5C,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,IAAI;qBACnB;iBACF;aACF,CAAC;YACF,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,iCAAiC;gBAC3C,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,wEAAwE;wBAClF,QAAQ,EAAE,CAAC;wBACX,YAAY,EAAE,OAAO;qBACtB;iBACF;aACF,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/economyUtils/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { data, takaro } from '@takaro/helpers';
|
|
2
2
|
async function main() {
|
|
3
|
-
const
|
|
3
|
+
const { module: mod, gameServerId } = data;
|
|
4
|
+
// Check what the last message we sent was
|
|
5
|
+
const lastMessageVar = (await takaro.variable.variableControllerSearch({
|
|
6
|
+
filters: {
|
|
7
|
+
key: ['lastMessage'],
|
|
8
|
+
moduleId: [mod.moduleId],
|
|
9
|
+
gameServerId: [gameServerId],
|
|
10
|
+
},
|
|
11
|
+
})).data.data[0];
|
|
12
|
+
// If we haven't sent any messages yet, start with the first one
|
|
13
|
+
const lastMessage = lastMessageVar ? parseInt(lastMessageVar.value, 10) : -1;
|
|
14
|
+
// The next message we should send is the next in the array
|
|
15
|
+
// However, if we're at the end of the array, we should start over
|
|
16
|
+
const nextMessage = data.module.userConfig.messages[lastMessage + 1] ? lastMessage + 1 : 0;
|
|
17
|
+
// The actual text of the message we're going to send
|
|
18
|
+
const messageToSend = data.module.userConfig.messages[nextMessage];
|
|
19
|
+
// Send the message to the game server
|
|
4
20
|
await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {
|
|
5
|
-
message:
|
|
21
|
+
message: messageToSend,
|
|
6
22
|
});
|
|
23
|
+
// Update the last message variable so the next time this cron job runs, we know what to send
|
|
24
|
+
if (lastMessageVar) {
|
|
25
|
+
// The variable already exists, update it
|
|
26
|
+
await takaro.variable.variableControllerUpdate(lastMessageVar.id, {
|
|
27
|
+
value: nextMessage.toString(),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// The variable doesn't exist, create it
|
|
32
|
+
await takaro.variable.variableControllerCreate({
|
|
33
|
+
key: 'lastMessage',
|
|
34
|
+
value: nextMessage.toString(),
|
|
35
|
+
moduleId: mod.moduleId,
|
|
36
|
+
gameServerId: gameServerId,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
7
39
|
}
|
|
8
40
|
await main();
|
|
9
41
|
//# sourceMappingURL=Automated%20message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Automated message.js","sourceRoot":"","sources":["../../../../src/modules/serverMessages/cronJobs/Automated message.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Automated message.js","sourceRoot":"","sources":["../../../../src/modules/serverMessages/cronJobs/Automated message.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE/C,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE3C,0CAA0C;IAC1C,MAAM,cAAc,GAAG,CACrB,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC7C,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,aAAa,CAAC;YACpB,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;YACxB,YAAY,EAAE,CAAC,YAAY,CAAC;SAC7B;KACF,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEf,gEAAgE;IAChE,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,2DAA2D;IAC3D,kEAAkE;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,qDAAqD;IACrD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEnE,sCAAsC;IACtC,MAAM,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,IAAI,CAAC,YAAY,EAAE;QACzE,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,6FAA6F;IAC7F,IAAI,cAAc,EAAE,CAAC;QACnB,yCAAyC;QACzC,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,EAAE;YAChE,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC7C,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;YAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Shutdown.js","sourceRoot":"","sources":["../../../../src/modules/timedShutdown/cronJobs/Shutdown.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE/C,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { data, takaro } from '@takaro/helpers';
|
|
2
|
+
async function main() {
|
|
3
|
+
const { gameServerId } = data;
|
|
4
|
+
const msg = data.module.userConfig.warningMessage;
|
|
5
|
+
await takaro.gameserver.gameServerControllerSendMessage(gameServerId, {
|
|
6
|
+
message: msg,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
await main();
|
|
10
|
+
//# sourceMappingURL=warning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warning.js","sourceRoot":"","sources":["../../../../src/modules/timedShutdown/cronJobs/warning.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE/C,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;IAElD,MAAM,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,YAAY,EAAE;QACpE,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;AACL,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BuiltinModule, ICronJob } from '../../BuiltinModule.js';
|
|
2
|
+
export class TimedShutdown extends BuiltinModule {
|
|
3
|
+
constructor() {
|
|
4
|
+
super('timedShutdown', 'Automatically shut down the server at a specific time.', JSON.stringify({
|
|
5
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
6
|
+
type: 'object',
|
|
7
|
+
properties: {
|
|
8
|
+
warningMessage: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
title: 'Warning message',
|
|
11
|
+
description: 'Message to send to players before the server shuts down.',
|
|
12
|
+
default: 'Server is shutting down in 5 minutes!',
|
|
13
|
+
minLength: 1,
|
|
14
|
+
maxLength: 1024,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ['warningMessage'],
|
|
18
|
+
}));
|
|
19
|
+
this.cronJobs = [
|
|
20
|
+
new ICronJob({
|
|
21
|
+
name: 'Shutdown',
|
|
22
|
+
temporalValue: '3 30 * * *',
|
|
23
|
+
function: this.loadFn('cronJobs', 'Shutdown'),
|
|
24
|
+
}),
|
|
25
|
+
new ICronJob({
|
|
26
|
+
name: 'warning',
|
|
27
|
+
temporalValue: '3 25 * * *',
|
|
28
|
+
function: this.loadFn('cronJobs', 'warning'),
|
|
29
|
+
}),
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/timedShutdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,OAAO,aAAc,SAAQ,aAA4B;IAC7D;QACE,KAAK,CACH,eAAe,EACf,wDAAwD,EACxD,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,WAAW,EAAE,0DAA0D;oBACvE,OAAO,EAAE,uCAAuC;oBAChD,SAAS,EAAE,CAAC;oBACZ,SAAS,EAAE,IAAI;iBAChB;aACF;YACD,QAAQ,EAAE,CAAC,gBAAgB,CAAC;SAC7B,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI,QAAQ,CAAC;gBACX,IAAI,EAAE,UAAU;gBAChB,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC;aAC9C,CAAC;YACF,IAAI,QAAQ,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC;aAC7C,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
|
package/dist/modules.json
CHANGED
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
{
|
|
228
228
|
"name": "Automated message",
|
|
229
229
|
"temporalValue": "*/30 * * * *",
|
|
230
|
-
"function": "import {
|
|
230
|
+
"function": "import { data, takaro } from '@takaro/helpers';\nasync function main() {\n const { module: mod, gameServerId } = data;\n // Check what the last message we sent was\n const lastMessageVar = (await takaro.variable.variableControllerSearch({\n filters: {\n key: ['lastMessage'],\n moduleId: [mod.moduleId],\n gameServerId: [gameServerId],\n },\n })).data.data[0];\n // If we haven't sent any messages yet, start with the first one\n const lastMessage = lastMessageVar ? parseInt(lastMessageVar.value, 10) : -1;\n // The next message we should send is the next in the array\n // However, if we're at the end of the array, we should start over\n const nextMessage = data.module.userConfig.messages[lastMessage + 1] ? lastMessage + 1 : 0;\n // The actual text of the message we're going to send\n const messageToSend = data.module.userConfig.messages[nextMessage];\n // Send the message to the game server\n await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, {\n message: messageToSend,\n });\n // Update the last message variable so the next time this cron job runs, we know what to send\n if (lastMessageVar) {\n // The variable already exists, update it\n await takaro.variable.variableControllerUpdate(lastMessageVar.id, {\n value: nextMessage.toString(),\n });\n }\n else {\n // The variable doesn't exist, create it\n await takaro.variable.variableControllerCreate({\n key: 'lastMessage',\n value: nextMessage.toString(),\n moduleId: mod.moduleId,\n gameServerId: gameServerId,\n });\n }\n}\nawait main();\n//# sourceMappingURL=Automated%20message.js.map"
|
|
231
231
|
}
|
|
232
232
|
],
|
|
233
233
|
"functions": [],
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
"arguments": []
|
|
374
374
|
},
|
|
375
375
|
{
|
|
376
|
-
"function": "import { takaro, data, TakaroUserError } from '@takaro/helpers';\nasync function main() {\n const { pog: sender, arguments: args, gameServerId, module: mod } = data;\n const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', gameServerId)).data.data.value;\n const prefix = (await takaro.settings.settingsControllerGetOne('commandPrefix', gameServerId)).data.data.value;\n // args.receiver has an argument type of \"player\". Arguments of this type are automatically resolved to the player's id.\n // If the player doesn't exist or multiple players with the same name where found, it will have thrown an error before this command is executed.\n const receiver = args.receiver;\n const senderName = (await takaro.player.playerControllerGetOne(sender.playerId)).data.data.name;\n const receiverName = (await takaro.player.playerControllerGetOne(receiver.playerId)).data.data.name;\n if (mod.userConfig.pendingAmount !== 0 && args.amount >= mod.userConfig.pendingAmount) {\n // create a variable to store confirmation requirement\n // TODO: in the future, we should probably add an expiration date to this variable.\n await takaro.variable.variableControllerCreate({\n key: 'confirmTransfer',\n value: JSON.stringify({\n amount: args.amount,\n receiver: {\n id: receiver.id,\n gameId: receiver.gameId,\n playerId: receiver.playerId,\n },\n }),\n moduleId: mod.moduleId,\n playerId: sender.playerId,\n gameServerId,\n });\n // NOTE: we should maybe check if the player has enough balance to send the amount since this is only checked when the transaction is executed.\n await sender.pm(`You are about to send ${args.amount} ${currencyName} to ${receiverName}. (Please confirm by typing ${prefix}confirmtransfer)`);\n return;\n }\n try {\n await takaro.playerOnGameserver.playerOnGameServerControllerTransactBetweenPlayers(sender.gameServerId, sender.id, receiver.id, {\n currency: args.amount,\n });\n }\n catch
|
|
376
|
+
"function": "import { takaro, data, TakaroUserError } from '@takaro/helpers';\nasync function main() {\n const { pog: sender, arguments: args, gameServerId, module: mod } = data;\n const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', gameServerId)).data.data.value;\n const prefix = (await takaro.settings.settingsControllerGetOne('commandPrefix', gameServerId)).data.data.value;\n // args.receiver has an argument type of \"player\". Arguments of this type are automatically resolved to the player's id.\n // If the player doesn't exist or multiple players with the same name where found, it will have thrown an error before this command is executed.\n const receiver = args.receiver;\n const senderName = (await takaro.player.playerControllerGetOne(sender.playerId)).data.data.name;\n const receiverName = (await takaro.player.playerControllerGetOne(receiver.playerId)).data.data.name;\n if (mod.userConfig.pendingAmount !== 0 && args.amount >= mod.userConfig.pendingAmount) {\n // create a variable to store confirmation requirement\n // TODO: in the future, we should probably add an expiration date to this variable.\n await takaro.variable.variableControllerCreate({\n key: 'confirmTransfer',\n value: JSON.stringify({\n amount: args.amount,\n receiver: {\n id: receiver.id,\n gameId: receiver.gameId,\n playerId: receiver.playerId,\n },\n }),\n moduleId: mod.moduleId,\n playerId: sender.playerId,\n gameServerId,\n });\n // NOTE: we should maybe check if the player has enough balance to send the amount since this is only checked when the transaction is executed.\n await sender.pm(`You are about to send ${args.amount} ${currencyName} to ${receiverName}. (Please confirm by typing ${prefix}confirmtransfer)`);\n return;\n }\n try {\n await takaro.playerOnGameserver.playerOnGameServerControllerTransactBetweenPlayers(sender.gameServerId, sender.id, receiver.id, {\n currency: args.amount,\n });\n }\n catch {\n throw new TakaroUserError(`Failed to transfer ${args.amount} ${currencyName} to ${receiverName}. Are you sure you have enough balance?`);\n }\n const messageToReceiver = takaro.gameserver.gameServerControllerSendMessage(gameServerId, {\n message: `You received ${args.amount} ${currencyName} from ${senderName}`,\n opts: {\n recipient: {\n gameId: receiver.gameId,\n },\n },\n });\n await Promise.all([\n sender.pm(`You successfully transferred ${args.amount} ${currencyName} to ${receiverName}`),\n messageToReceiver,\n ]);\n return;\n}\nawait main();\n//# sourceMappingURL=transfer.js.map",
|
|
377
377
|
"name": "transfer",
|
|
378
378
|
"trigger": "transfer",
|
|
379
379
|
"helpText": "Transfer money to another player.",
|
|
@@ -408,6 +408,35 @@
|
|
|
408
408
|
"defaultValue": "false"
|
|
409
409
|
}
|
|
410
410
|
]
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"function": "import { takaro, data, TakaroUserError } from '@takaro/helpers';\nasync function main() {\n const { arguments: args, player, gameServerId, user } = data;\n const { page, item, action } = args;\n const prefix = (await takaro.settings.settingsControllerGetOne('commandPrefix', gameServerId)).data.data.value;\n // If command is called without any arguments\n const messageWithoutPrefix = data.chatMessage.msg.slice(prefix.length).trim();\n if (!messageWithoutPrefix.includes(' ')) {\n await player.pm('This command allows you to browse the shop and view available items.');\n await player.pm(`Usage: ${prefix}shop [page] [item] [action]`);\n await player.pm(`${prefix}shop 2 - View the second page of shop items`);\n await player.pm(`${prefix}shop 1 3 - View details about the third item on the first page`);\n await player.pm(`${prefix}shop 1 3 buy - Purchase the third item on the first page`);\n return;\n }\n const shopItems = await takaro.shopListing.shopListingControllerSearch({\n limit: 5,\n page: page - 1,\n sortBy: 'name',\n sortDirection: 'asc',\n filters: {\n gameServerId: [gameServerId],\n draft: false,\n },\n });\n if (shopItems.data.data.length === 0) {\n await player.pm('No items found.');\n return;\n }\n const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', data.gameServerId)).data.data;\n if (!item) {\n // List the shop items\n for (const listing of shopItems.data.data) {\n const items = listing.items.slice(0, 3).map((item) => {\n return `${item.amount}x ${item.item.name}`;\n });\n await player.pm(`- ${listing.name} - ${listing.price} ${currencyName.value}. ${items.join(', ')}`);\n }\n return;\n }\n const selectedItem = shopItems.data.data[item - 1];\n if (!selectedItem)\n throw new TakaroUserError(`Item not found. Please select an item from the list, valid options are 1-${shopItems.data.data.length}.`);\n if (action === 'none') {\n // Display more info about the item\n await player.pm(`Listing ${selectedItem.name} - ${selectedItem.price} ${currencyName.value}`);\n await Promise.all(selectedItem.items.map((item) => {\n const quality = item.quality ? `Quality: ${item.quality}` : '';\n const description = (item.item.description ? `Description: ${item.item.description}` : '').replaceAll('\\\\n', ' ');\n return player.pm(`- ${item.amount}x ${item.item.name}. ${quality} ${description}`);\n }));\n return;\n }\n if (action === 'buy') {\n if (!user)\n throw new TakaroUserError('You must link your account to Takaro to use this command.');\n const orderRes = await takaro.shopOrder.shopOrderControllerCreate({\n amount: 1,\n listingId: selectedItem.id,\n userId: user.id,\n });\n await player.pm(`You have purchased ${selectedItem.name} for ${selectedItem.price} ${currencyName.value}.`);\n await takaro.shopOrder.shopOrderControllerClaim(orderRes.data.data.id);\n return;\n }\n throw new TakaroUserError('Invalid action. Valid actions are \"buy\".');\n}\nawait main();\n//# sourceMappingURL=shop.js.map",
|
|
414
|
+
"name": "shop",
|
|
415
|
+
"trigger": "shop",
|
|
416
|
+
"helpText": "Browse the shop and view available items.",
|
|
417
|
+
"arguments": [
|
|
418
|
+
{
|
|
419
|
+
"name": "page",
|
|
420
|
+
"type": "number",
|
|
421
|
+
"helpText": "Display more items from the shop by specifying a page number.",
|
|
422
|
+
"position": 0,
|
|
423
|
+
"defaultValue": "1"
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
"name": "item",
|
|
427
|
+
"type": "number",
|
|
428
|
+
"helpText": "Select a specific item to view more details.",
|
|
429
|
+
"position": 1,
|
|
430
|
+
"defaultValue": "0"
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"name": "action",
|
|
434
|
+
"type": "string",
|
|
435
|
+
"helpText": "Perform an action on the selected item. Currently only \"buy\" is supported.",
|
|
436
|
+
"position": 2,
|
|
437
|
+
"defaultValue": "none"
|
|
438
|
+
}
|
|
439
|
+
]
|
|
411
440
|
}
|
|
412
441
|
],
|
|
413
442
|
"hooks": [],
|
|
@@ -509,5 +538,27 @@
|
|
|
509
538
|
"description": "Block players from certain countries from joining the server.",
|
|
510
539
|
"configSchema": "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"mode\":{\"title\":\"Mode\",\"type\":\"string\",\"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.\",\"enum\":[\"allow\",\"deny\"],\"default\":\"deny\"},\"countries\":{\"title\":\"Countries\",\"description\":\"List of countries\",\"type\":\"array\",\"uniqueItems\":true,\"x-component\":\"country\",\"items\":{\"type\":\"string\",\"anyOf\":[{\"const\":\"AF\",\"title\":\"Afghanistan\"},{\"const\":\"AX\",\"title\":\"Aland Islands\"},{\"const\":\"AL\",\"title\":\"Albania\"},{\"const\":\"DZ\",\"title\":\"Algeria\"},{\"const\":\"AS\",\"title\":\"American Samoa\"},{\"const\":\"AD\",\"title\":\"Andorra\"},{\"const\":\"AO\",\"title\":\"Angola\"},{\"const\":\"AI\",\"title\":\"Anguilla\"},{\"const\":\"AQ\",\"title\":\"Antarctica\"},{\"const\":\"AG\",\"title\":\"Antigua And Barbuda\"},{\"const\":\"AR\",\"title\":\"Argentina\"},{\"const\":\"AM\",\"title\":\"Armenia\"},{\"const\":\"AW\",\"title\":\"Aruba\"},{\"const\":\"AU\",\"title\":\"Australia\"},{\"const\":\"AT\",\"title\":\"Austria\"},{\"const\":\"AZ\",\"title\":\"Azerbaijan\"},{\"const\":\"BS\",\"title\":\"Bahamas\"},{\"const\":\"BH\",\"title\":\"Bahrain\"},{\"const\":\"BD\",\"title\":\"Bangladesh\"},{\"const\":\"BB\",\"title\":\"Barbados\"},{\"const\":\"BY\",\"title\":\"Belarus\"},{\"const\":\"BE\",\"title\":\"Belgium\"},{\"const\":\"BZ\",\"title\":\"Belize\"},{\"const\":\"BJ\",\"title\":\"Benin\"},{\"const\":\"BM\",\"title\":\"Bermuda\"},{\"const\":\"BT\",\"title\":\"Bhutan\"},{\"const\":\"BO\",\"title\":\"Bolivia\"},{\"const\":\"BA\",\"title\":\"Bosnia And Herzegovina\"},{\"const\":\"BW\",\"title\":\"Botswana\"},{\"const\":\"BV\",\"title\":\"Bouvet Island\"},{\"const\":\"BR\",\"title\":\"Brazil\"},{\"const\":\"IO\",\"title\":\"British Indian Ocean Territory\"},{\"const\":\"BN\",\"title\":\"Brunei Darussalam\"},{\"const\":\"BG\",\"title\":\"Bulgaria\"},{\"const\":\"BF\",\"title\":\"Burkina Faso\"},{\"const\":\"BI\",\"title\":\"Burundi\"},{\"const\":\"KH\",\"title\":\"Cambodia\"},{\"const\":\"CM\",\"title\":\"Cameroon\"},{\"const\":\"CA\",\"title\":\"Canada\"},{\"const\":\"CV\",\"title\":\"Cape Verde\"},{\"const\":\"KY\",\"title\":\"Cayman Islands\"},{\"const\":\"CF\",\"title\":\"Central African Republic\"},{\"const\":\"TD\",\"title\":\"Chad\"},{\"const\":\"CL\",\"title\":\"Chile\"},{\"const\":\"CN\",\"title\":\"China\"},{\"const\":\"CX\",\"title\":\"Christmas Island\"},{\"const\":\"CC\",\"title\":\"Cocos (Keeling) Islands\"},{\"const\":\"CO\",\"title\":\"Colombia\"},{\"const\":\"KM\",\"title\":\"Comoros\"},{\"const\":\"CG\",\"title\":\"Congo\"},{\"const\":\"CD\",\"title\":\"Congo, Democratic Republic\"},{\"const\":\"CK\",\"title\":\"Cook Islands\"},{\"const\":\"CR\",\"title\":\"Costa Rica\"},{\"const\":\"CI\",\"title\":\"Cote D'Ivoire\"},{\"const\":\"HR\",\"title\":\"Croatia\"},{\"const\":\"CU\",\"title\":\"Cuba\"},{\"const\":\"CY\",\"title\":\"Cyprus\"},{\"const\":\"CZ\",\"title\":\"Czech Republic\"},{\"const\":\"DK\",\"title\":\"Denmark\"},{\"const\":\"DJ\",\"title\":\"Djibouti\"},{\"const\":\"DM\",\"title\":\"Dominica\"},{\"const\":\"DO\",\"title\":\"Dominican Republic\"},{\"const\":\"EC\",\"title\":\"Ecuador\"},{\"const\":\"EG\",\"title\":\"Egypt\"},{\"const\":\"SV\",\"title\":\"El Salvador\"},{\"const\":\"GQ\",\"title\":\"Equatorial Guinea\"},{\"const\":\"ER\",\"title\":\"Eritrea\"},{\"const\":\"EE\",\"title\":\"Estonia\"},{\"const\":\"ET\",\"title\":\"Ethiopia\"},{\"const\":\"FK\",\"title\":\"Falkland Islands (Malvinas)\"},{\"const\":\"FO\",\"title\":\"Faroe Islands\"},{\"const\":\"FJ\",\"title\":\"Fiji\"},{\"const\":\"FI\",\"title\":\"Finland\"},{\"const\":\"FR\",\"title\":\"France\"},{\"const\":\"GF\",\"title\":\"French Guiana\"},{\"const\":\"PF\",\"title\":\"French Polynesia\"},{\"const\":\"TF\",\"title\":\"French Southern Territories\"},{\"const\":\"GA\",\"title\":\"Gabon\"},{\"const\":\"GM\",\"title\":\"Gambia\"},{\"const\":\"GE\",\"title\":\"Georgia\"},{\"const\":\"DE\",\"title\":\"Germany\"},{\"const\":\"GH\",\"title\":\"Ghana\"},{\"const\":\"GI\",\"title\":\"Gibraltar\"},{\"const\":\"GR\",\"title\":\"Greece\"},{\"const\":\"GL\",\"title\":\"Greenland\"},{\"const\":\"GD\",\"title\":\"Grenada\"},{\"const\":\"GP\",\"title\":\"Guadeloupe\"},{\"const\":\"GU\",\"title\":\"Guam\"},{\"const\":\"GT\",\"title\":\"Guatemala\"},{\"const\":\"GG\",\"title\":\"Guernsey\"},{\"const\":\"GN\",\"title\":\"Guinea\"},{\"const\":\"GW\",\"title\":\"Guinea-Bissau\"},{\"const\":\"GY\",\"title\":\"Guyana\"},{\"const\":\"HT\",\"title\":\"Haiti\"},{\"const\":\"VA\",\"title\":\"Holy See (Vatican City State)\"},{\"const\":\"HN\",\"title\":\"Honduras\"},{\"const\":\"HK\",\"title\":\"Hong Kong\"},{\"const\":\"HU\",\"title\":\"Hungary\"},{\"const\":\"IS\",\"title\":\"Iceland\"},{\"const\":\"IN\",\"title\":\"India\"},{\"const\":\"ID\",\"title\":\"Indonesia\"},{\"const\":\"IR\",\"title\":\"Iran, Islamic Republic Of\"},{\"const\":\"IQ\",\"title\":\"Iraq\"},{\"const\":\"IE\",\"title\":\"Ireland\"},{\"const\":\"IM\",\"title\":\"Isle Of Man\"},{\"const\":\"IL\",\"title\":\"Israel\"},{\"const\":\"IT\",\"title\":\"Italy\"},{\"const\":\"JM\",\"title\":\"Jamaica\"},{\"const\":\"JP\",\"title\":\"Japan\"},{\"const\":\"JE\",\"title\":\"Jersey\"},{\"const\":\"JO\",\"title\":\"Jordan\"},{\"const\":\"KZ\",\"title\":\"Kazakhstan\"},{\"const\":\"KE\",\"title\":\"Kenya\"},{\"const\":\"KI\",\"title\":\"Kiribati\"},{\"const\":\"KR\",\"title\":\"Korea\"},{\"const\":\"KW\",\"title\":\"Kuwait\"},{\"const\":\"KG\",\"title\":\"Kyrgyzstan\"},{\"const\":\"LA\",\"title\":\"Lao People's Democratic Republic\"},{\"const\":\"LV\",\"title\":\"Latvia\"},{\"const\":\"LB\",\"title\":\"Lebanon\"},{\"const\":\"LS\",\"title\":\"Lesotho\"},{\"const\":\"LR\",\"title\":\"Liberia\"},{\"const\":\"LY\",\"title\":\"Libyan Arab Jamahiriya\"},{\"const\":\"LI\",\"title\":\"Liechtenstein\"},{\"const\":\"LT\",\"title\":\"Lithuania\"},{\"const\":\"LU\",\"title\":\"Luxembourg\"},{\"const\":\"MO\",\"title\":\"Macao\"},{\"const\":\"MK\",\"title\":\"Macedonia\"},{\"const\":\"MG\",\"title\":\"Madagascar\"},{\"const\":\"MW\",\"title\":\"Malawi\"},{\"const\":\"MY\",\"title\":\"Malaysia\"},{\"const\":\"MV\",\"title\":\"Maldives\"},{\"const\":\"ML\",\"title\":\"Mali\"},{\"const\":\"MT\",\"title\":\"Malta\"},{\"const\":\"MH\",\"title\":\"Marshall Islands\"},{\"const\":\"MQ\",\"title\":\"Martinique\"},{\"const\":\"MR\",\"title\":\"Mauritania\"},{\"const\":\"MU\",\"title\":\"Mauritius\"},{\"const\":\"YT\",\"title\":\"Mayotte\"},{\"const\":\"MX\",\"title\":\"Mexico\"},{\"const\":\"FM\",\"title\":\"Micronesia, Federated States Of\"},{\"const\":\"MD\",\"title\":\"Moldova\"},{\"const\":\"MC\",\"title\":\"Monaco\"},{\"const\":\"MN\",\"title\":\"Mongolia\"},{\"const\":\"ME\",\"title\":\"Montenegro\"},{\"const\":\"MS\",\"title\":\"Montserrat\"},{\"const\":\"MA\",\"title\":\"Morocco\"},{\"const\":\"MZ\",\"title\":\"Mozambique\"},{\"const\":\"MM\",\"title\":\"Myanmar\"},{\"const\":\"NA\",\"title\":\"Namibia\"},{\"const\":\"NR\",\"title\":\"Nauru\"},{\"const\":\"NP\",\"title\":\"Nepal\"},{\"const\":\"NL\",\"title\":\"Netherlands\"},{\"const\":\"NC\",\"title\":\"New Caledonia\"},{\"const\":\"NZ\",\"title\":\"New Zealand\"},{\"const\":\"NI\",\"title\":\"Nicaragua\"},{\"const\":\"NE\",\"title\":\"Niger\"},{\"const\":\"NG\",\"title\":\"Nigeria\"},{\"const\":\"NU\",\"title\":\"Niue\"},{\"const\":\"NF\",\"title\":\"Norfolk Island\"},{\"const\":\"MP\",\"title\":\"Northern Mariana Islands\"},{\"const\":\"NO\",\"title\":\"Norway\"},{\"const\":\"OM\",\"title\":\"Oman\"},{\"const\":\"PK\",\"title\":\"Pakistan\"},{\"const\":\"PW\",\"title\":\"Palau\"},{\"const\":\"PS\",\"title\":\"Palestinian Territory, Occupied\"},{\"const\":\"PA\",\"title\":\"Panama\"},{\"const\":\"PG\",\"title\":\"Papua New Guinea\"},{\"const\":\"PY\",\"title\":\"Paraguay\"},{\"const\":\"PE\",\"title\":\"Peru\"},{\"const\":\"PH\",\"title\":\"Philippines\"},{\"const\":\"PN\",\"title\":\"Pitcairn\"},{\"const\":\"PL\",\"title\":\"Poland\"},{\"const\":\"PT\",\"title\":\"Portugal\"},{\"const\":\"PR\",\"title\":\"Puerto Rico\"},{\"const\":\"QA\",\"title\":\"Qatar\"},{\"const\":\"RE\",\"title\":\"Reunion\"},{\"const\":\"RO\",\"title\":\"Romania\"},{\"const\":\"RU\",\"title\":\"Russian Federation\"},{\"const\":\"RW\",\"title\":\"Rwanda\"},{\"const\":\"BL\",\"title\":\"Saint Barthelemy\"},{\"const\":\"SH\",\"title\":\"Saint Helena\"},{\"const\":\"KN\",\"title\":\"Saint Kitts And Nevis\"},{\"const\":\"LC\",\"title\":\"Saint Lucia\"},{\"const\":\"MF\",\"title\":\"Saint Martin\"},{\"const\":\"PM\",\"title\":\"Saint Pierre And Miquelon\"},{\"const\":\"VC\",\"title\":\"Saint Vincent And Grenadines\"},{\"const\":\"WS\",\"title\":\"Samoa\"},{\"const\":\"SM\",\"title\":\"San Marino\"},{\"const\":\"ST\",\"title\":\"Sao Tome And Principe\"},{\"const\":\"SA\",\"title\":\"Saudi Arabia\"},{\"const\":\"SN\",\"title\":\"Senegal\"},{\"const\":\"RS\",\"title\":\"Serbia\"},{\"const\":\"SC\",\"title\":\"Seychelles\"},{\"const\":\"SL\",\"title\":\"Sierra Leone\"},{\"const\":\"SG\",\"title\":\"Singapore\"},{\"const\":\"SK\",\"title\":\"Slovakia\"},{\"const\":\"SI\",\"title\":\"Slovenia\"},{\"const\":\"SB\",\"title\":\"Solomon Islands\"},{\"const\":\"SO\",\"title\":\"Somalia\"},{\"const\":\"ZA\",\"title\":\"South Africa\"},{\"const\":\"ES\",\"title\":\"Spain\"},{\"const\":\"LK\",\"title\":\"Sri Lanka\"},{\"const\":\"SD\",\"title\":\"Sudan\"},{\"const\":\"SR\",\"title\":\"Suriname\"},{\"const\":\"SZ\",\"title\":\"Swaziland\"},{\"const\":\"SE\",\"title\":\"Sweden\"},{\"const\":\"CH\",\"title\":\"Switzerland\"},{\"const\":\"SY\",\"title\":\"Syrian Arab Republic\"},{\"const\":\"TW\",\"title\":\"Taiwan\"},{\"const\":\"TJ\",\"title\":\"Tajikistan\"},{\"const\":\"TZ\",\"title\":\"Tanzania\"},{\"const\":\"TH\",\"title\":\"Thailand\"},{\"const\":\"TL\",\"title\":\"Timor-Leste\"},{\"const\":\"TG\",\"title\":\"Togo\"},{\"const\":\"TK\",\"title\":\"Tokelau\"},{\"const\":\"TO\",\"title\":\"Tonga\"},{\"const\":\"TT\",\"title\":\"Trinidad And Tobago\"},{\"const\":\"TN\",\"title\":\"Tunisia\"},{\"const\":\"TR\",\"title\":\"Turkey\"},{\"const\":\"TM\",\"title\":\"Turkmenistan\"},{\"const\":\"TV\",\"title\":\"Tuvalu\"},{\"const\":\"UG\",\"title\":\"Uganda\"},{\"const\":\"UA\",\"title\":\"Ukraine\"},{\"const\":\"AE\",\"title\":\"United Arab Emirates\"},{\"const\":\"GB\",\"title\":\"United Kingdom\"},{\"const\":\"US\",\"title\":\"United States\"},{\"const\":\"UY\",\"title\":\"Uruguay\"},{\"const\":\"UZ\",\"title\":\"Uzbekistan\"},{\"const\":\"VU\",\"title\":\"Vanuatu\"},{\"const\":\"VE\",\"title\":\"Venezuela\"},{\"const\":\"VN\",\"title\":\"Vietnam\"},{\"const\":\"EH\",\"title\":\"Western Sahara\"},{\"const\":\"YE\",\"title\":\"Yemen\"},{\"const\":\"ZM\",\"title\":\"Zambia\"},{\"const\":\"ZW\",\"title\":\"Zimbabwe\"}]}},\"ban\":{\"title\":\"Ban\",\"description\":\"Ban players from the server when they are detected. When false, players will be kicked instead.\",\"type\":\"boolean\",\"default\":true},\"banDuration\":{\"title\":\"Ban duration\",\"description\":\"Duration of the ban.\",\"x-component\":\"duration\",\"type\":\"number\",\"minimum\":0,\"default\":86400000},\"message\":{\"title\":\"Message\",\"type\":\"string\",\"description\":\"Message to send to the player when they are kicked or banned.\",\"default\":\"Your IP address is banned.\"}},\"required\":[\"countries\"],\"additionalProperties\":false}",
|
|
511
540
|
"uiSchema": "{\"banDuration\":{\"ui:widget\":\"duration\"}}"
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"commands": [],
|
|
544
|
+
"hooks": [],
|
|
545
|
+
"cronJobs": [
|
|
546
|
+
{
|
|
547
|
+
"name": "Shutdown",
|
|
548
|
+
"temporalValue": "3 30 * * *",
|
|
549
|
+
"function": "import { data, takaro } from '@takaro/helpers';\nasync function main() {\n const { gameServerId } = data;\n await takaro.gameserver.gameServerControllerShutdown(gameServerId);\n}\nawait main();\n//# sourceMappingURL=Shutdown.js.map"
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
"name": "warning",
|
|
553
|
+
"temporalValue": "3 25 * * *",
|
|
554
|
+
"function": "import { data, takaro } from '@takaro/helpers';\nasync function main() {\n const { gameServerId } = data;\n const msg = data.module.userConfig.warningMessage;\n await takaro.gameserver.gameServerControllerSendMessage(gameServerId, {\n message: msg,\n });\n}\nawait main();\n//# sourceMappingURL=warning.js.map"
|
|
555
|
+
}
|
|
556
|
+
],
|
|
557
|
+
"functions": [],
|
|
558
|
+
"permissions": [],
|
|
559
|
+
"name": "timedShutdown",
|
|
560
|
+
"description": "Automatically shut down the server at a specific time.",
|
|
561
|
+
"configSchema": "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"warningMessage\":{\"type\":\"string\",\"title\":\"Warning message\",\"description\":\"Message to send to players before the server shuts down.\",\"default\":\"Server is shutting down in 5 minutes!\",\"minLength\":1,\"maxLength\":1024}},\"required\":[\"warningMessage\"]}",
|
|
562
|
+
"uiSchema": "{}"
|
|
512
563
|
}
|
|
513
564
|
]
|
package/package.json
CHANGED