diff --git a/exp_groups/controller.ts b/exp_groups/controller.ts index 6f94b2c0..14d13ef2 100644 --- a/exp_groups/controller.ts +++ b/exp_groups/controller.ts @@ -191,8 +191,8 @@ export class ControllerPlugin extends BaseControllerPlugin { async handleResolvedAssignmentSubscription(request: lib.SubscriptionRequest) { // Check for any missing assignments to be computed on demand - const filters = Array.isArray(request.filters) ? request.filters : [request.filters!]; - if (request.filters && filters.length) { + const filters = request.filters.toJSON(); + if (filters.length) { const missing = filters.filter(name => !this.resolvedAssignments.has(name)); if (missing.length) { this.resolvedAssignments.setMany(await this.computeResolvedAssignments(missing)); diff --git a/exp_groups/instance.ts b/exp_groups/instance.ts index 2421a92c..d3ed3cc4 100644 --- a/exp_groups/instance.ts +++ b/exp_groups/instance.ts @@ -45,7 +45,7 @@ export class InstancePlugin extends BaseInstancePlugin { async onStart() { // We use Date.now() because we need to manually initialise the groups on the lua side await this.instance.sendTo("controller", new lib.SubscriptionRequest( - `exp_groups:${messages.GroupUpdatedEvent.name}`, true, Date.now() + `exp_groups:${messages.GroupUpdatedEvent.name}`, "subscribe", Date.now() )); const groups = await this.instance.sendTo("controller", new messages.GroupListRequest()) await this.luaSendInitialGroups(groups); @@ -118,13 +118,13 @@ export class InstancePlugin extends BaseInstancePlugin { async subscribePlayerAssignment(playerName: string) { await this.instance.sendTo("controller", new lib.SubscriptionRequest( - `exp_groups:${messages.ResolvedAssignmentUpdatedEvent.name}`, true, 0, playerName + `exp_groups:${messages.ResolvedAssignmentUpdatedEvent.name}`, "subscribe", 0, lib.SubscriptionFilters.fromShorthand(playerName) )); } async unsubscribePlayerAssignment(playerName: string) { await this.instance.sendTo("controller", new lib.SubscriptionRequest( - `exp_groups:${messages.ResolvedAssignmentUpdatedEvent.name}`, false, 0, playerName + `exp_groups:${messages.ResolvedAssignmentUpdatedEvent.name}`, "unsubscribe", 0, lib.SubscriptionFilters.fromShorthand(playerName) )); }