diff --git a/dist/structures/forge/ForgeFunction.d.ts.map b/dist/structures/forge/ForgeFunction.d.ts.map index a52794c466..45cd45ca8c 100644 --- a/dist/structures/forge/ForgeFunction.d.ts.map +++ b/dist/structures/forge/ForgeFunction.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ForgeFunction.d.ts","sourceRoot":"","sources":["../../../src/structures/forge/ForgeFunction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAA2C,cAAc,EAAE,MAAM,IAAI,CAAA;AACtH,OAAO,EAAE,0BAA0B,EAAyB,MAAM,YAAY,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAIxD,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,OAAO,OAAO,CAAA;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAA;IAC5C,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,aAAa;aAGa,IAAI,EAAE,cAAc;IAFhD,QAAQ,CAAC,EAAE,0BAA0B,CAAA;gBAET,IAAI,EAAE,cAAc;IAKhD,QAAQ;IAIR,QAAQ;IAmCT,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;CA8BhE"} \ No newline at end of file +{"version":3,"file":"ForgeFunction.d.ts","sourceRoot":"","sources":["../../../src/structures/forge/ForgeFunction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAA2C,cAAc,EAAE,MAAM,IAAI,CAAA;AACtH,OAAO,EAAE,0BAA0B,EAAyB,MAAM,YAAY,CAAA;AAE9E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAIxD,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,OAAO,OAAO,CAAA;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAA;IAC5C,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,aAAa;aAGa,IAAI,EAAE,cAAc;IAFhD,QAAQ,CAAC,EAAE,0BAA0B,CAAA;gBAET,IAAI,EAAE,cAAc;IAKhD,QAAQ;IAIR,QAAQ;IAmCT,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;CAiChE"} \ No newline at end of file diff --git a/dist/structures/forge/ForgeFunction.js b/dist/structures/forge/ForgeFunction.js index a2288b6e88..2b061d81ea 100644 --- a/dist/structures/forge/ForgeFunction.js +++ b/dist/structures/forge/ForgeFunction.js @@ -52,7 +52,7 @@ class ForgeFunction { const params = await this["resolveMultipleArgs"](ctx, ...this.data.fields.slice(1).map((_, i) => i + 1)); if (!this["isValidReturnType"](params.return)) return params.return; - return outer.call(ctx, this, params.args); + return outer.call(ctx, this, [condition.value, ...params.args]); } else { return outer.call(ctx, this, args ?? []); @@ -66,16 +66,17 @@ class ForgeFunction { const required = params.filter(param => typeof param === "string" || param.required !== false); if (args.length < required.length) return new Return_1.Return(Return_1.ReturnType.Error, new ForgeError_1.ForgeError(null, ForgeError_1.ErrorType.Custom, `Calling custom function ${this.data.name} requires ${required.length} argument${required.length > 1 ? "s" : ""}, received ${args.length}`)); + const functionCtx = ctx.clone({ + doNotSend: true, + allowTopLevelReturn: true, + data: this.compiled + }); for (let i = 0, len = params.length; i < len; i++) { const param = params[i]; const name = typeof param === "string" ? param : param.name; - ctx.setEnvironmentKey(name, args[i]); + functionCtx.setEnvironmentKey(name, args[i]); } - const result = await core_1.Interpreter.run(ctx.clone({ - doNotSend: true, - allowTopLevelReturn: true, - data: this.compiled - })); + const result = await core_1.Interpreter.run(functionCtx); return result === null ? fn.stop() : fn.success(result); } } diff --git a/dist/structures/forge/ForgeFunction.js.map b/dist/structures/forge/ForgeFunction.js.map index c6e8030c3b..761a8cd3b3 100644 --- a/dist/structures/forge/ForgeFunction.js.map +++ b/dist/structures/forge/ForgeFunction.js.map @@ -1 +1 @@ -{"version":3,"file":"ForgeFunction.js","sourceRoot":"","sources":["../../../src/structures/forge/ForgeFunction.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ForgeFunction.js","sourceRoot":"","sources":["../../../src/structures/forge/ForgeFunction.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/structures/forge/ForgeFunction.ts b/src/structures/forge/ForgeFunction.ts index 31e488c864..811e8e86ee 100644 --- a/src/structures/forge/ForgeFunction.ts +++ b/src/structures/forge/ForgeFunction.ts @@ -67,7 +67,7 @@ export class ForgeFunction { const params = await this["resolveMultipleArgs"](ctx, ...this.data.fields.slice(1).map((_, i) => i + 1)) if (!this["isValidReturnType"](params.return)) return params.return - return outer.call(ctx, this, params.args) + return outer.call(ctx, this, [condition.value as string, ...params.args]) } else { return outer.call(ctx, this, args ?? []) } @@ -91,17 +91,20 @@ export class ForgeFunction { ) ) + const functionCtx = ctx.clone({ + doNotSend: true, + allowTopLevelReturn: true, + data: this.compiled + }) + for (let i = 0, len = params.length; i < len; i++) { const param = params[i] const name = typeof param === "string" ? param : param.name - ctx.setEnvironmentKey(name, args[i]) + + functionCtx.setEnvironmentKey(name, args[i]) } - const result = await Interpreter.run(ctx.clone({ - doNotSend: true, - allowTopLevelReturn: true, - data: this.compiled - })) + const result = await Interpreter.run(functionCtx) return result === null ? fn.stop() : fn.success(result) }